うどん大学 情報系 院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』
