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の展開
    なぜか展開されなかった・・・