Ansibleを入れてみた
Ansibleをいれてみた
注意:この記事は、Ansibleを触り始めて1時間にも満たない人間が書いた記事です。
本日、Ansible 勉強会 #1 に参加した。 構築で使う意欲よりも、運用で使ってみようという意欲が湧いたので、初期導入からやってみる。
インストール
Ansibleはエージェントレスなため、ansibleを実行したいマシンにansibleをインストールすればいい。
macでHomebrew使ってる場合はこれだけ。
brew install ansible
実行
ansibleはsshconfigを考慮するため、IPだけでなく、sshconfigに書いてるHostを使っても実行可能だ。
例えば
Host local-centos User aibou HostName 192.168.100.1 IdentityFile ~/.ssh/id_rsa
と記述していれば、ansible の inventory に local-centos と記述することができる。
ということで、inventoryファイルを作ってみる。
[local] local-centos
その後、このコマンドを実行してみた。
ansible -i ./inventory local -m ping
ここでエラーにならない場合は、サーバ側で必要なパッケージがインストール済みで問題ないが、
こんなエラーになる可能性がある。
local-centos | FAILED >> { "failed": true, "msg": "Error: ansible requires a json module, none found!", "parsed": false }
こういう場合、エージェントレスとはいうもののpython-simplejson
パッケージが必要なため、インストールする必要がある。
sudo yum install -y python-simplejson
その後、もう一度コマンドを実行すると成功結果が返ってくる。
local-centos | success >> { "changed": false, "ping": "pong" }
Inventoryのグループ
Inventoryにはグループを設定することができる。
上記で言うと、[local]
がそれに該当する。
なので、こういう感じで書ける。
[web-server] hoge-wap-01 hoge-wap-02 hoge-wap-03 hoge-wap-04 hoge-wap-05 hoge-wap-06
とおもいきや、Rangeで記述することができるらしい。
[web-server] hoge-wap-[01:06]
これは便利!
その他、Inventoryにいろいろ設定できるらしいが、まだ理解してないのでパス。
所感
今まで、サーバの構築のために社内共有Chefサーバ使用していた。
それはそれで使い続けてもいいかなとは思ってるが、オペレーションを行うためにAnsibleを導入するのはアリだと思う。
例えば、パッケージのアップデートを始め、障害時のミドルウェアの再起動等をAnsibleを用いて行うことで、手間を減らせると考えられる。
監視サーバもしくはJenkinsサーバにインストールしておくことで、いろいろ夢が広がりそうだ