うどん大学 情報系 院1年の堀内です.
Ansibleを使い始めて4ヶ月目ですが,Advent Calendarに参加してみました!
研究室のサーバ管理や,研究の実験で使っているので,その話をしようと思います.
Ansibleとの出会い
8月末に参加したヤフーのインターンシップで,始めて触りました.
簡単なデプロイ演習で,使うツールは自由だったので,選びました.
他の構成管理ツールも考えてみたのですが….
-
Chef
: クライアントが必要,レシピが上から下に実行されない -
Fabric
: RubyistなのでPython分からない -
Capistrano
: 学習コストが高そう
研究室のサーバ管理で
同時期に,サーバ監視ツールのSensuも使い始めました.
研究室にはVM含め20台以上のサーバがあるので,sensu-client
を流し込むのに使っています.
他にも,今まで手動でやっていたことも,Ansibleで自動化しています.
- パッケージ(
apt
)の更新とサーバの再起動 - 実験で必要な
Ruby
のコンパイル
PlaybookはGitHubに上げています.
『hico-horiuchi/ansible-playbooks』
研究の実験で
クラウド上のWebサーバをオートスケールするシステムの研究開発をしています.
Vagrant
実験のために大量のVMを構築する必要があり,そこでAnsibleを使っています.
Vagrant
を使っているので,以下の処理をさせています.
プロビジョニングにもAnsibleを使っています.
-
vagrant-libvirt
とvagrant-mutate
のインストール -
template
でVagrantfile
の生成と転送 -
kvm
用box
の追加とlibvirt
への変換 -
vagrant up
とvagrant provision
PlaybookはGitHubに上げています.
『ansible-playbooks/vagrant』
Apache Bench (ab)
システムのベンチマークをするのにApache Benchを使っています.
複数のクライアントで,時間差で実行させるのに使っています.
-
hosts
でクライアント毎のパラメタを指定 -
template
でab
実行用shellscript
の生成と転送 -
nohup
を付けてshellscript
を実行
PlaybookはGitHubに上げています.
『ansible-apache-bench/hico-horiuchi』
まとめ
インターンシップで触って,研究室で使うようになった話でした.
ssh
だけで動作し,モジュールが豊富なのが良いですね.
今後は,role
も使って,もっと便利にできればと思います.
(Playbookのレビュー,プルリクもお待ちしてます!)
ちなみに,Railsのデプロイにも使っていたりします.
『AnsibleでRailsをデプロイ - 12FF5B8』