iOSDC 2019 に Mac の環境構築に関する内容で登壇してきました
iOSDC 2019 に Mac の環境構築の内容で LT 登壇します で書いていましたが、ルーキーズ LT に登壇してきました。
普段からトレーニングで話してはいますが、全くの別物なのでずっと緊張してました。
若干のミス(残り時間を間違えて、 15 秒余らせたまま最後の部分を省略してしまった)はあったものの、お伝えできたかなと思います。
公式サイト、ハッシュタグなど
発表スライド
Speaker Deck に上げたので、ぜひご覧ください。
モチベーション
トレーニングの環境作成って、とても気をつかいます。特に、 Mac を使うトレーニングの場合、多くの受講者が Windows しか触ったことがないです。
そのため、トレーナーがデモしている環境と、受講者の環境にちょっとでも差があると、受講者はとても戸惑います。
なので、環境は少しの違いもなく揃えておく必要があります。
ただし、全部手作業で行うのは効率的ではなく、ミスも発生します。それに、セットアップ自体は技術に長けた我々トレーナーではなく、別の部隊です。なので、技術的に難しい手順は踏ませられません。
話したこと
いかにミスを防ぎ、大量の Mac を素早く正確にセットアップするかという点について、これまで取ってきた様々な手法についてお話ししました。
現在、残念ながら以前と比較して手間のかかる方式で行わざるを得ず、まだ模索している状況です。
それも含め、現状をお伝えしました。
紹介した技術
Apple の提供する機能
NetRestore
- macOS Server の 1 機能として提供されていました
- Apple の「モノリシックイメージからのリストアは推奨しない」方針により、現在は利用できません
- macOS Server にはまだ機能が残っていますが、 GUI の画面は削除されました
- 2018 年以降(T2 Security Chip搭載)の Mac ではネットワークブート機能が削除されたため、 NetRestore が機能したとしても、各 Mac からは NetRestore イメージにはアクセスできません
- 事前に作成しておいたシステムイメージと完全に同じ環境がリストアできます
- とても素早い(リストア開始から完了まで 5,6 分)
Time Machine
- 履歴を持ったバックアップを取れる機能です
- 基本的に、同じバックアップから複数の Mac をリストアすることは前提にしていません
- そのためか、複数の Mac から同時にリストアできません
- Time Machine からのリストアは、 NetRestore のようなブロックコピーではないので時間がかかります
MDM(Mobile Device Management)
- 社内で iOS を集中管理する際などに利用しますが、 macOS にも対応しています
- Configuration Profile に設定を記述し、それをサーバからプッシュすることで設定を強制します
- Apple Business Manager(ABM) と連携することで、 VPP(Volume Purchase Program) で購入した App Store のアプリのインストールを各クライアントに強制できます
- ただし、 App Store にある最新のアプリがインストールされるため、「チームで Xcode のバージョンを固定している」場合などには別の策を取る必要があります
- ABM は、 VPP と DEP を統合したものです
- VPP(Volume Purchase Program)
- DEP(Device Enrollment Program)
ASR(Apple Software Restore)
- 今回紹介した技術の中では NetRestore 以外唯一、インストールではなくイメージのコピーを行う技術
- なので、リストアは速いです(数分)
- ただし、イメージは各 Mac に個別にコピーしておく必要があります
- Disk Utility を利用してシステムのイメージを DMG ファイルとして作成し、それをもとに macOS Recovery 上でコマンドラインからリストアします
- macOS 10.14 Mojave まではうまく動作したのですが、 10.14.1 以降必ず失敗するので、断念しました
- 原因は追い切れていないので、場合によってはまた利用できるかもしれません
サードパーティの機能
AutoDMG
- 現在、暫定的に利用している機能です
- macOS のインストーラをカスタマイズし、/Applications へ配置したいアプリケーションなどはあらかじめ仕込んでおくことができます
- 通常手順での Xcode のインストールなどは非常に時間がかかる(ダウンロード、 xip の展開)ので、その時間をなくすことができます
- そのため、「クリーンインストールして、アプリを手動インストール」よりはだいぶマシです
- 各種設定はできない(クリーンインストールと同じで、 macOS インストール後のユーザの作成から先は手作業)ので、 Configuration Profile やシェルスクリプト で対応しています
- macOS の設定を行うコマンドとしては、以下などを利用しています
- defaults コマンド
- scutil コマンド
登壇した感想
内容的にあまり刺さる方はいないだろうな、とは思っていましたが、 Twitter や対面で感想を頂くことができました。
誰か 1 人でも、役に立った(もしくは面白かった)と思って頂けたなら、話した意味はあったのかな、と思います。
また、特にルーキーズ LT では、事前に運営側主催で練習会を開いて頂き、アドバイスも頂けました。
その際に、練習会参加者同士の繋がりも生まれ、良い仲間ができました。
運営側、そしてルーキーズ仲間には本当に感謝しています。もちろん、私の LT を聞いて頂いた皆さま、このポストを読んで下さった皆さま、ありがとうございます。
本当に iOSDC は楽しいので、次はあなたもぜひトークに応募してみてください!
勉強会会場&機材お貸ししてます
都内で勉強会を開きたい方、ご連絡ください!
セミナールームだけではなく、 MacBook Pro や iPad などもご利用頂けます。
try! Swift のワークショップでご利用頂いた実績もあります。どうぞ、お気軽に声をかけてください。