新型MacBook Proが出たということで買い替えを検討していますが、買い替えをする前に自分の環境構築を振り返っておこうと思いました。
以前 Macの環境構築をAnsibleに任せる で git
や copy
を使って設定ファイルの設置や、homebrew
でライブラリのインストールなどを行いました。今回はその続きで、システム環境設定についてです。
defaults
コマンドによるシステム環境設定
前回の記事のコメントで、「Macのシステム環境設定は"defaults"コマンドで各設定ファイルを書き換えることで変更することができます。」と教えていただきました。default
コマンドを使うといろいろMacの設定を変更できるようです。
コマンドの使い方
例えば下のコマンドを実行することでファインダーの効果音を無効にできます。
$ defaults write com.apple.finder FinderSounds -bool false
defaults
コマンドについての詳細は
$ man defaults
Ansibleでの実行
調べてみるとAnsibleにも defaults
用のモジュールがありました。(http://docs.ansible.com/ansible/osx_defaults_module.html)
- osx_defaults:
domain: com.apple.finder
key: FinderSounds
type: bool
value: false
このように書くことで、Ansibleでも defaults
コマンドを実行できます。
実装例
参考までに、自分のplaybookの一部を書いておきます。osx/tasks/main.yml に実際のタスクを書いておき、osx/vars/main.yml に変数としてそれぞれ個別の設定を入れています。
- name: Set OSX Defaults
osx_defaults: >
domain={{ item.domain }}
key={{ item.key }}
type={{ item.type }}
value={{ item.value }}
state={{ item.state|default('present') }}
with_items: "{{ osx_settings }}"
osx_settings:
# フルキーボードアクセスの有効化
- {
domain: NSGlobalDomain,
key: AppleKeyboardUIMode,
type: int,
value: 3
}
# ファイル拡張子を常に表示
- {
domain: NSGlobalDomain,
key: AppleShowAllExtensions,
type: bool,
value: true
}
# ...
設定探しの旅へ
defaults
コマンドは非常に便利なのですが、Apple公式の一覧が存在するわけではなく、自分で探し出すかネット上の情報を頼りにする必要があります。
Ansibleで環境設定ができるようにはなったのですが、まだまだ自分の好みの設定の全てをplaybookにはできていないので defaults
の設定探しの旅が続くと思います。