Vagrant+Ansible触ってみた
chefが余りにも取っ付きにくかったため、下記エントリを読み、Ansibleを触ってみることにしました。
Chefがつらい人のためのAnsibleのはなし - ゆううきブログ
Vagrant準備
Vagrantのお作法もよくわかってないですが、二つディレクトリを作成し、それぞれのディレクトリでVagrantfileを作成した。
VMにIPアドレスをセットする場合は、Vagrantfileに下記のように追記します。
config.vm.network :private_network, ip: "192.168.50.10"
二つVMを立ち上げ、片方からもう片方にssh接続できるようにします。
片方VMで鍵作成してもう片方のVMの~/.ssh/authorized_keyに公開鍵を突っ込みます
$ssh-keygen -t rsa $cat ~/.ssh/id_rsa.pub # これを適当にコピる
Ansibleインストール
$sudo apt-get update $sudo apt-get install ansible
Ansibleで対象ホストを指定する
ANSIBLE_HOSTSに指定されたファイルを見に行くため、パスを通す
export ANSIBLE_HOSTS=~/hosts
ファイル自体の中身はこんな感じに書きます。webserverというグループにVMを追加するイメージです。
~/hosts
[webserver] vm-ip-address
適当なyamlを書いてみる
redisをインストールするだけのyamlです。
VMはUbuntu12.10なのですが、12.10の場合、redisのバージョンが2.4と古いため、
最新のredisをインストールできるようにします。
さらにUbuntu12.10には初期状態では"apt-add-repository"コマンドがないため、
それを利用するために"software-properties-common"をインストールします。
http://www.ansibleworks.com/docs/modules.html#packaging
~/test.yml
- hosts: webserver user: vagrant sudo: yes tasks: - name: install software-properties-common for apt-add-repository apt: pkg=software-properties-common update_cache=yes - name: add repo for redis apt_repository: repo='deb http://ppa.launchpad.net/chris-lea/redis-server/ubuntu quantal main' state=present - name: add repo for redis2 apt_repository: repo='deb-src http://ppa.launchpad.net/chris-lea/redis-server/ubuntu quantal main' state=present - name: apt-get update apt: update_cache=yes - name: install redis apt: pkg=redis-server update_cache=yes
実行します。
$ansible-playbook test.yml
対象VMでredisが正しくインストールされたか確認
vagrant@quantal64:~$ redis-server -v Redis server v=2.6.14 sha=00000000:0 malloc=jemalloc-3.4.0 bits=64
yamlの書き方とか正しいのかよくわからないけどできてた!!
なんかVagrantからAnsibleを使うのがあるらしいね!!
Ansible - Provisioning - Vagrant by HashiCorp