概要
- chefを利用する時には、chefのサーバーと、構築したいノードから構成される。
- ノードには、事前にchef-clientをインストールする必要があるが、bootstrapの機能を利用すれば、chef-clientをリモートからインストールできる。
例
- 構成
- server: 192.168.100.51
- 構築対象のノード: 192.168.100.52
- 対象のノードには事前にchefユーザーが存在すること
- chefユーザーはsudo権限を所持していること
- chefユーザーは外部からssh接続できること(今回はパスワード認証)
$ knife zero bootstrap 192.168.100.52 --ssh-user chef --sudo
$ knife node run_list add localhost 'role[linux-server]'
$ knife zero converge 192.168.100.52 --ssh-user chef --sudo
問題と解消方法
- convergeを実行すると、ssh接続しようとするが、接続先によっては、接続できないことがある。
- FQDNを持たず、IPで直接接続するケースにおいて発生する。
- 上記例の場合、以下のようなnodeファイルが作成されているがfqdnをIPアドレスに置き換える必要がある。
{
"name": "localhost",
"normal": {
"knife_zero": {
"host": "192.168.0.52"
},
"tags": [
]
},
"automatic": {
...
"hostname": "localhost",
"machinename": "localhost.localdomain",
"fqdn": "localhost", // <- ここを192.168.0.52とすると動作する
"domain": null,
...