Edited at

Macの環境構築をAnsibleに任せる (システム環境設定)

More than 1 year has passed since last update.

新型MacBook Proが出たということで買い替えを検討していますが、買い替えをする前に自分の環境構築を振り返っておこうと思いました。

以前 Macの環境構築をAnsibleに任せるgitcopy を使って設定ファイルの設置や、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 に変数としてそれぞれ個別の設定を入れています。


osx/tasks/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/vars/main.yml

osx_settings:

# フルキーボードアクセスの有効化
- {
domain: NSGlobalDomain,
key: AppleKeyboardUIMode,
type: int,
value: 3
}
# ファイル拡張子を常に表示
- {
domain: NSGlobalDomain,
key: AppleShowAllExtensions,
type: bool,
value: true
}

# ...



設定探しの旅へ

defaults コマンドは非常に便利なのですが、Apple公式の一覧が存在するわけではなく、自分で探し出すかネット上の情報を頼りにする必要があります。

Ansibleで環境設定ができるようにはなったのですが、まだまだ自分の好みの設定の全てをplaybookにはできていないので defaults の設定探しの旅が続くと思います。