DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、DRBDの最新版「DRBD 9」環境をOSSの環境構築自動化ツール「Ansible」を使って簡単に構築する方法をお届けします。
本連載は、サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD(Distributed Replicated Block Device)」を使い、災害対策システムや高可用性WordPressシステムなどを構築するノウハウをお届けしています。
前回は、標準的なDRBD 9環境を構築する手順を紹介しました。ごくシンプルな構成ではありますが、手作業の工程が多く、少し面倒だったかもしれません。そこで今回は、OSS(オープンソースソフトウェア)の環境構築ツールである「Ansible」を使って、“もっと楽”にDRBD 9環境を構築する手段を紹介します。
構築する構成は前回と同じです(図1)。本稿では、原稿執筆時点での最新版であるDRBD 9.0.6を用いて解説します。
図1では、「r0」と「r1」という名称のリソースを2つ作成して、計3台のサーバでデータをリアルタイム同期する構成です。「drbdctl」は、DRBD Manageの管理情報を保存するためのボリューム名となります。
事前準備として、前回解説した「インストール準備とディスクの追加」と「パーティション作成」の工程までを済ませてください。
なお本稿では、操作するユーザーを一般ユーザーであると想定し、一般ユーザー名を「ksawada」として説明します。こちらは、お使いのシステムや普段使うユーザー名に応じて、適宜読み替えてください。
一号機にAnsibleをインストールします。
$ sudo apt-get install ansible
Ansibleは、特に最新版である必要はありません。ここではリポジトリなどは追加せずにインストールする方法で構いません。
Ansibleを実行するには、「Ansibleを実行するサーバ(一号機)」と「対象サーバ(一号機、二号機、三号機)」で暗号化の鍵交換が済んでいることが条件となります。
まず、一号機で公開鍵を作成をします。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/ksawada/.ssh/id_rsa): Created directory '/home/ksawada/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ksawada/.ssh/id_rsa. Your public key has been saved in/home/ksawada/id_rsa.pub. The key fingerprint is: 1d:b1:e3:e1:33:dc:eb:62:9c:bb:dd:41:45:b4:3e:bc ksawada@DRBD 9-1 The key's randomart image is: +--[ RSA 2048]----+ | . .o| | o ..| | = ..| | = = o. | | S B . .+ | | o o o| | . .. .E | | =o . . | | .o+o . | | | | | +-----------------+ #
ウィザードは全て標準設定のまま、Enterキーで進めて大丈夫です。
続いて、一号機、二号機、三号機と鍵交換をします。一号機で以下のコマンドを実行します。
$ ssh-copy-id -i .ssh/id_rsa.pub 192.168.0.101 $ ssh-copy-id -i .ssh/id_rsa.pub 192.168.0.102 $ ssh-copy-id -i .ssh/id_rsa.pub 192.168.0.103
「Are you sure you want to continue connecting (yes/no)?」と聞かれるので、「yes」を入力し、サーバにログインするためのパスワードをそれぞれ入力してください。
今回は一般ユーザーで実行することを前提に環境を構築しています。しかし中には、管理者権限でなければ実行できないコマンドもあります。その際には「sudo」コマンドで一時的に管理者権限を付与して実行するのですが、Ansibleを実行する上ではエラーとなってしまうことがあります。
そのようなエラーを回避するために、「/etc/sudoers」ファイルへ一般ユーザーでパスワードなしでsudoを使えるように設定を変更します。こちらは、セキュリティ上好ましい設定ではないので、構築とテストまでの一時的な設定としてください。
viエディタなどで、「/etc/sudoers」の最終行に以下の内容を追記します。
$ sudo vi /etc/sudoers <省略> ksawada ALL=NOPASSWD: ALL
これで、Ansibleインストールと準備は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.