1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[memo]Chef Server環境セットアップ手順

Posted at

2015年11月時点で個人勉強で構築した手順です。無くさないよう、ここで記載します。

最小構成でインストールしたCentOS7.1にChef Server 12.2をインストール手順です。

本手順で作成される環境

ソフトウェア バージョン
Chef-Server chef-server-core-12.2.0-1
OS CentOS7.1
workstation Ubuntu15.04
node Centos7.1

CentOSの設定

SELinuxを無効にする

/etc/sysconfig/selinuxを編集

SELINUX=disabled

変更後、CentOSを再起動

reboot

再起動後、SELinuxは無効になっているかを確認

getenforce

DisabledであればOK。

firewalldでHTTPSを許可

デフォルトzoneにhttpを追加する

firewall-cmd --zone=public --add-service=https --permanent

successが出力

追加した設定を反映

firewall-cmd --reload

successが出力

httpでのアクセスが許可されたか確認

firewall-cmd --zone=public --list-services

dhcpv6-client https sshが出力、https追加されたことを確認

Chef Serverの導入

今回はCentOS7上で構築するので、以下通りになる。ほかの環境であれば、chef公式パッケージダウンロードページ

パッケージのインストール

wget https://web-dl.packagecloud.io/chef/stable/packages/el/7/chef-server-core-12.2.0-1.el7.x86_64.rpm
rpm -ivh chef-server-core-12.2.0-1.el7.x86_64.rpm
chef-server-ctl reconfigure

注意点

上記rpmインストール完了後に、chef-server-ctlコマンドが使用可能になる。実行前に、hostnameの情報を確認すべき。
場合によって、/etc/hostsを編集し、IP host.domainのエントリーを追記。

Web UIのインストール

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

これで、ブラウザからアクセス可能になる。

補足

今回の場合localhost.domain = chef-server.sjteam
なので、https://chef-server.sjteam
もちろんDNS登録していないので、自分解決。また、https://ip_of_chef_server:443

administrator権限のユーザを作成

chef-server-ctl user-create user_name first_name last_name email password --filename FILE_NAME
例:
chef-server-ctl user-create kaminari.y Kaminari Y kaminari.y@jsteam.co.jp ilovechef --filename /etc/chef/kaminari.pem

所属組織を作成

chef-server-ctl org-create short_name "full_organization_name" --association_user user_name --filename ORGANIZATION-validator.pem
例
chef-server-ctl org-create sjteam "sjteam LAC, Inc." --association_user kaminari --filename /etc/chef/sjteam-validator.pem

これでChef Serverの設定はほぼ完了となる。以下のWorkstation側

==========================================================================

Workstationの設定

chef clientのコマンド類のインストール

curl -L https://www.opscode.com/chef/install.sh | bash

rootユーザで実行、sudoでエラーになる。

Chef Serverとの連携の鍵を設置

前述に、Chef Serverの/etc/chef/以下に*.pemファイルが作成され、このファイルはWorkstationの~/.chef/以下に設置
rloginでscp転送したので、手順は割愛

cookbookの雛形取得

github上から取得するので、Workstationにgitをインストールしていない場合、ここでインストール。
ほかの方法でも良いですが、今後cookbookの修正・管理を考え、ぜひgitを導入したほうが良い。
gitの導入方法はここで割愛

git clone git://github.com/opscode/chef-repo.git

上記より、cookbookの雛形を取得

knifeの設定

knife configure -i

そして以下通りになる(参考)

WARNING: No knife configuration file found
Where should I put the config file? [/home/kaminari/.chef/knife.rb]
Please enter the chef server URL: [https://kaminari-chef-client:443] https://chef-server.sjteam:443
Please enter a name for the new user: [kaminari] admin
Please enter the existing admin name: [admin] kaminari
Please enter the location of the existing admin's private key: [/etc/chef-server/admin.pem] /home/kaminari/.chef/kaminari.pem
Please enter the validation clientname: [chef-validator] sjteam-validator
Please enter the location of the validation key: [/etc/chef-server/chef-validator.pem] /home/kaminari/.chef/sjteam-validator.pem
Please enter the path to a chef repository (or leave blank): /home/kaminari/chef-repo
Creating initial API user...
Please enter a password for the new user:

最後にエラーになったが、~/.chef/knife.rbが作成された。別に手動で作成、修正も効くので、エラーを無視。
最終に修正した結果は以下を参考

log_level                :info
log_location             STDOUT
node_name                'kaminari'
client_key               '/home/kaminari/.chef/kaminari.pem'
validation_client_name   'sjteam-validator'
validation_key           '/home/kaminari/.chef/sjteam-validator.pem'
chef_server_url          'https://chef-server.sjteam/organizations/sjteam'
syntax_check_cache_path  '/home/kaminari/.chef/syntax_check_cache'
cookbook_path [ '/home/kaminari/chef-repo/cookbooks' ]

注意点

ここでchef_server_urlhttps://host.domain/organizations/実際のorganization を変更する必要があります。

SSL疎通設定

knifeの証明書関連の設定

knife ssl fetch https://chef-server.sjteam

ちなみに、workstaionの/etc/hostsにもChef Serverのエントリー追記を忘れずに!

設定部分完了

ここまで成功していると、以下のコマンドが使えるようになっている。

knife user list
knife client list

node登録

knifeで操作できるように、テストnodeを作成し、Chef Serverに登録
ここはCentOS7.1インストール完了後に、bootstrapを用いて実施

knife bootstrap IP -x user -P password -N node_name --run-list 'role[base_common]'
オプション
IP nodeのIPアドレス
user node上実行権限あるユーザ名(sudoの場合、--sudoが必要)
password 説明不要
node_name chef-serverに登録するときの名前
run-list nodeにchef-client後、実施したいrecipe

上記完了後に、Chef ServerにNode登録

chef-client

エラーがなければ

knife node list

web-serverが出力される。

以上

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?