Chef Infra Clientの初回実行時や、バージョンアップのたびにライセンスに同意するオプションを付けるのが面倒な場合、リモートノードではコミュニティビルドパッケージ版のCinc-Clientを使うこともできます。
この情報は2019年12月時点のものです。
cinc-client
はchef-client
からデフォルトの設定ディレクトリを/etc/chef
から/etc/cinc
に変更しただけのパッケージです。
chef-client
=> cinc-client
へのSymlinkも作成されます。
そのため、下記のように設定ファイルへのパスを実行時に指定するだけで差し替えられるようになっています。
chef-client --config /etc/chef/client.rb
または、/etc/cinc => /etc/chef
をSymlinkにしてもよいでしょう。
CINCはChefのomnibus-installer互換のインストールスクリプトを提供しています。
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.rb
やconfig.rb
)に永続化する場合、次のように書いておくことができます。
knife[:alter_project] = 'cinc'
zero converge
でも同様に--alter-project
オプションが使えます。
$ knife zero converge 'name:my-ubuntu16' \
--client-version latest \
--alter-project cinc \
--sudo
こちらもconfigに下記記述をしておけば省略可能です。
knife[:alter_project] = '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