LoginSignup
23

More than 5 years have passed since last update.

[Chef12]Chef-Serverの設定

Posted at

http://docs.chef.io/server/install_server.html
http://downloads.chef.io/

インストール自体は手順に添うだけで全く問題ないのですが、client回り等のchef10/11からの移行時に変更になる点を主にメモしておきます。なので、本題は後ろの方です。
yumで参照しているリソースなんかは最新版を確認して下さい。

chef-serverのインストール

基本

  • chef-server-coreだけインストールした後は、chef-server-ctl等のコマンドでinstallしたりreconfigureしたりする。設定ファイルを変更したらreconfigureする。
  • chef-server-core関連のファイルは /etc/opscode にある
  • ログは /var/log/opscode にある

以下の手順では、

  • chef-server-core
  • manage ui
  • reporting

を1つのサーバーにインストールしたあと、もう1つサーバーを準備して

  • chef-analytics

をインストールします。(chef-analyticsはすぐ用意しなくてもserverの利用に問題ないです)

chef-server-core

chef-server-coreのインストール
yum install https://web-dl.packagecloud.io/chef/stable/packages/el/6/chef-server-core-12.0.3-1.x86_64.rpm

chef-server-ctl reconfigure

user/org作成

user/organization作成
## user作成
chef-server-ctl user-create user_name first_name last_name email password --filename ADMIN_PEM_FILE_NAME

## org作成
chef-server-ctl org-create short_name full_organization_name --association_user user_name --filename ORG_VALIDATION_KEY_FILE_NAME

/etc/opscode/admin.pem
/etc/opscode/orgname-validator.pem
とかの名前が分かりやすいでしょう。

既定だと以下のdirにchef-analytics用の設定ファイルが生成されます。別のサーバーでchef-analyticsを実行する場合は、このファイルをコピーすることになります。

/etc/opscode-analytics/webui_priv.pem 
/etc/opscode-analytics/actions-source.json 

chef manage ui

install
chef-server-ctl install opscode-manage
opscode-manage-ctl reconfigure

chef-reporting

install
chef-server-ctl install opscode-reporting
chef-server-ctl reconfigure
opscode-reporting-ctl reconfigure
opscode-reporting-ctl test

インストール後の確認諸々

注意点

  • erlangのデーモンプロセスであるbeamがlistenしてなかったら何かの設定が足りない。netstat -tlnpとかで確認
  • testやpreflightなどの各種チェックコマンドでエラーが出る場合はだいたい設定ファイルが間違ってます。

chef-analysticサーバーのインストール

chef-analystic

https://docs.chef.io/install_analytics.html
https://downloads.chef.io/analytics/

Standalone1.1のの手順に準じます。

インストール済みchef-server側の設定

chef-server-ctl stop

vi /etc/opscode/chef-server.rb 
/etc/opscode/chef-server.rb
rabbitmq['vip'] = 'BACKEND_IP'
rabbitmq['node_ip_address'] = '0.0.0.0'
## chef-analytics用設定
oc_id['applications'] = {
  'analytics' => {
    'redirect_uri' => 'https://analytics.example.com'
  }
}
chef-server-ctl reconfigure

chef-server-ctl start

以下のファイルを、chef-analysticsサーバー側に転送して下さい。

/etc/opscode-analytics/webui_priv.pem 
/etc/opscode-analytics/actions-source.json 

chef-analysticsサーバー側の手順

chef-analysticsのインストール
yum install -y https://web-dl.packagecloud.io/chef/stable/packages/el/6/opscode-analytics-1.1.1-1.x86_64.rpm

vi /etc/opscode-analytics/opscode-analytics.rb
/etc/opscode-analytics/opscode-analytics.rb
analytics_fqdn "analytics.example.com"
topology "standalone"
# 転送済み確認
cat /etc/opscode-analytics/webui_priv.pem 
cat /etc/opscode-analytics/actions-source.json 

opscode-analytics-ctl preflight-check
opscode-analytics-ctl reconfigure

完了したら https://analytics.example.com にアクセスしてみましょう。

chef-clientの実行

client.rbの作成

http://docs.chef.io/client/config_rb_client.html
http://docs.chef.io/chef_client_security.html

/etc/chef/client.rb
log_level              :info
log_location           /var/log/chef-client.log
chef_server_url 'https://<chef-server>/organizations/<orgname>'
validation_client_name '<orgname>-validator'
validation_key         '/etc/chef/validator.pem'
ssl_verify_mode        :verify_none

chef_server_url/validation_client_name

organizationごとに違う値が入ります。

ssl_verify_mode

デフォルト設定で接続先chef-serverの証明書を検証するようになっていて、上記のchef-serverで入る手順だと当然SSLは自己証明書。エラーで弾かれるのでclient.rbでモードを変更しておきます。

validation.pemの設置

orgnizationごとに別々のvalidation.pemが設定される。
org-createコマンド実行時にオプション--filenameを指定しておけば、サーバー上にpemが保存されていますので、clinetに適宜転送したりします。
ない場合は(WebUIの場合)Administration->OrganizationsからReset Validate Keyを実行して再生成。

knifeの実行

~/.chef/knife.rb(例)
node_name                'user_name'
client_key               '~/.chef/ADMIN_PEM_FILE_NAME'
chef_server_url          'https://<chef-server>/organizations/<orgname>'
cookbook_path            [ '~/chef-repo/cookbooks' ]
ssl_verify_mode          :verify_none
knife client list

> org-validator

インストール直後でもvalidatorだけは見えるはずです。

knifeをユーザーごとに行うなら個別にユーザーを作成し、orgと紐づけておきます。Analyticsとかで誰が何の操作をしたか追えるようになります。WebUIからだと、/signupで新規ユーザー作成 -> Organizetionから新規ユーザーをInvite -> 新規ユーザーでログインして参加 という流れになります。

CUI
chef-server-ctl org-user-add -a orgname user_name2

※現状、orgへのinviteに対するacceptはWebUIからじゃないとできないかも…。

その他の注意点

  • chef-serverからmailが送られる設定をきちんとすればメールでいろいろ送られるはずなんですが、そこまで試していません。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23