Ansible勉強会に行って来たので,感想とかをつらつらと.
connpassで参加登録した時は補欠100番目とかでしたが,イベント開始の2時間前とかに繰り上がりの連絡がきて急いで行ってきました! 急なお願いにもかかわらず早退をさせてくれた会社に感謝です.
とりあえず @tagomoris さんの話は圧巻でした.規模はやはり違いますね. お話されていた,Dynamic Inventoryは有効活用していきたいと思いました.むしろ,使わなかったら,大規模化で死亡する気が... zabbixのプラグインもあるらしいので連携がんばってみようと思いました.
発表者の方の中で割りと言われていたのは,公式のBest Practiceに素直に従うと,やりにくいということでした.一部ディレクト構成をかえたり,ペライチのPlaybookで管理するようにしているらしいです.
@saito_hideki さんがハードウェアスイッチをAnsibleでプロビジョニングするという取り組みをされていました. 個人的には,ルータの一括プロビジョニングとかをしてみようと思いました.
あと,冪等性なんか気にしてたら負けだったみたいです.
Playbookの育成がんばろうと思える勉強会でした.(ServerSpecも)
発表
Ansible の基本 + MySQL レプリケーションを設定する事例 @IanMLewis さん
MySQLのPlaybookを例にAnsibleのイントロダクション的な発表をして下さいました.
(Ansibleの中の人のPlaybook)https://github.com/bennojoy/ansible-roles/. AnsibleGalaxyでよく見るあの人のPlaybookですが,以前見て参考になったので,慣れてきた今,再度見なおしてみようとおもいました.(Debian系とRHEL系対応するようにPlaybook書いてあるから微妙に見難いんだよな...)
Jija2のテンプレートファイルの拡張子が.j2
だということを初めて知りましたorz
dynamic inventoryが便利な話: no more host list! @tagomoris さん
スライド @tagomorisさんの所属されている会社での実用事例として + データセンターの追加による iptablesの変更 + ssh-keyの追加 + 全サーバーでのopensslのアップデート + ミドルウェアのインストール/アップデート が挙げられていました.(最大2000台に同時適用されたとか...)
エージェントレス型なので,こういった処理には便利ですよね.
InventoryファイルのTipsとして + groupのgroupを定義できる + 範囲の展開ができる などを紹介されていて,Inventoryファイルの煩雑さから解放される気がしました.
本題のDynamic Inventoryですが,
--list
と--host HOSTNAME
のオプションを受け付けて,jsonを返す実行可能プログラムがあればどのような実装であれ
Dynamic Inventoryを使うことができるそうです.
実装は,zabbix serverのAPIを叩いたり,自前のホスト管理システムのAPIを叩いたりするみたいです.(LINEのはYabitzというらしいです)
Yabizみたいなの各社…ありますね。。。うちはnoukaとyaoyaで作ってます #andibleja
— ばば としあき (@netmarkjp) 2014, 6月 10
うちは,zeushとhadeshです.
詳しい実装はここを参考にしたらいいらしい Developing Dynamic Inventory Sources — Ansible Documentation
serverspecのホスト管理もDynamic Inventoryみたいなことをしているらしいので,開発をしなければ.
LT
@r_rudi さん
Ansibleの拡張ポイントにはmoduleとpluginの2つがあって,pluginの中のcallbackの話.
playbookの実行前後に何かしらの処理を行わせることができるらしい. Hipchatにplaybookの実行時間を通知するとかしてみたい(Hipchatモジュール実行時間とかは送れないよね) (HipChatモジュールを使って実行時間をHipChatに通知するとかはできなさそうかなぁ)
あと,InfluxDBよさげだなーと.
@saito_hideki さん
pythonの入らないマシンへのAnsibleでのプロビジョニングの話でした.
fabricがやってるようなことをやってたっぽいです.
一部のルータのように,sshコマンド実行ができないマシンの場合どうしたらいいのかなーって思ってつぶやいたら.
ansibleが動くノード(localhost)にsshしてsnmpのwriteとかexpectとかnetconfでドーンですよ RT @toshitanian sshでコマンド実行できないネットワーク機器の設定の方法を誰かに教えて欲しい #ansibleja
— SAITO Hideki (@saito_hideki) 2014, 6月 10
@saito_hideki @toshitanian ローカルアクションとかでも良い気がします
— ひつまぶし (@_hitsumabushi_) June 10, 2014
らしいので試してみる.
@laugh_k さん
確かにssh_configが使えるのは便利だなと思いました.
お客さんのシステム作る人とかは切実な問題そうですね.
@myb1126 さん
半年くらいで,大規模な企業にAnsibleを導入されたのはすごいなと思いました.
後戻りロス数百万円を回収できたなら入れた価値がありそうだなと.
@iktakahiro さん
./configure
で頑張る姿勢が惚れる.
レッドハットで「yumは甘え」って言えるとこが惚れる.
サンプルのplaybookもすごかった.
@mystelynx さん
vagrantをansibleでprovisioningするやつ,VirtualBoxでしかためしたことなかったけど,EC2とかつかってると便利そうだなーと.
@xga さん
自分も以前Chefをがんばろうと思ったこともあったけど,Ansibleを触ったら簡単でAnsibleに流れたけど, 実際,Chefは学習コストは高いらしい.
Chefはタスクの実行順序がバラバラで制御が難しいらしい.その点Ansibleは上から下に実行されるのはよいなと思った.
Ansibleも一部並列にできたりできないのかな.
あと,Chef→Ansibleの移行の話もあって,ServerSpecで環境をテストしながらやったらしい.
ServerSpecの育成もがんばんなきゃ!