Bitnami Mattermost 7.2 VM 初期設定
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内だとこういう記事が上位っぽい。
なんかもっと書いてたような気がするけど、とりあえずこんな感じにしています。
※最後に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