Adachinですっ。

インフラエンジニアといえば構成管理に悩まされ、
実際Chefとかansibleあるけど、
「どれを使ったほうがいいのか」など
自分の経験によるメリット、デメリットを簡単にブログしていこうと思います。
最近では!

インフラエンジニア= Infrastructure as Code!

と言われてます。つまりインフラエンジニアはサーバ構築以外にも
自動化するコードを作れ!ということですね。
自動化することで、サーバのパッケージ系は全て管理できて、
設定ファイルも共通化できるのでミスも減ります。


■初めて構成管理ツールを勉強したお話chef

ガチで勉強し始めたのは去年の2月ごろです。
ちょうど新しい職場(現在)に転職してから

「Chef-Serverやるよ!移行もやるよ!」

ってなってからです。その前までは「ふーん」レベルでした。
以下に頑張ってるブログ書いていますw
https://blog.adachin.me/wordpress/?cat=44

・Chef-Serverのいいところは?

まず、大規模なサーバ運営の場合だとかなり役に立つと思います。
Chef-ServerだとWebuiもあって、このnodeにはこんなの入ってるのか〜
など確認できます。もちろんknifeコマンドでも。レシピを可視化しやすいのはいいですね。
それにセキュアだし(いろいろと鍵の設定でやらある)
そういえばChefはRubyですね。
Chefは「料理の準備します、レシピ見ます、野菜取ります、切ります、炒めます」
こんな感じです。完全に料理人だ。

・Web画面

chef-recipes
・Chef-Serverの悪いところは?

ものすごい学習コストが高いです(泣)2ヶ月くらいかかった気がする・・・
Chef独特の設定もあってknifeコマンドも覚えないといけないし、attributesとかなに!?など
構成する要素が多いのでトラブルが発生した場合、対応コストが高いです。
理解してないと辛い。。
簡単に言うと「複雑」

・ちなみに

Chef-Server/Chef-zeloもほとんど同じでworkstation,chef-server,nodeという
3つの構成をクライアント・サーバ形式といって大規模とかに向いてるはず。chef-server

Chef-Soloは各nodeにレシピを当てるかんじ。スタンドアロン形式といって小規模とかに向いてるはず。20140713200523


■次に出会った構成管理ツール1418_itamae

itamaeですね。当時はクックパッドのインフラエンジニア(荒井様)による開発で、
Chefのいいところを取って、もっと簡単に作ったよ!と世間では「うおおおお」となりました。
そこで社内の開発サーバリプレイスのため、せっかくだから開発サーバリプレイやるし
itamae経験しようと思い、導入しました。
ホントはChefやったから共通化しないといけないんですが。。。
ちなみにitamaeのブログは以下になります。記事が少ないw

https://blog.adachin.me/wordpress/?cat=58itamae01

・itamaeのいいところは?

機能がとってもシンプルで学習コストめちゃくちゃ低い点ですね。
サイズがコンパクトで導入しやすいし、
管理対象サーバに専用のソフトウェアをインストールする必要もないので楽ちんです。
gem install itamaeで環境が作れる!
SSHとsudoで管理者権限が使えればサーバの設定処理を実行できるし、すぐに取り掛かれましたね。
chef-serverは「~が入ってないよ!」とか構築に時間かけすぎました。。

・itamaeの悪いところは?

そもそもChefのレシピを使いまわしすることはできません。
もちろんknifeコマンドというのもありませんし、
nodeごとのレシピを作る必要があります。
gitで管理してますが、webで確認して見難いのが難点。
knifeコマンド使えたらな〜。。。
なので小規模向けですね。B to Bとかに向いてますね〜
自動化ってこんな感じなのかーという人は是非!


■さらに出会った構成ツール

ansible_logo_850x400

あんじぶーる。勉強し始めたのは去年の冬くらい。itamaeに近かったので、
一瞬で慣れましたね。今のセンパイに「あだちんすぐ覚えるから助かるわ〜」
など言われていますw(それぐらい学習コスト低い!)
ansible系のブログは以下になります!多いw

https://blog.adachin.me/wordpress/?cat=70

・ansibleのメリットは?

今までの構成管理ツールで求められたプログラミングの知識は無知でもOK!
そもそもYAML形式のテキストに手順を列挙するだけでいいというところ。
あとは最近出た構成ツールなのでpuppet,chef,itamaeの弱点を押さえているので
全てできることが揃っているところ。もちろんSSHで接続なのでPythonいれるだけでOK。
あとはモジュールの拡張性がすごい。クラウド系モジュールとかdockerとかも対応してるし、
すんごい。去年redhatに買収されたので将来性に期待!

・ansibleのデメリットは?

特にないかもw
あえて言うならWebuiとかほしい!
はい。ありますw
Ansible Towerという有料webuiが。。。
オープンソースにしてほしいなあ〜944503


■puppetってどうなの?puppetlogo

過去の遺産とか残ってるのでレシピを見てみたくらいですが、chef-serverに近いですね。
エージェント入れてpuppet独自のマニフェストの理解をしないといけません。
今後は勉強しなくてよしw


■構成管理ツール比較表(サクラのナレッジより)s01


■まとめ

結局のところ用途によって様々な構成管理を使い分けるのがベストだと思いますが、
やっぱ今後に期待できるansibleがいいと思います。

自動化サイコーEngine

The following two tabs change content below.
あだちん

あだちん

1989年生まれ。 Infra engineer/Site Reliability Engineering/In Shibuya 2013年新卒に自宅サーバを構築し、この技術ブログを立ち上げたが、 2017年に電源が壊れConoHaにリプレイスした。 好きな構成管理ツールはansible,Terraform。 仮想化ならdocker。Python初心者。 HIPHOPが好きすぎてTrack Makerでもある。

コメントを残す