🌟

Bitnami Mattermost 7.2 VM 初期設定

2022/09/15に公開

Mattermostの最近のバージョンにはスレッド折り畳みやら、検索の改善やらいろいろ改善がされているようなのでVMをダウンロードしてインポートしたところからの初期設定手順です。

ダウンロードしたものをそのまんま使えるのがBitnamiのいいところなんですがちょっと手を入れて設定してからVMをエクスポートして、クローズド環境のほうに持っていくと運用が楽です。
なお、ここまでやってからエクスポートすると3GBを超えます。aptで取得するパッケージのダウンロードURLを張ってありますので、そちらからダウンロードして必要なものだけ移動させたほうが少量で済みます。

VMイメージのダウンロード元: https://bitnami.com/stack/mattermost/virtual-machine
利用バージョン:7.2.0-0
HyperVisor:VirtualBox

※Qiitaのほうに書いていたものをこちらに移行しています

ダウンロードするもの

あとで個別にダウンロードする必要があるもの(aptで取得されるもの)を紹介していますが、さっさと必要な依存pkgを知りたいという方むけです。一つ一つ確認したい方は飛ばしてください。

用途 パッケージ名 MD5sum
timesyncdの有効化 libdbus-1-3_1.12.20-2_amd64.deb b6e11b1c0fb15ce5b1a7ee76d815744e
libsystemd0_247.3-7+deb11u1_amd64.deb 4f03838077ea60e4d4adc2669f102e63
systemd_247.3-7+deb11u1_amd64.deb e61ed8bb621d7921db9f9538a75b4441
systemd-timesyncd_247.3-7+deb11u1_amd64.deb f591363304e9e7f44f6b6319fbc32c19
strace有効化 libunwind8_1.3.2-2_amd64.deb 926cd0a57690b60985f5d0c10f661daa
strace_5.10-1_amd64.deb e75b5e7bebf7d6458b911e44b49d4f82

とりあえずインストールしておこう、という方は以下のコマンドでインストール可能です。

sudo apt install ダウンロードしたファイルのパス

sshの設定をする

まずはsshでつなげられないといけないので、sshdの設定をします。
公式ページに設定方法が書いてあるのでその通りやります。

viでは、PermitPassword。。のところを編集して、一時的にsshで入れるようにしておきます。

sudo rm -f /etc/ssh/sshd_not_to_be_run
sudo vi /etc/ssh/sshd_config
sudo systemctl enable ssh
sudo systemctl start ssh

証明書を使ってssh接続できるようになったら、設定を戻しておきます。(記載は割愛)

Debianのアップデート

きっと新しいライブラリになっているだろう。。と思いつつ一応。

sudo apt-get update

最新のVMなら特にアップデート無し。

bitnami@debian:~$ sudo apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Get:2 http://security.debian.org buster/updates InRelease [65.4 kB]
Get:3 http://security.debian.org buster/updates/main amd64 Packages [271 kB]
Get:4 http://security.debian.org buster/updates/main Translation-en [145 kB]
Fetched 482 kB in 7s (67.6 kB/s)
Reading package lists... Done

日本語ファイルを入れる

おまじない

sudo apt-get install fonts-ipafont

インストールが終わると、以下のパスにフォントが設置されます。

ls -l /usr/share/fonts/truetype/
total 0
lrwxrwxrwx 1 root root 43 Apr  7 04:29 fonts-japanese-gothic.ttf -> /etc/alternatives/fonts-japanese-gothic.ttf
lrwxrwxrwx 1 root root 43 Apr  7 04:29 fonts-japanese-mincho.ttf -> /etc/alternatives/fonts-japanese-mincho.ttf

bash設定

llって打ったらls -lを実行してほしいので、.bashrcなども設定しておきます。

内容はお好みで。Qiita内だとこういう記事が上位っぽい。

https://qiita.com/reireias/items/d906ab086c3bc4c22147

なんかもっと書いてたような気がするけど、とりあえずこんな感じにしています。
※最後にCtrl+Cで抜ける

bitnami@debian:~$ cat > .bash_aliases
# sudo
# エイリアス値の最後の文字が 空白(半角スペース)の場合、エイリアスに続く次のコマンドワードもエイリアス拡張についてチェックされる
# これでsudoしても同じaliasが使えるようになる
alias sudo='sudo '

# mmctl
# mmctlを使いやすくするためのおまじない
alias mmctl="sudo -u mattermost mmctl --local"

# ls系
alias ls='ls --color=auto'
alias ll='ls -alF'
alias la='ls -A'
alias l='clear && ll'

# ドットの数で表現
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

# 数字で表現
alias ..2='cd ../..'
alias ..3='cd ../../..'

# apt-get
alias ag='sudo apt-get'
alias agi='sudo apt-get install'
alias agr='sudo apt-get remove'
alias agu='sudo apt-get update'

# bundle系
alias b='bundle'
alias be='bundle exec'
alias bx='bundle exec'
alias bi='bundle install'
alias bo='bundle outdated'
alias bu='bundle update'
alias rc='bundle exec rails c'

# カレントディレクトリのパスをクリップボードにコピー(cpwd, copypathなど)
alias pwdc='pwd | tr -d "\n" | pbcopy'
export HT="/opt/bitnami/apps/redmine/htdocs"

alias ctl='sudo /opt/bitnami/ctlscript.sh'
alias cdh='cd ${HT}'

function unins() {
        echo "Uninstall Redmine Plugin : ${1}  OK?(y/N)"
        read ans

        if [ "${ans}" == "y" -o "${ans}" == "Y" ] ; then
                command bundle exec rake redmine:plugins:migrate NAME=${1} VERSION=0 RAILS_ENV=production
                rm -rf /opt/bitnami/apps/redmine/htdocs/plugins/${1}
        fi
}

タイムゾーン

JSTにします。

変更前

bitnami@debian:~$ date
Sun 11 Sep 2022 05:58:06 AM UTC

localtimeを設定

sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

変更後

bitnami@debian:~$ date
Sun 11 Sep 2022 02:58:15 PM JST

時刻同期設定

Bitnamiの最近のバージョンはtimedatectlを打つと以下のメッセージが出て動かない。

bitnami@debian:~$ systemctl timedatectl
Failed to connect to bus: No such file or directory

いろいろ自分でも調べてみた結果、いかにたどり着きました。
※Bitnamiのコミュニティより  https://github.com/bitnami/vms/issues/185

どうやらdbusがない(機能しない)ことが原因のようです。
※straceで見てもdbusのところでこけているのがわかります。

sudo apt-get update
sudo apt-get install dbus
sudo systemctl enable dbus
sudo systemctl start dbus

sudo apt-get install systemd-timesyncd
sudo timedatectl set-ntp true

sudo reboot

それぞれを実行したときのログです。参考までに。

dbusインストール

sudo apt-get install dbus

libdbus-1-3_1.12.20-2_amd64.debが入ればいいようです。

bitnami@debian:/var/cache/apt/archives$ md5sum libdbus-1-3_1.12.20-2_amd64.deb
b6e11b1c0fb15ce5b1a7ee76d815744e  libdbus-1-3_1.12.20-2_amd64.deb
ログ
bitnami@debian:~$ sudo apt-get install dbus
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libdbus-1-3
Suggested packages:
  default-dbus-session-bus | dbus-session-bus
The following NEW packages will be installed:
  dbus libdbus-1-3
0 upgraded, 2 newly installed, 0 to remove and 32 not upgraded.
Need to get 458 kB of archives.
After this operation, 1,123 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.debian.org/debian bullseye/main amd64 libdbus-1-3 amd64 1.12.20-2 [219 kB]
Get:2 https://deb.debian.org/debian bullseye/main amd64 dbus amd64 1.12.20-2 [239 kB]
Fetched 458 kB in 0s (3,781 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libdbus-1-3:amd64.
(Reading database ... 26531 files and directories currently installed.)
Preparing to unpack .../libdbus-1-3_1.12.20-2_amd64.deb ...
Unpacking libdbus-1-3:amd64 (1.12.20-2) ...
Selecting previously unselected package dbus.
Preparing to unpack .../dbus_1.12.20-2_amd64.deb ...
Unpacking dbus (1.12.20-2) ...
Setting up libdbus-1-3:amd64 (1.12.20-2) ...
Setting up dbus (1.12.20-2) ...
dbus.service is a disabled or a static unit, not starting it.
dbus.socket is a disabled or a static unit, not starting it.
Processing triggers for libc-bin (2.31-13+deb11u3) ...

dbus有効化

sudo systemctl enable dbus
ログ

なんか文字がいっぱい出るけど気にしない。

bitnami@debian:~$ sudo systemctl enable dbus
Synchronizing state of dbus.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable dbus
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.

Possible reasons for having this kind of units are:
~ A unit may be statically enabled by being symlinked from another unit's
  .wants/ or .requires/ directory.
~ A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
~ A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
~ In case of template units, the unit is meant to be enabled with some
  instance name specified.

dbus起動

sudo systemctl start dbus
ログ

特に何も出ません。

bitnami@debian:~$ sudo systemctl start dbus
bitnami@debian:~$

起動確認

dbusさえ動くようになっていれば、timedatectlを実行したときのエラーは解消されます。

bitnami@debian:$ timedatectl
               Local time: Sun 2022-09-11 15:13:04 JST
           Universal time: Sun 2022-09-11 06:13:04 UTC
                 RTC time: Sun 2022-09-11 06:13:04
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

しかし、NTPを起動しようとするとエラーになってしまいます。

bitnami@debian:~$ sudo timedatectl set-ntp true
Failed to set ntp: NTP not supported

timedatectlのインストール

そこで、systemd-timesyncdをインストールします。

sudo apt-get install systemd-timesyncd

追加されるのは以下の3つ

bitnami@debian:/var/cache/apt/archives$ md5sum *.deb
4f03838077ea60e4d4adc2669f102e63  libsystemd0_247.3-7+deb11u1_amd64.deb
e61ed8bb621d7921db9f9538a75b4441  systemd_247.3-7+deb11u1_amd64.deb
f591363304e9e7f44f6b6319fbc32c19  systemd-timesyncd_247.3-7+deb11u1_amd64.deb

ダウンロード元は以下になります。
libsystemd0_247.3-7+deb11u1_amd64.deb
systemd_247.3-7+deb11u1_amd64.deb
systemd-timesyncd_247.3-7+deb11u1_amd64.deb

ログ

インストールログは以下の通りです。

bitnami@debian:~$ sudo apt-get install systemd-timesyncd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libsystemd0 systemd
Suggested packages:
  systemd-container policykit-1
The following NEW packages will be installed:
  systemd-timesyncd
The following packages will be upgraded:
  libsystemd0 systemd
2 upgraded, 1 newly installed, 0 to remove and 30 not upgraded.
Need to get 5,008 kB of archives.
After this operation, 212 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.debian.org/debian bullseye/main amd64 systemd amd64 247.3-7+deb11u1 [4,501 kB]
Get:2 https://deb.debian.org/debian bullseye/main amd64 libsystemd0 amd64 247.3-7+deb11u1 [376 kB]
Get:3 https://deb.debian.org/debian bullseye/main amd64 systemd-timesyncd amd64 247.3-7+deb11u1 [131 kB]
Fetched 5,008 kB in 0s (13.6 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 26582 files and directories currently installed.)
Preparing to unpack .../systemd_247.3-7+deb11u1_amd64.deb ...
Unpacking systemd (247.3-7+deb11u1) over (247.3-7) ...
Preparing to unpack .../libsystemd0_247.3-7+deb11u1_amd64.deb ...
Unpacking libsystemd0:amd64 (247.3-7+deb11u1) over (247.3-7) ...
Setting up libsystemd0:amd64 (247.3-7+deb11u1) ...
Selecting previously unselected package systemd-timesyncd.
(Reading database ... 26582 files and directories currently installed.)
Preparing to unpack .../systemd-timesyncd_247.3-7+deb11u1_amd64.deb ...
Unpacking systemd-timesyncd (247.3-7+deb11u1) ...
Setting up systemd (247.3-7+deb11u1) ...
Setting up systemd-timesyncd (247.3-7+deb11u1) ...
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /lib/systemd/system/systemd-timesyncd.service.
Processing triggers for dbus (1.12.20-2) ...
Processing triggers for libc-bin (2.31-13+deb11u3) ...

ntp起動

sudo timedatectl set-ntp true
ログ

何も出ません。

bitnami@debian:~$ sudo timedatectl set-ntp true
bitnami@debian:~$

リブート

sudo reboot

確認

無事に動くようになりました。

bitnami@debian:~$ timedatectl
               Local time: Sun 2022-09-11 06:23:07 JST
           Universal time: Sat 2022-09-10 21:23:07 UTC
                 RTC time: Sat 2022-09-10 21:23:00
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

同期先設定

sudo vi /etc/systemd/timesyncd.conf

以下の一か所だけ修正します。

NTP=

例えばこんな感じ。実際の環境に合わせて設定してください。

NTP=ntp.nict.jp

同期設定反映

systemctl を使ってtimesyncdを再起動します。

変更前

同期先が(2.debian.pool.ntp.org)になっています。

ログ
bitnami@debian:~$ sudo systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-11 06:21:10 JST; 8min ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 243 (systemd-timesyn)
     Status: "Initial synchronization to time server 185.170.216.123:123 (2.debian.pool.ntp.org)."
      Tasks: 2 (limit: 4678)
     Memory: 1.8M
        CPU: 50ms
     CGroup: /system.slice/systemd-timesyncd.service
             mq243 /lib/systemd/systemd-timesyncd

Sep 11 06:21:10 debian systemd[1]: Starting Network Time Synchronization...
Sep 11 06:21:10 debian systemd[1]: Started Network Time Synchronization.
Sep 11 06:21:12 debian systemd-timesyncd[243]: Network configuration changed, trying to establish connection.
Sep 11 06:21:12 debian systemd-timesyncd[243]: Network configuration changed, trying to establish connection.
Sep 11 06:21:13 debian systemd-timesyncd[243]: Network configuration changed, trying to establish connection.
Sep 11 06:21:44 debian systemd-timesyncd[243]: Initial synchronization to time server 185.170.216.123:123 (
再起動
bitnami@debian:~$ sudo systemctl restart systemd-timesyncd.service
bitnami@debian:~$
再起動後

同期先が (ntp.nict.jp).に代わりました。

ログ
bitnami@debian:~$  sudo systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-11 06:30:00 JST; 3s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 1297 (systemd-timesyn)
     Status: "Initial synchronization to time server 133.243.238.164:123 (ntp.nict.jp)."
      Tasks: 2 (limit: 4678)
     Memory: 996.0K
        CPU: 44ms
     CGroup: /system.slice/systemd-timesyncd.service
             mq1297 /lib/systemd/systemd-timesyncd

Sep 11 06:30:00 debian systemd[1]: Starting Network Time Synchronization...
Sep 11 06:30:00 debian systemd[1]: Started Network Time Synchronization.
Sep 11 06:30:00 debian systemd-timesyncd[1297]: Initial synchronization to time server 133.243.238.164:123 (ntp.nict.jp).
bitnami@debian:~$

straceインストール

timesyncdの件で調べたときにお世話になったのがstrace。
BitnamiのVMには入っていないので入れておきます。

sudo apt-get install strace

md5sum

bitnami@debian:/var/cache/apt/archives$ md5sum *.deb
926cd0a57690b60985f5d0c10f661daa  libunwind8_1.3.2-2_amd64.deb
e75b5e7bebf7d6458b911e44b49d4f82  strace_5.10-1_amd64.deb

libunwind8_1.3.2-2_amd64.deb
strace_5.10-1_amd64.deb

ログ
bitnami@debian:~$ sudo apt-get install strace
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libunwind8
The following NEW packages will be installed:
  libunwind8 strace
0 upgraded, 2 newly installed, 0 to remove and 30 not upgraded.
Need to get 1,139 kB of archives.
After this operation, 2,625 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.debian.org/debian bullseye/main amd64 libunwind8 amd64 1.3.2-2 [54.5 kB]
Get:2 https://deb.debian.org/debian bullseye/main amd64 strace amd64 5.10-1 [1,084 kB]
Fetched 1,139 kB in 0s (5,876 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libunwind8:amd64.
(Reading database ... 26597 files and directories currently installed.)
Preparing to unpack .../libunwind8_1.3.2-2_amd64.deb ...
Unpacking libunwind8:amd64 (1.3.2-2) ...
Selecting previously unselected package strace.
Preparing to unpack .../strace_5.10-1_amd64.deb ...
Unpacking strace (5.10-1) ...
Setting up libunwind8:amd64 (1.3.2-2) ...
Setting up strace (5.10-1) ...
Processing triggers for libc-bin (2.31-13+deb11u3) ...
おまけ:使い方の例

ログファイルを出力させて、その内容から判断します。
sleep でやるならこんな感じ。

bitnami@debian:~$ strace -o /tmp/sleep.log sleep 1
bitnami@debian:~$ cat /tmp/sleep.log
execve("/usr/bin/sleep", ["sleep", "1"], 0x7ffca9926118 /* 24 vars */) = 0
brk(NULL)                               = 0x55e295e9e000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=21055, ...}) = 0
mmap(NULL, 21055, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fdbe2217000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@n\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1839792, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdbe2215000
mmap(NULL, 1852680, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fdbe2050000
mprotect(0x7fdbe2075000, 1662976, PROT_NONE) = 0
mmap(0x7fdbe2075000, 1355776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7fdbe2075000
mmap(0x7fdbe21c0000, 303104, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x170000) = 0x7fdbe21c0000
mmap(0x7fdbe220b000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ba000) = 0x7fdbe220b000
mmap(0x7fdbe2211000, 13576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fdbe2211000
close(3)                                = 0
arch_prctl(ARCH_SET_FS, 0x7fdbe2216580) = 0
mprotect(0x7fdbe220b000, 12288, PROT_READ) = 0
mprotect(0x55e294f37000, 4096, PROT_READ) = 0
mprotect(0x7fdbe2247000, 4096, PROT_READ) = 0
munmap(0x7fdbe2217000, 21055)           = 0
brk(NULL)                               = 0x55e295e9e000
brk(0x55e295ebf000)                     = 0x55e295ebf000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3041456, ...}) = 0
mmap(NULL, 3041456, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fdbe1d69000
close(3)                                = 0
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=1, tv_nsec=0}, 0x7ffc4bffc7a0) = 0
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Discussion