Ubuntu server 12.04 64bit へのansible 1.2の導入
銀鷹です。
VirtualBox -> vagrant -> ansibleとようやく目標のansibleまで来ました。
今回はansibleの導入です。
ansibleとは?
Python版chefとかpuppet的なものです。構成管理ツール。
chefやpuppetみたいに、DSLで書くのではなく、YAMLでplaybook(chefで言うcookbook)が書ける。
拡張モジュールはどんな言語でも書けるらしい。
あと、採用の一番大きな理由は、chefやpuppetと違って、
管理対象のサーバにはsshでログインさえ出来れば良く、
rubyとかエージェントの導入が必要ないこと。
できるだけ簡単に導入出来ないと、今後後輩に引き継ぐことを考えると辛いと思ったので採用した。
個人的な勉強としてはchef、puppetあたりも触っておきたい。
ansible 1.2の導入
下記URL、Ubuntu and Debianのあたりを参照。
http://www.ansibleworks.com/docs/gettingstarted.html
Ubuntuの場合13.04だと1.2が入るらしいけど、あいにく12.04なのでPPAを使います。
ansible 1.2のインストール
PPAを入れて完了。
add-apt-repository
がない場合は、
sudo apt-get install python-software-properties
して下さい。
# sudo apt-get install python-software-properties sudo add-apt-repository ppa:rquillo/ansible sudo apt-get update sudo apt-get install ansible -y echo localhost > ansible_hosts export ANSIBLE_HOSTS=~/ansible_hosts ansible all -m ping -u ubuntu
動作確認
勉強にように僕が書いたplaybookを使います。
以下のリポジトリからcloneして下さい。
https://github.com/yutaka-j/ansible-playbook.git
Vagrantfileも入れてあるので、vagrantの導入も終わっていれば、すぐ使えます。
git clone https://github.com/yutaka-j/ansible-playbook.git cd ansible-playbook vagrant up cd playbooks ansible-playbook main.yml -i hosts/local -k
詳しくは、リポジトリのREADMEに書いてあります。
実行結果
長くなるのでリポジトリのREADMEを見て下さい。
1回目と2回目で変わります。
(1回目は普通に環境の構築、2回目は変化がないため何もしない。)
今回までで、ひとまずVirtualBox -> vagrant -> ansibleと導入しました。
次からは関係ない内容も増えそう。
しかし、思っていた以上に、一回設定書いておけば後は何台でも気にせず直ぐ出来るのは良い。
研究室のサーバも全部これで設定できるように変更していかねば。
ちなみに、READMEにもTODOで書いてある以下の内容。
割と困っていて何とかならないかなぁという感じ。
ちょっと時間見つけて調べる。(誰か知ってたら教えて下さい。)
TODO?
一部のplaybookでコメントアウトしてある部分がある.
それをちゃんと動かせるようにしたいな・・・
具体的には以下の2つ.知ってる人がいたら教えてください.
- ansibleでデフォルトのshellを変更(chsh)
chshがパスワード聞いてくるのでうまく行かない様子. - templateモジュールでvarsの展開
なぜか展開されなかった・・・