yukofebの日記

個人的な技術メモ。

Ansibleを使ってMacBook Airのセットアップをする

新しいMacBook Airを購入したタイミングで以下の記事を発見してしまった。
Mac の開発環境構築を自動化する (2015 年初旬編) - t-wadaのブログ
ということで、触発されたのでやってみる。実は初Ansibleです。

事前準備

まずはセットアップ前にAnsible実行のためのコードを書いておく。

ということでまずは最低限のものだけ入れるようにしたのがこちら。
yukofeb/AnsibleLocalProvisioning
このコードを使ってMacにインストールしていく。

インストール

XCodeコマンドツールインストール

$ sudo xcodebuild -license
$ xcode-select --install

homebrewインストール

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew doctor
// option
$ brew update

Ansibleインストール

$ brew install ansible
$ brew install python

gitインストール

$ brew install git

githubレポジトリをクローン

$ git clone git@github.com:yukofeb/AnsibleLocalProvisioning.git
$ cd AnsibleLocalProvisioning

Ansible実行
一気に入るからかなり楽!

$ HOMEBREW_CASK_OPTS="--appdir=/Applications" ansible-playbook -i hosts -vv localhost.yml
No config file found; using defaults
1 plays in localhost.yml

PLAY ***************************************************************************

TASK [tap homebrew] ************************************************************
changed: [localhost] => (item=homebrew/binary) => {"changed": true, "item": "homebrew/binary", "msg": "added: 1, unchanged: 0"}
changed: [localhost] => (item=homebrew/dupes) => {"changed": true, "item": "homebrew/dupes", "msg": "added: 1, unchanged: 0"}
changed: [localhost] => (item=caskroom/cask) => {"changed": true, "item": "caskroom/cask", "msg": "added: 1, unchanged: 0"}

TASK [update homebrew] *********************************************************
ok: [localhost] => {"changed": false, "msg": "Homebrew already up-to-date."}

TASK [install homebrew-packages] ***********************************************
changed: [localhost] => (item={u'name': u'vim'}) => {"changed": true, "item": {"name": "vim"}, "msg": "Package upgraded: vim"}

特につまづきポイントはなかったけど、virtualboxのインストールが失敗してしまった。
下記のダウンロードURLを直接叩くとダウンロードできるので、なぜ失敗したんだろう。。

failed: [localhost] => (item={u'name': u'virtualbox'}) => {"failed": true, "item": {"name": "virtualbox"}, "msg": "Error: Download failed on Cask 'virtualbox' with message: Download failed: http://download.virtualbox.org/virtualbox/5.0.14/VirtualBox-5.0.14-105127-OSX.dmg"}

もう一度走らせたら成功。ネットワークが不安定だったのかな。

changed: [localhost] => (item={u'name': u'virtualbox'}) => {"changed": true, "item": {"name": "virtualbox"}, "msg": "Cask installed: virtualbox"}

Formula自作

さて、公式には入っていないけど入れておきたいソフトウェアがちょこちょこあったので、
homebrew-caskに対応させるために、自分でFormulaを書いてみる。

書き方はhomebrew-caskレポジトリを参考にすると良さそう。
ドキュメントもしっかりしてるし参考にできるFormulaもたくさん。
homebrew-cask/doc at master · caskroom/homebrew-cask

ということでひとまずお試しでウイルスバスターを対応させてみました。
yukofeb/homebrew-mycask
MacOSのバージョンごとにURLが異なるので、分岐を使うようにした。
しかしこれ、OSが新しくなるたびにいちいちチェックして分岐を追加しないとダメそうだなー。
その辺今後の運用が少し面倒臭い。

まとめ

ということで、さわりだけAnsibleを使ってみました。
思ったよりもとても簡単で、特に困ることもなくセットアップできました。
Ansible、今更だけどちゃんと勉強しようw

続編

秘密情報ファイルをansibleでデプロイするためにVaultを使う - yukofebの日記