fbpx

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

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

以前、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の高可用性を知る手がかりとなれば幸いです。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA