お金をかけずにサーバーの勉強をしよう

Baculaで Ubuntu Serverのバックアップ(その2)

2023年5月13日

メニューへ戻る

Baculaの WebGUIを提供する Bucularisを導入します。

Baculaで Ubuntu Serverのバックアップ(その1)」で Baculaのインストールをしました。

ここでは、Baculaのセッティングを Webベースでできる Baculumをインストールします。

インストール方法について書いてあるドキュメントを探してみましたが、多分これかと思います。
Bacula® Console and Operators Guide

このドキュメントの [Chapter 2 Baculum API and Web GUI Tools]という章にかかれているのがそれかと。
更にこの章の中の [2.6 Installation Baculum API from deb binary packages]という段落からが Ubuntuでのインストールが書いてある箇所です。

これに従ってインストールしていきたかったのですが、2023年5月13日時点ではまだ Ubuntu 22.04に対応してないようで、ダウンロードサイトに「jammy」のディレクトリがありませんでした。

というわけで、緊急避難的に Baculumのフォークである Bacularisというのをインストールしようと思います。

Bacularisの本家サイトはこちら。
Bacularis

どういう出自のものなのかと思えば、上記のリンク先のトップページの一番下にある「About」にこう書いてありました。

Bacularis is a friendly fork of Baculum founded by Baculum's creator. It has been created to provide the Bacula web interface in easy way, with simple installation and configuration. Changes between Baculum and Bacularis are synchronized in both ways as much as it is possible.

「フレンドリーフォーク」の定義がよく分かりませんが、Baculumに似せてはいるようです。
ライセンスは AGPLv3ということなので、無償で使えそうです。

Bacula謹製ツールではないので業務の本番環境で使うにちょっと難ありな気もしますが仕方ありません、ここは泣きましょう。

Bacularisの Ubuntu 22.04へのインストールについては、マニュアルのうち以下の箇所に書いてありました。
Ubuntu 22.04 Jammy

これに従ってインストールしていきます。

Bacularisの aptリポジトリの GPGキー(出所を証明する)を取得します。
(この辺りから Baculumのインストール方法に似せているのが分かる)

subro@UbuntuServer2204-2:~$ sudo bash -c "wget -qO- https://pkgs.bacularis.app/bacularis.pub | gpg --dearmor > /usr/share/keyrings/bacularis-archive-keyring.gpg"

sudoコマンドで複数のコマンドを実行する場合はこのようにするとできますよ。
ダウンロードして登録もできました。

Baculumの aptリポジトリを aptの検索対象に加えます。
以下のファイルを作ります。
[/etc/apt/sources.list.d/bacularis.list]

deb [arch=amd64 signed-by=/usr/share/keyrings/bacularis-archive-keyring.gpg] https://pkgs.bacularis.app/stable/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/bacularis-archive-keyring.gpg] https://pkgs.bacularis.app/stable/ubuntu jammy main

aptリポジトリのデータベースをアップデートして今回追加した Bacularisのリポジトリの情報を取得します。

subro@UbuntuServer2204-2:~$ sudo apt update
ヒット:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu jammy-backports InRelease
ヒット:4 http://jp.archive.ubuntu.com/ubuntu jammy-security InRelease
ヒット:5 http://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease
無視:6 https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy InRelease
ヒット:7 https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2 jammy Release
取得:9 https://pkgs.bacularis.app/stable/ubuntu jammy InRelease [2,105 B]
取得:10 https://pkgs.bacularis.app/stable/ubuntu jammy/main Sources [534 B]
取得:11 https://pkgs.bacularis.app/stable/ubuntu jammy/main amd64 Packages [1,020 B]
3,659 B を 3秒 で取得しました (1,153 B/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
W: https://www.bacula.org/packages/5f1e8eefd1016/debs/13.0.2/dists/jammy/Release.gpg: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

有効になっていますね。

Webサーバーに何を使うかで手順が分かれますが、NGINXでやります。

subro@UbuntuServer2204-2:~$ sudo apt install bacularis bacularis-nginx
〜〜〜 省略 〜〜〜

インストールされたパッケージを見るに、PHP8.1が使われているようです。

Bacularisの NGINX用設定ファイルを NGINXに読み込ませるため、シンボリックリンクを作ります。

subro@UbuntuServer2204-2:~$ sudo ln -s /etc/nginx/sites-available/bacularis.conf /etc/nginx/sites-enabled/

NGINXを再起動して Bacularisの設定を有効にします。

subro@UbuntuServer2204-2:~$ sudo systemctl restart nginx

何も出ませんけど、上手くいっているはず。


Bacularisの使い方、というか設定はマニュアルのここから。
Configuring Bacularis

9097/tcpで待ち受けているようなので、WEBブラウザでアクセスしてみます。
我が家の環境では [http://UbuntuServer2204-2:9097]になります。

ログインが必要なようです。
初期は[admin/admin]になっています。
Bacularis 1

「言語設定があるじゃん!」と喜んだのも束の間、日本語は無いのでした。
(韓国語はあった…)
Nextを押します。
Bacularis 2

Baculaのカタログ情報(バックアップしたものの情報)を入れるデータベースの設定です。
デフォルト値は Baculaのインストールにより作られたものに沿っていますので、それに従っています。
[PostgreSQL]にアクセスする[bacula]ユーザーのパスワードは、Baculaのインストールの過程で指定したパスワードを入れました。
testを押して [OK]なら、Nextを押します。
Bacularis 3

次の画面は、Baculaの bconsoleコマンドを Webで利用できるようにする設定のようですが、セキュリティ的にはちょっと危ない気がします。
一応サーバー立ち上げのお勉強のためなので有効にしますが、実際に利用する時は注意したほうが良さそうです。

デフォルト設定のままではテストで弾かれてしまいました。
ここの環境ではいくつか設定をしました。

Bacularis(NGINX+PHP)を実行している [www-data]ユーザーが [bconsole]コマンドを実行できるようにします。
sudoコマンドを使って、[/etc/sudoers.d/bacularis-api]ファイルを以下の通り作りました。

Defaults:www-data !requiretty
www-data ALL = (root) NOPASSWD: /usr/bin/bconsole

画面では、Ubuntu 22.04の環境にインストールした Baculaのファイルの位置に合わせて以下の通り変更しています。
[Bconsole binary file path:] : /usr/bin/bconsole
[Bconsole admin config file path:] : /opt/bacula/etc/bconsole.conf

これでtestを押して [OK]なら、Nextを押します。
Bacularis 4

次の画面は Baculaの設定を Webでできるようにする設定のようですが、これもテストで弾かれますので先程作った [/etc/sudoers.d/bacularis-api]ファイルに以下を追加しました。

www-data ALL = (root) NOPASSWD: /opt/bacula/bin/bdirjson
www-data ALL = (root) NOPASSWD: /opt/bacula/bin/bsdjson
www-data ALL = (root) NOPASSWD: /opt/bacula/bin/bfdjson
www-data ALL = (root) NOPASSWD: /opt/bacula/bin/bbconsjson

[Get pre-defined paths:]は Ubuntu 22.04の Baculaに合わせて
[Binaries: /opt/bacula/bin, Configs〜]を選択しています。
これでTest configurationを押して [OK]なら、Nextを押します。
Bacularis 5

WebAPIの認証をどうするかの画面です。
BASIC認証にして、[admin/admin]で設定しておきました。
Nextを押します。
Bacularis 6

ここまでの設定の確認画面です。
良ければSaveを押します。
Bacularis 7

ログイン画面になりました。
とりあえず[admin/admin]でログインします。
Bacularis 8

中々カッコイイダッシュボードが出てきました。
Bacularis 9

私の好みのダークモードにします。
Bacularis 10

次にUIを日本語にします。
画面左上のハンバーガーメニューを開いて、歯車マークのアイコンをクリックします。
Bacularis 11

[Language:]に [Japanese]を選択し、Saveを押します。
Bacularis 12

WebGUIのインストールができましたので今回はこれで終わりにして、「Baculaで Ubuntu Serverのバックアップ(その3)」に続きます。