Chef-Server 11系をインストールした際の作業メモです。
環境/構成
- 環境
- OS: CentOS6.4 (x86_64)
- Chef-Server: 11.0.8 (Chef-Client: 11.4.0)
- 構成
- Chef-Server と Chef-Workstation を同一ホストにセットアップします。
前提条件
- 443/tcp の通信を許可
- /etc/hosts に FQDN を追加
Chef-Server のインストール
1. RPM パッケージのダウンロード
$ curl -O https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.8-1.el6.x86_64.rpm
2. yum コマンドでインストール/セットアップ
$ sudo yum localinstall --nogpgcheck ./chef-server-11.0.8-1.el6.x86_64.rpm $ sudo chef-server-ctl reconfigure chef-server Reconfigured! $ sudo chef-server-ctl test 70 examples, 0 failures
3. 必要なコマンドのシンボリックリンク作成
必要そうなコマンドにパスを通す*1ために、シンボリックリンクを作成します。
$ sudo ln -s /opt/chef-server/embedded/bin/chef-apply /usr/local/bin/chef-apply $ sudo ln -s /opt/chef-server/embedded/bin/chef-client /usr/local/bin/chef-client $ sudo ln -s /opt/chef-server/embedded/bin/chef-shell /usr/local/bin/chef-shell $ sudo ln -s /opt/chef-server/embedded/bin/chef-solo /usr/local/bin/chef-solo $ sudo ln -s /opt/chef-server/embedded/bin/knife /usr/local/bin/knife
4. WebUI の確認
Web ブラウザで、"https://chef-server/" へアクセスします。
以下のアカウントでログインすると、パスワード変更画面になるので、新しいパスワードを設定します。*2
- User: admin / Pass: p@ssw0rd1
Chef-Workstation (knife) の設定
admin ユーザーの権限で knife の設定を行います。
1. 鍵の準備
$ mkdir ~/.chef; cd ~/.chef $ sudo cp -a /etc/chef-server/admin.pem . $ sudo cp -a /etc/chef-server/chef-validator.pem . $ sudo chown admin:admin ./*.pem
2. セットアップ
質問が 10 系のものになっているので、chef server URL の指定に注意します。
$ knife configure WARNING: No knife configuration file found Where should I put the config file? [/home/admin/.chef/knife.rb Please enter the chef server URL: [http://chef-server:4000] https://localhost Please enter an existing username or clientname for the API: [admin] admin Please enter the validation clientname: [chef-validator] chef-validator Please enter the location of the validation key: [/etc/chef/validation.pem] /home/admin/.chef/chef-validator.pem Please enter the path to a chef repository (or leave blank): ***** (中略) ***** Configuration file written to /home/admin/.chef/knife.rb
3. 確認
$ knife --version Chef: 11.4.0 $ knife client list chef-validator chef-webui
4. 標準ディレクトリの取得
$ git clone https://github.com/opscode/chef-repo.git
Chef-Node の登録
Node 側から chef-client コマンドを実行することで、登録することができます。
登録の際に、chef-validator の秘密鍵と設定ファイルが必要です。
1. Chef のインストール
$ sudo sh -c "curl -L https://www.opscode.com/chef/install.sh | bash"
2. 秘密鍵/設定ファイル(/etc/chef/client.rb)の準備
Chef-Server で作成された chef-validator.pem を Node 側に /etc/chef/validation.pem としてコピーします。
$ sudo vi /etc/chef/client.rb log_level :info log_location STDOUT chef_server_url 'https://chef-server' node_name 'chef-node'
3. Chef-Node の登録
$ sudo chef-client
11 系から Chef-Server の RPM パッケージが提供されるようになったので、インストールが簡単になりました。
/opt/chef-server にインストールされるので、RubyGems でインストールしていた 10 系に比べると、キレイな形で運用できそうです。
あと、11 系からバックエンドな DB が PostgreSQL に変更になっているので、バックアップとか考える必要があります。
*1:/opt/chef-server/embedded/bin には、RabbitMQ や PostgreSQL などコンポーネントのコマンドも含まれているため、/opt/chef-server/embedded/bin を 環境変数 PATH へ追加するのはやめました
*2:"Regenerate Private Key" はチェックしません