Ansibleを使ってMacBook Airのセットアップをする
新しいMacBook Airを購入したタイミングで以下の記事を発見してしまった。
Mac の開発環境構築を自動化する (2015 年初旬編) - t-wadaのブログ
ということで、触発されたのでやってみる。実は初Ansibleです。
事前準備
まずはセットアップ前にAnsible実行のためのコードを書いておく。
ということでまずは最低限のものだけ入れるようにしたのがこちら。
yukofeb/AnsibleLocalProvisioning
このコードを使ってMacにインストールしていく。
インストール
$ 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
$ 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
続編
MacBook Air11インチを注文しました
最近dockerをよく使っているせいか、MacBook Airが異様に遅い。
アクティビティモニタを確認すると、
VirtualBox、Chrome、XCodeと、メモリを食うアプリケーションが揃い踏み。
うーん、この辺は外せないし、そろそろ買い替えどきか。
というかよく見たらこのMac、メモリ2GBしか積んでなかった!そりゃ重いわ。
モデルもLate 2010だし、5年も使ったら十分減価償却できてるでしょう。
というわけで、あと数ヶ月でMacBook Airの新モデルが出そうですが、このタイミングで注文しました。
Intel Core i7、メモリ8GB、ストレージ512GBと、すべてアップグレード。
しょっちゅう買い換えるお金もないし、ここでケチってはいけないと思う。
あと初めて英語配列キーボードにしてみた。
使い勝手がいいとよく聞くので。楽しみ。
dockerコンテナのnginxでConnection refused
dockerコンテナでnginxを動作させてみる。
nginxを起動してcurlでアクセスしてみたものの、Connextion refusedと出力されてしまう。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 50802d9a477a yukofeb/nginx "/usr/sbin/nginx -g '" 17 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp nginx1 $ curl localhost:80 curl: (7) Failed to connect to localhost port 80: Connection refused
ドキュメントによるとDOCKER_HOST
が0.0.0.0
に設定されていないことが原因らしい。
Installation on Mac OS X
DOCKER_HOSTのIPを確認する方法は以下。
$ docker-machine ip default 192.168.99.100
これでOK!
$ curl 192.168.99.100:80 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>