• JAPANESE
  • ENGLISH

CL LAB

DRBDを用いたHA構成のChef Serverクラスタの構築 #getchef

2015.01.27

  • このエントリーをはてなブックマークに追加

以前、ec-metalでEnterprise Chef HAクラスタを構築しました。本稿ではHigh Availability: DRBDを参考に、順を追って手動でDRBDを用いたHA構成のChef Serverクラスタを構築してみます。

前提

環境

  • 環境: QEMU+KVM仮想環境
  • パブリックネットワーク: 192.168.122.0/24
  • プライベートネットワーク: 192.168.100.0/24
  • フロントエンド: 1台
  • バックエンド: 2台
  • ロードバランサ: フロントエンド1台のため不要
  • 名前解決: 全マシンの/etc/hostsに記載 (参考:Hostnames)
  • ファイアウォール: テストのため全解放 (参考:Firewalls)

フロントエンド

  • IPアドレス: 192.168.122.101
  • ホスト名: fe1.example.jp
  • OS: RHEL6.5
  • メモリ: 4GB
  • ディスク: 10GB (qcow2)
  • フロントエンドの共有ホスト名: chef-server.example.jp

バックエンド

  • パブリックIPアドレス: 192.168.122.111
  • プライベートIPアドレス: 192.168.100.111
  • ホスト名: be1.example.jp
  • OS: RHEL6.5
  • メモリ: 8GB
  • ディスク: 10GB (qcow2) + 5GB (qcow2)
  • パブリックIPアドレス: 192.168.122.112
  • プライベートIPアドレス: 192.168.100.112
  • ホスト名: be2.example.jp
  • OS: RHEL6.5
  • メモリ: 8GB
  • ディスク: 10GB (qcow2) + 5GB (qcow2)
  • 共有する仮想IPアドレス: 192.168.122.110
  • ホスト名: be.example.jp

ディスク構成

Disk ConfigurationではバックエンドのディスクにはハードウェアRAIDを構成することを推奨していますが、今回はQEMU+KVMでの構築テストなので利用していません。

まず、プライマリバックエンド(be1.example.jp)で、DRBDのためのLVMを構成します。対象ディスクは vdb (qcow2, 5GB)、ボリュームグループ(VG)名はopscode、論理ボリューム(LV)名はdrbd、エクステント内の論理ボリュームのサイズを80%とします。

[root@be1 ~]# pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created
[root@be1 ~]#
[root@be1 ~]# vgcreate opscode /dev/vdb
  Volume group "opscode" successfully created
[root@be1 ~]#
[root@be1 ~]# lvcreate -l 80%VG -n drbd opscode
  Logical volume "drbd" created
[root@be1 ~]#

プライマリバックエンドの構築

Primary Backendの手順を追っていきます。

まず、http://downloads.chef.io/chef-server/からダウンロードしたChef Serverパッケージをインストールします。

[root@be1 ~]# rpm -Uvh ~redhat/chef-server-core-12.0.1-1.x86_64.rpm
警告: /home/redhat/chef-server-core-12.0.1-1.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef-server-core       ########################################### [100%]
Thank you for installing Chef Server!
[root@be1 ~]#

ここで一旦、chef-server.rbを参考に、/etc/opscode/chef-server.rbファイルを作成します。これからどのようなChef Serverクラスタを構築していくかを決定する重要なファイルとなります。先に示した前提通りにファイルを作成しましょう。

[root@be1 ~]# vi /etc/opscode/chef-server.rb
topology "ha"

server "be1.example.jp",
  :ipaddress => "192.168.122.111",
  :role => "backend",
  :bootstrap => true,
  :cluster_ipaddress => "192.168.100.111"

server "be2.example.jp",
  :ipaddress => "192.168.122.112",
  :role => "backend",
  :cluster_ipaddress => "192.168.100.112"

backend_vip "be.example.jp",
  :ipaddress => "192.168.122.110",
  :device => "eth0"

server "fe1.example.jp",
  :ipaddress => "192.168.122.101",
  :role => "frontend"

api_fqdn "chef-server.example.jp"
[root@be1 ~]#

ファイルが作成できたら、手順に戻ります。

DRBDパッケージをELRepoからインストールします。まず、ELRepoの公開鍵をRPMデータベースに取り込みます。

[root@be1 ~]# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
[root@be1 ~]#

ELRepoのyumレポジトリ設定パッケージをインストールします。

[root@be1 ~]# rpm -Uvh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm を取得中
準備中...                ########################################### [100%]
   1:elrepo-release         ########################################### [100%]
[root@be1 ~]#

Xen Kernelであるかどうかを確認します。0となった場合はXen Kernelではありません。

[root@be1 ~]# rpm -qa kernel\* | grep -ci xen
0
[root@be1 ~]#

Xen KernelでないKernel向けのDRBDパッケージをインストールします。

[root@be1 ~]# yum install -y drbd84-utils kmod-drbd84-8.4.5-1.el6.elrepo
Loaded plugins: product-id, security, subscription-manager
elrepo                                                   | 2.9 kB     00:00    
elrepo/primary_db                                        | 664 kB     00:01    
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package drbd84-utils.x86_64 0:8.9.1-1.el6.elrepo will be installed
---> Package kmod-drbd84.x86_64 0:8.4.5-1.el6.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch         Version                     Repository    Size
================================================================================
Installing:
 drbd84-utils       x86_64       8.9.1-1.el6.elrepo          elrepo       458 k
 kmod-drbd84        x86_64       8.4.5-1.el6.elrepo          elrepo       187 k

Transaction Summary
================================================================================
Install       2 Package(s)

Total download size: 645 k
Installed size: 1.9 M
Downloading Packages:
(1/2): drbd84-utils-8.9.1-1.el6.elrepo.x86_64.rpm        | 458 kB     00:01    
(2/2): kmod-drbd84-8.4.5-1.el6.elrepo.x86_64.rpm         | 187 kB     00:00    
--------------------------------------------------------------------------------
Total                                           383 kB/s | 645 kB     00:01    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : drbd84-utils-8.9.1-1.el6.elrepo.x86_64                       1/2
  Installing : kmod-drbd84-8.4.5-1.el6.elrepo.x86_64                        2/2
Working. This may take some time ...
Done.
  Verifying  : kmod-drbd84-8.4.5-1.el6.elrepo.x86_64                        1/2
  Verifying  : drbd84-utils-8.9.1-1.el6.elrepo.x86_64                       2/2

Installed:
  drbd84-utils.x86_64 0:8.9.1-1.el6.elrepo                                      
  kmod-drbd84.x86_64 0:8.4.5-1.el6.elrepo                                      

Complete!
[root@be1 ~]#

Chef Serverの設定を行います。ただし、この時点ではDRBDの設定が未完了なので、次のメッセージが出て止まってしまいます。CTRL-Cで中断してしまいましょう。

[root@be1 ~]# chef-server-ctl reconfigure
    :
    :
    :
  * ruby_block[check_for_drbd_mount] action run[2015-01-06T16:05:25+09:00] WARN: To install DRBD on redhat 6.5:

rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
yum install -y drbd84-utils kmod-drbd84
service drbd start

[2015-01-06T16:05:25+09:00] WARN: Please defer to your Private Chef manual for instructions on initializing the device.
[2015-01-06T16:05:25+09:00] WARN: Cannot find /var/opt/opscode/drbd/drbd_ready - please bootstrap DRBD and run 'touch /var/opt/opscode/drbd/drbd_ready'.
[2015-01-06T16:05:25+09:00] WARN: Press CTRL-C to abort.

CTRL-Cでchef-server-ctl reconfigureを中断したら、DRBDの設定を行います。

[root@be1 ~]# drbdadm create-md pc0
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
[root@be1 ~]#
[root@be1 ~]# drbdadm up pc0
[root@be1 ~]#

ここでプライマリバックエンドから一旦離れます。

セカンダリバックエンドの構築

Secondary Backendの手順を追っていきます。

プライマリバックエンドで行ってきた手順をほぼそのままなぞります。

DRBDのためのLVMを構成します。

[root@be2 ~]# pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created
[root@be2 ~]#
[root@be2 ~]# vgcreate opscode /dev/vdb
  Volume group "opscode" successfully created
[root@be2 ~]#
[root@be2 ~]# lvcreate -l 80%VG -n drbd opscode
  Logical volume "drbd" created
[root@be2 ~]#

Chef Serverパッケージをインストールします。

[root@be2 ~]# rpm -Uvh ~redhat/chef-server-core-12.0.1-1.x86_64.rpm
警告: /home/redhat/chef-server-core-12.0.1-1.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef-server-core       ########################################### [100%]
Thank you for installing Chef Server!
[root@be2 ~]#

ELRepoの設定とDRBDパッケージのインストールを行います。

[root@be2 ~]# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
[root@be2 ~]#
[root@be2 ~]# rpm -Uvh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm を取得中
準備中...                ########################################### [100%]
   1:elrepo-release         ########################################### [100%]
[root@be2 ~]#
[root@be2 ~]# rpm -qa kernel\* | grep -ci xen
0
[root@be2 ~]#
[root@be2 ~]# yum install -y drbd84-utils kmod-drbd84-8.4.5-1.el6.elrepo
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
elrepo                                                   | 2.9 kB     00:00    
elrepo/primary_db                                        | 664 kB     00:01    
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package drbd84-utils.x86_64 0:8.9.1-1.el6.elrepo will be installed
---> Package kmod-drbd84.x86_64 0:8.4.5-1.el6.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch         Version                     Repository    Size
================================================================================
Installing:
 drbd84-utils       x86_64       8.9.1-1.el6.elrepo          elrepo       458 k
 kmod-drbd84        x86_64       8.4.5-1.el6.elrepo          elrepo       187 k

Transaction Summary
================================================================================
Install       2 Package(s)

Total download size: 645 k
Installed size: 1.9 M
Downloading Packages:
(1/2): drbd84-utils-8.9.1-1.el6.elrepo.x86_64.rpm        | 458 kB     00:01    
(2/2): kmod-drbd84-8.4.5-1.el6.elrepo.x86_64.rpm         | 187 kB     00:00    
--------------------------------------------------------------------------------
Total                                           344 kB/s | 645 kB     00:01    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : drbd84-utils-8.9.1-1.el6.elrepo.x86_64                       1/2
  Installing : kmod-drbd84-8.4.5-1.el6.elrepo.x86_64                        2/2
Working. This may take some time ...
Done.
  Verifying  : kmod-drbd84-8.4.5-1.el6.elrepo.x86_64                        1/2
  Verifying  : drbd84-utils-8.9.1-1.el6.elrepo.x86_64                       2/2

Installed:
  drbd84-utils.x86_64 0:8.9.1-1.el6.elrepo                                      
  kmod-drbd84.x86_64 0:8.4.5-1.el6.elrepo                                      

Complete!
[root@be2 ~]#

セカンダリバックエンド用の/etc/opscode/chef-server.rbファイルを作成する代わりに、プライマリバックエンド(be1.example.jp)の/etc/opscodeディレクトリ内の全ファイルをセカンダリバックエンド(be2.example.jp)の/etc/opscodeディレクトリにコピーします。これはプライマリバックエンドで自動生成された証明書ファイルなどのコピーも含んでいます。

[root@be2 ~]# scp -r root@192.168.100.111:/etc/opscode/\* /etc/opscode
root@192.168.100.111's password:
chef-server.rb                                100%  489     0.5KB/s   00:00    
dark_launch_features.json                     100%  381     0.4KB/s   00:00    
pivotal.cert                                  100% 1273     1.2KB/s   00:00    
pivotal.pem                                   100% 1679     1.6KB/s   00:00    
private-chef-secrets.json                     100% 1718     1.7KB/s   00:00    
webui_priv.pem                                100% 1679     1.6KB/s   00:00    
webui_pub.pem                                 100%  451     0.4KB/s   00:00    
worker-private.pem                            100% 1675     1.6KB/s   00:00    
worker-public.pem                             100%  451     0.4KB/s   00:00    
[root@be2 ~]#

所有者などは後の設定で自動的に合わせられるので気にしなくて構いません。

[root@be2 ~]# ls -l /etc/opscode/
合計 40
-rw-r--r-- 1 root root  489  1月  6 16:26 2015 chef-server.rb
-rw-r--r-- 1 root root  381  1月  6 16:26 2015 dark_launch_features.json
drwxr-xr-x 2 root root 4096  1月  6 16:26 2015 logrotate.d
-rw-r--r-- 1 root root 1273  1月  6 16:26 2015 pivotal.cert
-rw------- 1 root root 1679  1月  6 16:26 2015 pivotal.pem
-rw------- 1 root root 1718  1月  6 16:26 2015 private-chef-secrets.json
-rw------- 1 root root 1679  1月  6 16:26 2015 webui_priv.pem
-rw-r--r-- 1 root root  451  1月  6 16:26 2015 webui_pub.pem
-rw------- 1 root root 1675  1月  6 16:26 2015 worker-private.pem
-rw-r--r-- 1 root root  451  1月  6 16:26 2015 worker-public.pem
[root@be2 ~]#

Chef Serverの設定を行います。ここでもプライマリバックエンド同様、DRBDの設定が未完了なので、次のメッセージが出て止まります。CTRL-Cで中断してしまいましょう。

[root@be2 ~]# chef-server-ctl reconfigure
    :
    :
    :
  * ruby_block[check_for_drbd_mount] action run[2015-01-06T16:28:41+09:00] WARN: To install DRBD on redhat 6.5:

rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
yum install -y drbd84-utils kmod-drbd84
service drbd start

[2015-01-06T16:28:41+09:00] WARN: Please defer to your Private Chef manual for instructions on initializing the device.
[2015-01-06T16:28:41+09:00] WARN: Cannot find /var/opt/opscode/drbd/drbd_ready - please bootstrap DRBD and run 'touch /var/opt/opscode/drbd/drbd_ready'.
[2015-01-06T16:28:41+09:00] WARN: Press CTRL-C to abort.

CTRL-Cでchef-server-ctl reconfigureを中断したら、DRBDの設定を行います。

[root@be2 ~]# drbdadm create-md pc0
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
[root@be2 ~]#
[root@be2 ~]# drbdadm up pc0
[root@be2 ~]#

ここでセカンダリバックエンドから一旦離れます。

フェイルオーバーの確立

Establish Failoverの手順を追っていきます。

プライマリバックエンドで、DRBDプライマリになるように設定を行います。

[root@be1 ~]# drbdadm primary --force pc0
[root@be1 ~]#

CPU/DISKが働きはじめるので、数分待ちます。
落ち着いたら、ファイルシステムの作成を行います。

[root@be1 ~]# mkfs.ext4 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1047511 blocks
52375 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@be1 ~]#

マウントポイントを作成します。

[root@be1 ~]# mkdir -p /var/opt/opscode/drbd/data
[root@be1 ~]#

作成したファイルシステムをマウントします。

[root@be1 ~]# mount /dev/drbd0 /var/opt/opscode/drbd/data
[root@be1 ~]#

初期同期の帯域を設定します。

[root@be1 ~]# drbdadm disk-options --resync-rate=1100M pc0
[root@be1 ~]#

同期の進行状況を確認します。ds:UpToDate/UpToDateとなれば同期完了です。

[root@be1 ~]# watch -n1 cat /proc/drbd
Every 1.0s: cat /proc/drbd                              Tue Jan  6 16:37:41 2015

version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by mockbuild@Build64R6,
 2014-08-17 19:26:04
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:4322404 nr:0 dw:132360 dr:4191421 al:33 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:
f oos:0

DRBD設定が完了したことを示すファイルを作成します。

[root@be1 ~]# touch /var/opt/opscode/drbd/drbd_ready
[root@be1 ~]#

再度、Chef Serverの設定を行います。

[root@be1 ~]# chef-server-ctl reconfigure
    :
    :
    :
Chef Client finished, 475/509 resources updated in 183.818424312 seconds
opscode Reconfigured!
[root@be1 ~]#

DRBD設定を終えたので、途中で止まることなく設定が完了しました。

セカンダリバックエンドでも同じように、DRBD設定が完了したことを示すファイルを作成します。

[root@be2 ~]# touch /var/opt/opscode/drbd/drbd_ready
[root@be2 ~]#

セカンダリバックエンドでも再度、Chef Serverの設定を行います。

[root@be2 ~]# chef-server-ctl reconfigure
    :
    :
    :
Chef Client finished, 392/425 resources updated in 84.52984274 seconds
opscode Reconfigured!
[root@be2 ~]#

セカンダリバックエンドでもDRBD設定を終えたので、途中で止まることなく設定が完了しました。

これでバックエンドの設定は完了です。

フロントエンドの構築

Frontendの手順を追っていきます。

フロントエンド(fe1.example.jp)にChef Serverパッケージをインストールします。

[root@fe1 ~]# rpm -Uvh ~redhat/chef-server-core-12.0.1-1.x86_64.rpm
警告: /home/redhat/chef-server-core-12.0.1-1.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef-server-core       ########################################### [100%]
Thank you for installing Chef Server!
[root@fe1 ~]#

フロントエンド用の/etc/opscode/chef-server.rbファイルを作成する代わりに、プライマリバックエンド(be1.example.jp)の/etc/opscodeディレクトリ内の全ファイルをフロントエンド(fe1.example.jp)の/etc/opscodeディレクトリにコピーします。これはプライマリバックエンドで自動生成された証明書ファイルなどのコピーも含んでいます。

[root@fe1 ~]# scp -r root@192.168.122.111:/etc/opscode/\* /etc/opscode
The authenticity of host '192.168.122.111 (192.168.122.111)' can't be established.
RSA key fingerprint is e8:f4:11:f7:a5:80:9f:00:7c:1d:15:77:4b:f2:ef:55.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '
192.168.122.111' (RSA) to the list of known hosts.
root@192.168.122.111'
s password:
chef-server-running.json                      100%   18KB  18.2KB/s   00:00    
chef-server.rb                                100%  489     0.5KB/s   00:00    
dark_launch_features.json                     100%  381     0.4KB/s   00:00    
logrotate.conf                                100%   63     0.1KB/s   00:00    
opscode-solr4                                 100%  153     0.2KB/s   00:00    
redis_lb                                      100%  126     0.1KB/s   00:00    
nginx                                         100%  220     0.2KB/s   00:00    
pivotal.cert                                  100% 1273     1.2KB/s   00:00    
pivotal.pem                                   100% 1679     1.6KB/s   00:00    
pivotal.rb                                    100%  138     0.1KB/s   00:00    
private-chef-secrets.json                     100% 1718     1.7KB/s   00:00    
private-chef.sh                               100%  305     0.3KB/s   00:00    
webui_priv.pem                                100% 1679     1.6KB/s   00:00    
webui_pub.pem                                 100%  451     0.4KB/s   00:00    
worker-private.pem                            100% 1675     1.6KB/s   00:00    
worker-public.pem                             100%  451     0.4KB/s   00:00    
[root@fe1 ~]#

所有者などは後の設定で自動的に合わせられるので気にしなくて構いません。

[root@fe1 ~]# ls -l /etc/opscode/
合計 72
-rw-------. 1 root root 18648  1月  6 17:39 2015 chef-server-running.json
-rw-r--r--. 1 root root   489  1月  6 17:39 2015 chef-server.rb
-rw-r--r--. 1 root root   381  1月  6 17:39 2015 dark_launch_features.json
-rw-r--r--. 1 root root    63  1月  6 17:39 2015 logrotate.conf
drwxr-xr-x. 2 root root  4096  1月  6 17:39 2015 logrotate.d
-rw-r--r--. 1 root root  1273  1月  6 17:39 2015 pivotal.cert
-rw-------. 1 root root  1679  1月  6 17:39 2015 pivotal.pem
-rw-r--r--. 1 root root   138  1月  6 17:39 2015 pivotal.rb
-rw-------. 1 root root  1718  1月  6 17:39 2015 private-chef-secrets.json
-rw-r--r--. 1 root root   305  1月  6 17:39 2015 private-chef.sh
-rw-------. 1 root root  1679  1月  6 17:39 2015 webui_priv.pem
-rw-r--r--. 1 root root   451  1月  6 17:39 2015 webui_pub.pem
-rw-------. 1 root root  1675  1月  6 17:39 2015 worker-private.pem
-rw-r--r--. 1 root root   451  1月  6 17:39 2015 worker-public.pem
[root@fe1 ~]#

Chef Serverの設定を行います。

[root@fe1 ~]# chef-server-ctl reconfigure
    :
    :
    :
Chef Client finished, 226/260 resources updated in 55.392905116 seconds
opscode Reconfigured!
[root@fe1 ~]#

なお、ホスト名の設定を間違えているとConfusing error message if hostname cannot be found in configuration fileというエラーになります。一見意味がわかりづらいので注意してください。

まだWeb UIが利用できないので、コマンドラインからユーザを作成します。生成された秘密鍵は大切に保管してください。

[root@fe1 ~]# chef-server-ctl user-create d-higuchi HIGUCHI Daisuke d-higuchi@creationline.com d-higuchi --filename d-higuchi.key
the ffi-yajl and yajl-ruby gems have incompatible C libyajl libs and should not be loaded in the same Ruby VM
falling back to ffi which might work (or might not, no promises)
ffi-yajl/json_gem is deprecated, these monkeypatches will be dropped shortly
[root@fe1 ~]#

コマンドラインからOrganizationを作成し、ユーザを所属させます。生成された秘密鍵は大切に保管してください。

[root@fe1 ~]# chef-server-ctl org-create cl CREATIONLINE,INC. --association_user d-higuchi --filename cl.key
the ffi-yajl and yajl-ruby gems have incompatible C libyajl libs and should not be loaded in the same Ruby VM
falling back to ffi which might work (or might not, no promises)
ffi-yajl/json_gem is deprecated, these monkeypatches will be dropped shortly
[root@fe1 ~]#

これで、Chef Serverを利用できる環境が最低限整いました。

機能の有効化

Enable Featuresの手順を追っていきます。ここでは、Web UIアドオンのみを追加していきます。

フロントエンドにWeb UIアドオンパッケージをインストールします。ここではダウンロードしたパッケージをrpmコマンドでインストールしていますが、chef-server-ctl installコマンドを用いても構いません。

[root@fe1 ~]# rpm -Uvh ~redhat/opscode-manage-1.6.2-1.el6.x86_64.rpm
警告: /home/redhat/opscode-manage-1.6.2-1.el6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:opscode-manage         ########################################### [100%]

Thank you for installing the Chef Management Console add-on!

The next step in the process is to run:

opscode-manage-ctl reconfigure

[root@fe1 ~]#

Web UIアドオンを設定します。

[root@fe1 ~]# opscode-manage-ctl reconfigure
    :
    :
    :
Chef Client finished, 65/70 resources updated in 41.754354523 seconds
opscode-manage Reconfigured!
[root@fe1 ~]#

Chef Serverを設定します。

[root@fe1 ~]# chef-server-ctl reconfigure
    :
    :
    :
Chef Client finished, 7/233 resources updated in 3.619641582 seconds
opscode Reconfigured!
[root@fe1 ~]#

これで完成です。

まとめ

本稿では公式ドキュメントに従い、フロントエンド1台、バックエンド2台によるDRBDのHA構成のChef Serverを構築してみました。ec-metalで自動構築した内容は、このようになっていたと理解が進むかと思います。
今回は手順を追ってみただけで、本番運用できる状況と言えるものではありませんが、Chef Serverの高可用性を知る手がかりとなれば幸いです。

  • このエントリーをはてなブックマークに追加
クリエーションライン株式会社
〒101-0025
東京都千代田区神田佐久間町3-6M's WORKS BLDG 2F
TEL. 03.5829.8355