macのクリーンインストール @ansibleで自動インスコ付き【2019/09版】
雑なメモ書きですが約1.5年ぶりにクリーンインストールしたので作業メモです。
OSのクリーンアップ
- 必要なファイル等は外付けHDDなどに退避する。
今回は新規のMBPにインストールしたのでディスク消去はしていない
- 今は情報の転送はしないを選択
- Macを探すは許可する
- コンピュータアカウントを作成(iCloudアカウントは使わなかった)
- FileVaultディスク暗号化を有効にする
- 診断と使用状況はチェックした
- クリーンインストールが終わったらApp storeからシステムアップデートをかける。
最新のOSをインストール
- 新規で購入したMBPなのにHighSierraが入っていなかったのでインストール
Xcodeをインストール
Dock
セキュリティとプライバシー
- スリープとスクリーンセーバの解除を15分後に
- Apple WatchでこのMacのロックを解除できるようにする → チェック入れても動かなかったので未設定
キーボード
- キーのリピートを速く(最速)
- リピート入力時間を短く(最短)
トラックパッド
- タップでクリックにチェック
- 軌跡の速さを速くする(最速)
サウンド
- メニューバーに音量を表示にチェック
共有
- コンピュータ名をかわいいのに変える
日付のオプション
- 曜日を表示
- 日付を表示
表示オプション
- デスクトップを右クリック → 表示オプションを表示
- アイコンサイズ 16x16
- ラベルの位置 右側
- 表示順序 名前
Homebrewをインストールする
Homebrewのインストール
xcode-select --install /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
anacondaをインストールする
brew install python 3系のanaconda入れたいので却下
brew install ansible pythonのフォルダにインストールしようとするので却下
anacondaは以下からダウンロード
https://www.anaconda.com/download/#macos
chmod 755 ./Anaconda3-2019.07-MacOSX-x86_64.sh ./Anaconda3-2019.07-MacOSX-x86_64.sh
確認
Python -V Python 3.7.3
ansibleインストール
brew install ansible
Ansibleの実行
プロビジョニング用のディレクトリ作成。
mkdir .macbook-provisioning cd .macbook-provisioning/
ansible用のinventoryファイル作成
echo 'localhost' > hosts
テキストを開き、以下をlocalhost.ymlとして保存
- hosts: localhost connection: local gather_facts: no sudo: no vars: homebrew_taps: - caskroom/cask - homebrew/services homebrew_packages: - { name: readline } - { name: openssl } - { name: openssl, state: linked, install_options: force } - { name: git } - { name: wget } - { name: curl } - { name: go } - { name: rbenv } - { name: ruby-build } - { name: vim } - { name: mysql } - { name: redis } - { name: p7zip} - { name: cmake} - { name: swig} homebrew_enabled_services: - mysql # - redis # redisは今後自動起動に入れない homebrew_cask_packages: - { name: iterm2 } - { name: firefox } - { name: google-chrome } - { name: google-japanese-ime } - { name: atom } - { name: skype } - { name: slack } - { name: vagrant } - { name: virtualbox } - { name: phpstorm } - { name: pycharm } - { name: datagrip } - { name: sequel-pro } - { name: postman } - { name: cyberduck } - { name: gimp } - { name: marp } - { name: vmware-fusion } - { name: sourcetree } - { name: docker } - { name: bettertouchtool } - { name: firefox } tasks: - name: homebrew の tap リポジトリを追加 homebrew_tap: tap={{ item }} state=present with_items: "{{ homebrew_taps }}" - name: homebrew update確認 homebrew: update_homebrew=yes # brew - name: brew packageのインストール homebrew: > name={{ item.name }} state={{ item.state | default('latest') }} install_options={{ item.install_options | default() | join(',') if item.install_options is not string else item.install_options }} with_items: "{{ homebrew_packages }}" register: brew_result - name: brew パッケージの情報保存先ディレクトリを作成 file: path=brew_info state=directory - name: brew パッケージの情報を保存 shell: brew info {{ item }} > brew_info/{{ item }} with_items: "{{ brew_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list }}" # brew services - name: Get currently available brew services. shell: "brew services list | sed '1 d' | cut -d ' ' -f 1" register: brew_services - name: Enable brew services. command: "brew services start {{ item }}" with_items: "{{ homebrew_enabled_services }}" when: "'{{ item }}' in brew_services.stdout_lines" # cask - name: cask パッケージをインストール homebrew_cask: > name={{ item.name }} state={{ item.state | default('installed') }} with_items: "{{ homebrew_cask_packages }}" register: cask_result - name: cask パッケージの情報保存先ディレクトリを作成 file: path=cask_info state=directory - name: cask パッケージの情報を保存 shell: brew cask info {{ item }} > cask_info/{{ item }} with_items: "{{ cask_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list }}" handlers: - name: run fc-cache shell: fc-cache -vf
Homebrew Caskオプションを設定
echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.bash_profile source ~/.bash_profile
作成したPlaybookを実行する
ansible-playbook -i hosts -vv localhost.yml -e 'ansible_python_interpreter=/Users/<ユーザー名>/anaconda3/bin/python'
以上で概ねアプリはインストールできる。
インストール中の注意
- アクセシビリティの許可が必要なアプリがいくつかあります。(VirtualBox等)
失敗したらインストール済みのPackageを.ymlでコメントアウトして実行すると時間を短縮できます。
動作確認環境
MacBookPro 2019 Mid 15インチ (Mojave)で動作確認済み
(CPU : 8core x 2.3GHz Intel Core i9、Mem : 16GB、SSD : 512GB)
感想
バックアップが一番めんどくさいですね。
不要なものを削除しつつ、7z で固めて保存しているので手間が掛かります。
タイムマシンとかで自動化すると便利なのでしょうけど、仕事のファイルは消さなければいけないものも結構あるので、この機会に手動でお掃除しています。