2015年8月18日火曜日

5 step で Chef Server 12 を構築する手順

以下の URL に記載がある手順に従って Chef Server 12 を構築する。
https://docs.chef.io/install_server.html

※ AWS で構築する場合は、t2.micro だとメモリ不足で起動しない。

1. packagecloud からリポジトリ設定のインポート


curl -s https://packagecloud.io/install/repositories/chef/stable/script.rpm.sh | sudo bash

2. chef-server-core パッケージのインストール

sudo yum install -y chef-server-core
   ...(snip)...
Installed:
  chef-server-core.x86_64 0:12.1.2-1.el6

Complete!

3. 以下のコマンドを実行して、各種サービスを開始

sudo chef-server-ctl reconfigure
..... たくさんメッセージが出力される。
いろいろなレシピが実行されるので結構時間がかかる。
 

4. 最初 chef-server ユーザーの作成

書式は以下の通り
chef-server-ctl user-create <ユーザ名> <名> <姓> <メールアドレス> <パスワード> --filename <RSA Private Key を保存するファイル名>
<実行例>
sudo chef-server-ctl user-create t_suzuki taro suzuki t_suzuki@example.com xxsecretxx --filename t_suzuki_chef.key

作成された、プライベートキーはワークステーションからのアクセスに
使用されるので別途保管しておく

登録されているユーザーの一覧は user-list サブコマンドで表示する。
$ sudo chef-server-ctl user-list
pivotal
t_suzuki

登録されているユーザーの詳細は user-show サブコマンドで表示する。
$ sudo chef-server-ctl user-show t_suzuki
display_name: taro suzuki
email:        t_suzuki@example.com
first_name:   taro
last_name:    suzuki
middle_name:
public_key:   -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsgYZbeuev/FzT+kI9iqE
7ORU/w8BpZa33tOXs+bafFUhaMYslnVZ5azMbZSRBgobOdTX5Gn/qRUrVQw1czxC
TXx+0tDe68T88McnOFdRjEUTPF1WZh7x1QSgUXSeC1c0388UrdQbFXCcEi8AnPdk
P/YdpzMjJdOkZPFiJpUVZlbUyVs/TLMe5LbvU40x/LJ/8W3kWlHd42ixIjmEC6Ba
k1DkP9FIs9gvUQINgQRLvZK8XWF2AmnF1ew0Sgui5kDWja0VbSecKTW+1XgJib1y
ifxD08qgRTZQBNkog0mqBf5jeXN5dZgqbiKABZ6vPmQxHTZc8fywajj1TH+sOzNj
gQIDAQAB
-----END PUBLIC KEY-----

5. 最初の組織(会社やグループなど)の作成


書式は以下の通り
sudo chef-server-ctl org-create <組織の略称> "<組織のフルネーム>" --association_user <組織に関連付けるユーザ> --filename <RSA秘密鍵を保存するファイル>

実行例
sudo chef-server-ctl org-create example "example inc.," --association_user t_suzuki --filename example-validator.key

登録されている組織の一覧は org-list サブコマンドで表示する
$ sudo chef-server-ctl org-list
example

登録されている組織の詳細は org-show サブコマンドで表示する

$ sudo chef-server-ctl org-show example
full_name: example
guid:      56000f67fc6ce0626817b709ba191895
name:      example

これで最低限動作するはず。

2015年8月17日月曜日

chef 12 server のインストール で混乱したのでメモを残しておく

以下の公式サイトからダウンロードしようとすると、何か登録しないといけないようだが キャンセルしてもダウンロードはできてしまうので、登録は必須ではないらしい。
https://downloads.chef.io/chef-server/

配布自体は package cloud 経由で行われている。
https://packagecloud.io/chef/stable/install

以下のMLスレッドにある記事を見ると今後こっちが主流になるらしい。
http://lists.opscode.com/sympa/arc/chef/2014-12/msg00193.html


sha1 の結果は一緒だったので、簡単な方を選ぶ。
上記 packagecloud のインストラクションに従い以下のコマンドを実行する。

curl -s https://packagecloud.io/install/repositories/chef/stable/script.rpm.sh | sudo bash

実行すると、/etc/yum.repos.d/ 配下に chef_stable.repo というファイルが 作成され、普通に yum でインストールできるようになる。
438 MB と結構でかいので少しインストールに時間がかかる。

$ sudo yum install chef-server-core
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                                                               | 2.1 kB     00:00
amzn-updates/latest                                                                                                                            | 2.3 kB     00:00
Resolving Dependencies
--> Running transaction check
---> Package chef-server-core.x86_64 0:12.1.2-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                                     Arch                              Version                                   Repository                              Size
======================================================================================================================================================================
Installing:
 chef-server-core                            x86_64                            12.1.2-1.el6                              chef_stable                            438 M

Transaction Summary
======================================================================================================================================================================
Install  1 Package

Total download size: 438 M
Installed size: 1.2 G
Is this ok [y/d/N]: y
Downloading packages:
chef-server-core-12.1.2-1.el6.x86_64.rpm                                                                                                       | 438 MB     00:40
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : chef-server-core-12.1.2-1.el6.x86_64                                                                                                               1/1
  Verifying  : chef-server-core-12.1.2-1.el6.x86_64                                                                                                               1/1

Installed:
  chef-server-core.x86_64 0:12.1.2-1.el6

Complete!

ちなみに yum search すると、chef-server と chef-server-core の二つが 表示されて、非常にややこしい。chef-server の方は以下のパッケージが インストールされる。

chef-server-11.1.7-1.el6.x86_64.rpm

こっちは chef 11 のサーバーなので要注意。他に以下のパッケージも 11 ってバージョンがついている。

chef-container-11.16.2-1.x86_64.rpm
private-chef-11.3.2-1.el6.x86_64.rpm

2015.8.18 追記
ちなみにこのリポジトリから取得できるパッケージは以下のとおりでした。
$ yum --disablerepo=* --enablerepo=chef_stable list available
Loaded plugins: priorities, update-motd, upgrade-helper
Available Packages
chef.x86_64                                         12.4.1-1.el6                                            chef_stable
chef-container.x86_64                               11.16.2-1                                               chef_stable
chef-ha.x86_64                                      1.0.0_rc.3-1                                            chef_stable
chef-marketplace.x86_64                             0.0.1-1.el6                                             chef_stable
chef-server.x86_64                                  11.1.7-1.el6                                            chef_stable
chef-server-core.x86_64                             12.1.2-1.el6                                            chef_stable
chef-sync.x86_64                                    1.0.0~rc.6-1.el5                                        chef_stable
chefdk.x86_64                                       0.7.0-1.el6                                             chef_stable
delivery.x86_64                                     0.3.210-1.el6                                           chef_stable
delivery-cli.x86_64                                 20150811030818+20150811030818-1.el6                     chef_stable
opscode-analytics.x86_64                            1.1.5-1.el6                                             chef_stable
opscode-manage.x86_64                               1.21.0-1.el6                                            chef_stable
opscode-push-jobs-client.x86_64                     1.1.5-1.el6                                             chef_stable
opscode-push-jobs-server.x86_64                     1.1.6-1                                                 chef_stable
opscode-reporting.x86_64                            1.5.1-1.el6                                             chef_stable
private-chef.x86_64                                 11.3.2-1.el6                                            chef_stable
supermarket.x86_64                                  2.0.0~alpha.0-1.el6                                     chef_stable