管理するクライアントが多い場合のHow To

投稿者: | 2016年3月15日

clientの設定が多いと大変

バックアップ対象のクライアントが多いと、bacula-dir.confにすべて設定し、運用していくのは大変です。
Baculaはbacula-dir.conf内に直接記述する方法以外に、 外部に設定を記述したファイルを置き、「@外部ファイルのパス」を設定することで、読み込み実行することができます。
※作成した外部ファイルはbacula-dir.confと同じ所有者、読み書きの権限を与えてください。異なる所有者権限を与えると正しく動作しない可能性があります。

次の例では、「北海道」「東京」「大阪」に拠点があるclientの設定をそれぞれ外部ファイルに作成し、bacula-dir.confに外部読み出しの設定を行っています。

方法

1. 外部ファイルの作成

管理しやすいディレクトリに作成します。
ここでは、bacula-dir.confと同一のディレクトリ下に外部ファイルを作成しています。
bacula-dir.confにあるものを参考に、設定します。

# ls -1
bacula-dir.conf
bacula-fd.conf
bacula-sd.conf
bconsole.conf
client-hokkaido-side    <---拠点:北海道のclient設定
client-osaka-side       <---拠点:大阪のclient設定
client-tokyo-side       <---拠点:東京のclient設定
設定例:client-hokkaido-side

# Hokkaidou
Client {
  Name = h123456-fd
  Address = 192.168.123.5
  FDPort = 9102
  Catalog = MyCatalog
  Password = "ray8/aI7nZaY3lUfZBOp0txBd4ecEsUAtELvz2ddXW4U"          # password for FileDaemon
  File Retention = 60 days            # 60 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = h123457-fd
  Address = 192.168.123.6
  FDPort = 9102
  Catalog = MyCatalog
  Password = "tay8/aa7nZfY3rUfZtyp0txBdrecCsFAtOkvzhhndX54"          # password for FileDaemon
  File Retention = 60 days            # 60 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

2. bacula-dir.confへの設定

bacula-dir.confの任意の場所に読み込む外部ファイルの絶対パスを指定します。 パスの先頭には「@」をつけます。


@/opt/bacula/etc/client-hokkaido-side
@/opt/bacula/etc/client-tokyo-side
@/opt/bacula/etc/client-osaka-side

3. bacula-dirの再起動

再起動し、設定を再読み込みします。

パスのタイポなどで外部読み込みに失敗すると、下記のようなエラーが表示されます。


# service bacula-dir start
Starting Bacula Director services: 15- 3月 15:23 bacula-dir: ERROR TERMINATION at lex.c:654
Config error: Cannot open included config file client-hokkaido-side: そのようなファイルやディレクトリはありません

            : line 178, col 22 of file /opt/bacula/etc/bacula-dir.conf
@client-hokkaido-side

                                                           [失敗]

4. 確認

bconsoleで、外部ファイルに設定したclient設定が認識されているか確認します。
上述の外部ファイルのclient名「h123456-fd」と「h123457-fd」が表示されているので、正常に認識されています。


# /opt/bacula/bin/bconsole 
Connecting to Director hawaii:9101
1000 OK: 1 hawaii-dir Version: 6.6.3 (09 December 2013)
Enter a period to cancel a command.
*status
Status available for:
     1: Director
     2: Storage
     3: Client
     4: All
Select daemon type for status (1-4): 3
The defined Client resources are:
     1: hawaii-fd
     2: h123456-fd
     3: h123457-fd
     4: t123456-fd
     5: t123457-fd
     6: o123456-fd
     7: o123457-fd
Select Client (File daemon) resource (1-7): 
(以下略)