ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

Infrastructure as Code

サーバーの設定をすべてコードに

"Infrastructure as Code" とは、これまで手順書や、シェルスクリプト、または管理者の脳内に
分散していたサーバー構築の手順(や作業)をすべてコード化し、実行可能な状態で管理しよう、という概念です。

 

コードは必ず正しい状態で管理される

常に正確で、一切漏れのない構築手順を管理できます。
知りたいことはすべて、コードを読めばわかります。

 

誰でもサーバー構築が可能

コードを実行する方法さえ知っていれば、どのようなサーバーも同じ手順で構築可能になります。

 

Chef とは

Chef はコンフィギュレーションツール

構成管理ツールにも実はいろいろと種類があります。
それぞれのツールが担当するプロビジョニングのレイヤから、以下のように分類されています。

...

  • オーケストレーションツール
    • アプリケーションのデプロイ
    • Serf, Fabric, Ansible

 

Chef のプロビジョニング

Chef の Recipe はサーバーのあるべき状態を定義したものです。

...

サーバーは常にあるべき状態へ収束されるので、Recipe を何度実行しても同じ結果が得られます。(冪等性)
サーバーを修正したい場合でも、Recipe の一部だけを書き換えれば、
必ずあるべき状態へ収束されるので、Recipe さえ管理しておけば複雑な運用手順やシェルスクリプトは不要になります。

 

Chef の運用形態

クライアント/サーバー形式

Section
Column
width720px
  • サーバー
    • Chef-Server
      • Enterprise 版と Open Source 版がある
      • Node 情報の管理
      • Node の状態管理
    • Chef-Zero
      • インメモリの使い捨て Chef-Server
      • 主に検証用
  • クライアント
    • Chef-Client
      • Node の収束
Column

 

単体

Section
Column
width720px
  • Chef-Solo
    • 簡易 Chef-Server + Chef-Client
    • 1台で完結
    • Knife Solo
      • Chef-Solo をリモートから扱うツール
      • 複数の Chef-Solo クライアントを扱える
Column

 

外部ツールとの連携

Section
Column
width720px
  • Vagrant
    • Chef Solo Provisioner
      • Box に対するプロビジョニングツールとして Chef Solo を利用
    • vagrant-omnibus
      • Box に Chef-Client を自動インストールする Vagrant プラグイン
Column

...