連載
» 2017年04月17日 05時00分 UPDATE

DRBDの仕組みを学ぶ(16):DRBD 9環境の構築をAnsibleでサクッと自動化する (1/3)

DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、DRBDの最新版「DRBD 9」環境をOSSの環境構築自動化ツール「Ansible」を使って簡単に構築する方法をお届けします。

[澤田健,@IT]

連載バックナンバー

 本連載は、サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD(Distributed Replicated Block Device)」を使い、災害対策システム高可用性WordPressシステムなどを構築するノウハウをお届けしています。

 前回は、標準的なDRBD 9環境を構築する手順を紹介しました。ごくシンプルな構成ではありますが、手作業の工程が多く、少し面倒だったかもしれません。そこで今回は、OSS(オープンソースソフトウェア)の環境構築ツールである「Ansible」を使って、“もっと楽”にDRBD 9環境を構築する手段を紹介します。

「Ansible」は何ができるのか 詳しくはこちらご覧ください


AnsibleでDRBD 9環境を構築する

 構築する構成は前回と同じです(図1)。本稿では、原稿執筆時点での最新版であるDRBD 9.0.6を用いて解説します。

photo 図1 構築するDRBD 9環境の構成イメージ

 図1では、「r0」と「r1」という名称のリソースを2つ作成して、計3台のサーバでデータをリアルタイム同期する構成です。「drbdctl」は、DRBD Manageの管理情報を保存するためのボリューム名となります。

事前準備

 事前準備として、前回解説した「インストール準備とディスクの追加」と「パーティション作成」の工程までを済ませてください。

 なお本稿では、操作するユーザーを一般ユーザーであると想定し、一般ユーザー名を「ksawada」として説明します。こちらは、お使いのシステムや普段使うユーザー名に応じて、適宜読み替えてください。

Ansibleのインストール

 一号機にAnsibleをインストールします。

$ sudo apt-get install ansible
一号機に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
3台のサーバと鍵交換を行う

 「Are you sure you want to continue connecting (yes/no)?」と聞かれるので、「yes」を入力し、サーバにログインするためのパスワードをそれぞれ入力してください。

「/etc/sudoers」ファイルに設定を追記

 今回は一般ユーザーで実行することを前提に環境を構築しています。しかし中には、管理者権限でなければ実行できないコマンドもあります。その際には「sudo」コマンドで一時的に管理者権限を付与して実行するのですが、Ansibleを実行する上ではエラーとなってしまうことがあります。

 そのようなエラーを回避するために、「/etc/sudoers」ファイルへ一般ユーザーでパスワードなしでsudoを使えるように設定を変更します。こちらは、セキュリティ上好ましい設定ではないので、構築とテストまでの一時的な設定としてください。

 viエディタなどで、「/etc/sudoers」の最終行に以下の内容を追記します。

$ sudo vi /etc/sudoers
 
<省略>
 
ksawada ALL=NOPASSWD: ALL
一時的に設定を追記

 これで、Ansibleインストールと準備は完了です。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。