- 構成管理ツール何使ってますか?
- chef: 10人ちょいぐらい?
- ansible: 3-4人
- puppet: 0人
- itamae: 4-5人
- shell script: 4-5人
- 久しぶりにサーバ構築業することになり、Itamae使おうとしたけどchefのDSL完全に忘れていて、じゃあ初めからやるならとansible使い始めた
- あとその時chefよりもansibleがイケてるみたいな流れがあった気がする
- chefが嫌いになったからじゃないです
- 同様のものにchef、puppet、itamae
- エージェントレス(基本的にsshで頑張る)
- たまに構成管理するサーバに余計なもの入れたくないって会社もあるみたいなんで、そういう所にはよいのでは
- とはいえ実行先のサーバにPythonが入ってる必要あり
- この辺はもう色々書いてる人がすでにいるのでこのぐらいで割愛
- 分散実行できるシェルスクリプトのラッパーという感覚で使ってる
- Chefに比べて学習コストが低く、敷居が低い(と、世間一般で言われてる気がする)
- 実際自分もそれを真に受けてはじめた
- yamlの書き方覚えるのとChefのDSL覚えるのと学習コストの差は無い気がする
- 個人の感想です
- 人に教える時のコストは低いと感じる(個人の感想です)
- 極端な言い方をすれば、linuxコマンドが分かるならyamlの内容がなんとなく読めるのでは
- 個人の感想です
- ファイルを暗号化できるコマンド
- ansibleインストールすると一緒に入る
- 環境変数に入れる値を暗号化してcommitしている
- 調べたらchef-vaultってのもあるみたい
- Vaultも出ましたね
- 条件分岐やループもできるけど、結構辛い
- yamlは表現力に限界があるので、複雑なことをしたければmoduleを好きな言語で書いてね、というスタンス
- ansibleでmoduleを作ってみる
- playbook(recipe)内で複雑なことやりたいのであればchefがいいと思う
- あんまり複雑になりすぎないようにしておける方が個人的には好み
- オフィシャルの推奨ディレクトリ構成がピンとこない
- Best Practices
- 結局共有できないrole、変数がでてくる(ことが多い気がする)
- @yteraokaさんのオレオレベストプラクティスのほうがしっくりくる
- 他の構成管理ツールにも言えるけど、使い回しとか冪等性とかあまり考えすぎず、プロジェクトのコンテキストに合わせてリポジトリ都度作るぐらいでいいと思う
- 自分はインフラガチ勢ではないので、実際そうはいかない所も多いのかもしれない
- ドキュメントがパッと見core moduleと区別がつきにくいと感じた
- alternatives
This is an Extras Module
のくだりはページの上に移動してもいいんじゃないかなと思った
- 前に一回使ってハマった
- 使ってみてちゃんと動かなかったらおとなしく
shell
、command
moduleでやるのがいいと思う
- AWS等、動的にIPアドレスが変わるIaaSで使う場合は必須
- GCEのはバグってたのでプルリク出した
- issues: 500, Pull requests: 372
- 前述のプルリクも2ヶ月ほど残ってる
- v2.0に向けて今頑張ってるみたい
- 乗り換える必要は無いと思います
- 今使い慣れてるものを捨てるほどの優位性は無いと思うよ、という意味です
- 僕はansible気に入ってますし、今の所機能面での不満は無いので使います
- packerから使う場合はami作成のために立てたインスタンスでlocal実行しかできない
- エージェントレスの意味ないじゃん...
- local実行のためにinstallしてプロビジョニングが終わったらuninstallすればいいかな
- 試す
@shirou 確かに、パッと見区別がつきにくいというのは主観なので、表現を改めました。
ブログにも書いたんですが、
This is an Extras Module
のくだりはページの上部に移動してもいいんじゃないかなと個人的には思ってます。