Chef-ServerとKnife-Zeroの相互移行

Knife-Zero から Chef-Server へ

  1. knife.rbからlocal_mode trueの記述を消します。
  2. nodesを除いて、environments, rolesdata_bags のオブジェクトをChef-Serverにアップロードします(knife upload)。
  3. すべてのNodeにChef-Server用のBootstrapを実行します。
  4. ランリストやNormal属性のattributeを復旧させるため、nodesのオブジェクトをアップロードします(knife upload)。

Chef-Server から Knife-Zero へ

  1. デーモン稼働のChef-Clientを停止、またはCronジョブから除外します。
  2. nodes, environments, roles および data_bags オブジェクトをChef-Serverからダウンロードします(knife download)。
  3. Berkshelf や Libraran を用いて、Cookbookをローカルに集めます。
  4. knife.rblocal_mode truechef_repo_path を追記します。
  5. knife zero bootstrap--no-converge オプション付きで実行し、リモートサーバの client.rb を更新します。
  6. 以降は、各Nodeを zero converge で管理することができます。

参考:
Knife-ZeroはCookbookのバージョニングに対応していません。これはファイルベースでChef-Zeroを使う際の仕様に依存してます。 バージョン違いで困るようなCookbookは、移行前に少々がんばって差異を吸収しておかないとダメかも。

Fork me on GitHub