cinc-client をつかいたい

Chef Infra Clientの初回実行時や、バージョンアップのたびにライセンスに同意するオプションを付けるのが面倒な場合、リモートノードではコミュニティビルドパッケージ版のCinc-Clientを使うこともできます。

CINC

この情報は2019年12月時点のものです。

cinc-clientchef-clientからデフォルトの設定ディレクトリを/etc/chefから/etc/cincに変更しただけのパッケージです。
chef-client => cinc-clientへのSymlinkも作成されます。

そのため、下記のように設定ファイルへのパスを実行時に指定するだけで差し替えられるようになっています。

または、/etc/cinc => /etc/chefをSymlinkにしてもよいでしょう。

bootstrap時からcinc-clientを使用する場合

CINCはChefのomnibus-installer互換のインストールスクリプトを提供しています。

Download • CINC

knife-zero 2.2.0以降であれば、--alter-projectオプションにcincを渡せば自動でそちらを選択します。

以下はUbuntu 16.04のノードをbootstrapするサンプルです。

$ knife zero bootstrap ${YOUR_NODE_IP} \
  --sudo \
  --alter-project cinc \
  -N my-ubuntu16

問題なく適用できました。

$ knife node show my-ubuntu16
Node Name:   my-ubuntu16
Environment: _default
FQDN:        ubuntu-xenial
IP:          xx.xx.xx.xx
Run List:    
Roles:       
Recipes:     
Platform:    ubuntu 16.04
Tags:        

alter-projectを設定ファイル(knife.rbconfig.rb)に永続化する場合、次のように書いておくことができます。

knife[:alter_project] = 'cinc'

cinc-clientのバージョンを変更する

zero convergeでも同様に--alter-projectオプションが使えます。

$ knife zero converge 'name:my-ubuntu16' \
  --client-version latest \
  --alter-project cinc \
  --sudo

こちらもconfigに下記記述をしておけば省略可能です。

knife[:alter_project] = 'cinc'

すでにChef Infra Clientが稼働しているノードをCincに入れ替える

まずknife sshでChef Infra Clientを削除します。

$ knife ssh "name:my-ubuntu16" "sudo dpkg -r chef"
(Reading database ... 72883 files and directories currently installed.)
xxx.xxx.xxx.xxx Removing chef (15.3.14-1) ...

knife-zero 2.2.0以降であれば、--alter-projectオプションにcincを渡せば自動でそちらを選択します。

$ knife zero bootstrap ${YOUR_NODE_IP} \
  --sudo \
  --alter-project cinc \
  -N my-ubuntu16 \
  --no-converge

Let’s try knife zero converge again to check the operation.

$ knife zero converge "name:my-ubuntu16"
xxx.xxx.xxx.xxx Starting Cinc Client, version 15.5.1

...

xxx.xxx.xxx.xxx  Cinc Client finished, x/xxx resources updated in xx seconds
Fork me on GitHub