変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

インターネット

[podman]AlmaLinux9+mariaDB

podmanでAlmaLinux9のイメージに

普通にmariaDBをインストする手順でDockerfileを作ってみる。

起動コマンドはsystemctlを使う都合上systemdが起動しないといけないので、”/sbin/init”になる。

どういう訳かコンテナ作成時に”/sbin/init”を指定してもダメなので、Dockerfileで指定する。

FROM  almalinux:latest
RUN   dnf -y update
RUN   dnf -y install mariadb mariadb-server
COPY  carset.cnf /etc/my.cnf.d/charset.cnf
RUN   systemctl enable mariadb
RUN   dnf clean all;
# 
EXPOSE 3306
CMD [ "/sbin/init" ]

How to run systemd in a containerでググってみると

–systemd=trueオプションで/sbin/initが使えるハズだけど、今はデフォになっていて、

DocerfileのCMDが systemd または init の場合に ※コンテナのCMDの場合は除外っぽい

  • /run
  • /run/lock
  • /tmp
  • /sys/fs/cgroup/systemd
  • /var/lib/journal

にtmpfs マウント ポイントを設定し、デフォルトの停止信号も SIGRTMIN+3 に変える様でSELinuxが有効な場合はホスト側でcgroupアクセス許可が必須になるから、ホスト側とコンテナ側で同じサービスが動いてる場合はマルチインスタンス風に設定した方がいいかもしれない。

# setsebool -P container_manage_cgroup true

コピー元のデータベースのキャラセットの設定ファイルを作る

[mysqld]
character-set-server = utf8mb4

[client]
default-character-set = utf8mb4

でイメージを作ってみる。

# podman build -t almalinux9_mariadb .
STEP 1/8: FROM almalinux:latest
STEP 2/8: RUN   dnf -y update
AlmaLinux 9 - AppStream                         5.4 MB/s |  15 MB     00:02    
AlmaLinux 9 - BaseOS                            2.8 MB/s |  17 MB     00:06    
AlmaLinux 9 - Extras                             12 kB/s |  13 kB     00:01    
Dependencies resolved.
・・・
Upgraded:
  glibc-2.34-125.el9_5.3.alma.1.x86_64                                          
  glibc-common-2.34-125.el9_5.3.alma.1.x86_64                                   
  glibc-minimal-langpack-2.34-125.el9_5.3.alma.1.x86_64                         
  libxml2-2.9.13-6.el9_5.2.x86_64                                               
  systemd-252-46.el9_5.3.alma.1.x86_64                                          
  systemd-libs-252-46.el9_5.3.alma.1.x86_64                                     
  systemd-pam-252-46.el9_5.3.alma.1.x86_64                                      
  systemd-rpm-macros-252-46.el9_5.3.alma.1.noarch                               
  tzdata-2025b-1.el9.noarch                                                     

Complete!
--> a2b577abfca6
STEP 3/8: RUN   dnf -y install mariadb mariadb-server
Last metadata expiration check: 0:00:19 ago on Wed Apr  2 17:57:08 2025.
Dependencies resolved.
・・・
Installed:
・・・
  mariadb-3:10.5.27-1.el9_5.x86_64                                              
  mariadb-backup-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-common-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-connector-c-3.2.6-1.el9_0.x86_64                                      
  mariadb-connector-c-config-3.2.6-1.el9_0.noarch                               
  mariadb-errmsg-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64                                
  mariadb-server-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-server-utils-3:10.5.27-1.el9_5.x86_64                                 
  mysql-selinux-1.0.13-1.el9_5.noarch                                           
・・・
Complete!
--> daf71bdc14ab
STEP 4/8: COPY  carset.cnf /etc/my.cnf.d/charset.cnf
--> a96ac4f1bfb3
STEP 5/8: RUN   systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
--> 50f6b0d16b83
STEP 6/8: RUN   dnf clean all;
26 files removed
--> 4aa9969087df
STEP 7/8: EXPOSE 3306
--> ac9094cd3dad
STEP 8/8: CMD [ "/sbin/init" ]
COMMIT almalinux9_mariadb
--> 7a06b67a56a2
Successfully tagged localhost/almalinux9_mariadb:latest
7a06b67a56a2ff8c30a436a53a64735ff9f04780b1c4649c06584f5d99327929
# STEP 1/8: FROM almalinux:latest
STEP 2/8: RUN   dnf -y update
AlmaLinux 9 - AppStream                         5.4 MB/s |  15 MB     00:02    
AlmaLinux 9 - BaseOS                            2.8 MB/s |  17 MB     00:06    
AlmaLinux 9 - Extras                             12 kB/s |  13 kB     00:01    
Dependencies resolved.
・・・
Upgraded:
  glibc-2.34-125.el9_5.3.alma.1.x86_64                                          
  glibc-common-2.34-125.el9_5.3.alma.1.x86_64                                   
  glibc-minimal-langpack-2.34-125.el9_5.3.alma.1.x86_64                         
  libxml2-2.9.13-6.el9_5.2.x86_64                                               
  systemd-252-46.el9_5.3.alma.1.x86_64                                          
  systemd-libs-252-46.el9_5.3.alma.1.x86_64                                     
  systemd-pam-252-46.el9_5.3.alma.1.x86_64                                      
  systemd-rpm-macros-252-46.el9_5.3.alma.1.noarch                               
  tzdata-2025b-1.el9.noarch                                                     

Complete!
--> a2b577abfca6
STEP 3/8: RUN   dnf -y install mariadb mariadb-server
Last metadata expiration check: 0:00:19 ago on Wed Apr  2 17:57:08 2025.
Dependencies resolved.
・・・
Installed:
・・・
  mariadb-3:10.5.27-1.el9_5.x86_64                                              
  mariadb-backup-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-common-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-connector-c-3.2.6-1.el9_0.x86_64                                      
  mariadb-connector-c-config-3.2.6-1.el9_0.noarch                               
  mariadb-errmsg-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64                                
  mariadb-server-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-server-utils-3:10.5.27-1.el9_5.x86_64                                 
  mysql-selinux-1.0.13-1.el9_5.noarch                                           
・・・
Complete!
--> daf71bdc14ab
STEP 4/8: COPY  carset.cnf /etc/my.cnf.d/charset.cnf
--> a96ac4f1bfb3
STEP 5/8: RUN   systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
--> 50f6b0d16b83
STEP 6/8: RUN   dnf clean all;
26 files removed
--> 4aa9969087df
STEP 7/8: EXPOSE 3306
--> ac9094cd3dad
STEP 8/8: CMD [ "/sbin/init" ]
COMMIT almalinux9_mariadb
--> 7a06b67a56a2
Successfully tagged localhost/almalinux9_mariadb:latest
7a06b67a56a2ff8c30a436a53a64735ff9f04780b1c4649c06584f5d99327929

無事出来上がったのでコンテナを作って起動してみる

# podman run -d -it --name almalinux9_mariadb_contener \
 -p 3306:3306 \
 -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 \
 -v '{データベース保存ディレクトリィ※事前作成済}:/var/lib/mysql' \
 almalinux9_mariadb
900c3b58d5e7147e888f03674392df4fd6293de21d8c45a36e9ccda7c89fa50a

ログを見ると ※動作環境に依存

[FAILED] Failed to start MariaDB 10.5 database server.

See 'systemctl status mariadb.service' for details.

不穏な雰囲気が・・・

# podman exec almalinux9_mariadb_contener systemctl status mariadb.service
# mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Wed 2025-04-02 16:46:32 UTC; 2min 7s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 23 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 46 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=1/FAILURE)
        CPU: 349ms

Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[112]: chown: changing ownership of '/var/lib/mysql': Operation not permitted
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[87]: Cannot change ownership of the database directories to the 'mysql'
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[87]: user.  Check that you have the necessary permissions and try again.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Initialization of MariaDB database failed.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Perhaps /etc/my.cnf is misconfigured or there is some problem with permissions of /var/lib/mysql.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Initialization of MariaDB database was not finished successfully.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Files created so far will be removed.
Apr 02 16:46:32 90b2f5aeb4b0 systemd[1]: mariadb.service: Control process exited, code=exited, status=1/FAILURE
Apr 02 16:46:32 90b2f5aeb4b0 systemd[1]: mariadb.service: Failed with result 'exit-code'.
Apr 02 16:46:32 90b2f5aeb4b0 systemd[1]: Failed to start MariaDB 10.5 database server.

MariaDB が起動しない場合の対処方法 でググってみると、

ディレクトリィのオーナが気に入らないダケみたいなのでchown -R mysql:mysqlで丸ごと更新。

# podman exec almalinux9_mariadb_contener chown -R mysql:mysql /var/lib/mysql
# podman exec almalinux9_mariadb_contener systemctl start mariadb
# podman exec almalinux9_mariadb_contener systemctl status mariadb.service
● mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-04-02 16:51:09 UTC; 18s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 120 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 142 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS)
    Process: 251 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCESS)
   Main PID: 230 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 20 (limit: 1638)
     Memory: 75.5M
        CPU: 1.081s
     CGroup: /system.slice/mariadb.service
             └─230 /usr/libexec/mariadbd --basedir=/usr

Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: The second is mysql@localhost, it has no password either, but
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: you need to be the system 'mysql' user to connect.
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: After connecting you can set the password, if you would need to be
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: able to connect as any of these users with a password and without sudo
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: See the MariaDB Knowledgebase at https://mariadb.com/kb
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: Please report any problems at https://mariadb.org/jira
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: The latest information about MariaDB is available at https://mariadb.org/.
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: Consider joining MariaDB's strong and vibrant community:
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: https://mariadb.org/get-involved/
Apr 02 16:51:09 90b2f5aeb4b0 systemd[1]: Started MariaDB 10.5 database server.

無事起動できたらしい。

# ls -l mysql
total 122920
-rw-rw---- 1 100026 100026     24576 Apr  3 01:51 aria_log.00000001
-rw-rw---- 1 100026 100026        52 Apr  3 01:51 aria_log_control
-rw-rw---- 1 100026 100026       972 Apr  3 01:51 ib_buffer_pool
-rw-rw---- 1 100026 100026 100663296 Apr  3 01:51 ib_logfile0
-rw-rw---- 1 100026 100026  12582912 Apr  3 01:51 ibdata1
-rw-rw---- 1 100026 100026  12582912 Apr  3 01:51 ibtmp1
-rw-rw---- 1 100026 100026         0 Apr  3 01:51 multi-master.info
drwx------ 2 100026 100026      4096 Apr  3 01:51 mysql
srwxrwxrwx 1 100026 100026         0 Apr  3 01:51 mysql.sock
-rw-rw---- 1 100026 100026        16 Apr  3 01:51 mysql_upgrade_info
drwx------ 2 100026 100026        20 Apr  3 01:51 performance_schema

mysql.sockが0バイトなのが気になるが、mariadbコマンドが使えるかな?

# podman exec -it almalinux9_mariadb_contener mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.5.27-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

MariaDB [(none)]> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.003 sec)

MariaDB [(none)]> exit
Bye
# 

なので多分OK。

でも【停止】させた表示が少し気になるので コンテナに-it は付けない方がいいかも。

         Unmounting /etc/hostname...
         Unmounting /etc/hosts...
         Unmounting /etc/resolv.conf...
         Unmounting /run/.containerenv...
         Unmounting /run/lock...
         Unmounting /run/secrets...
         Unmounting Temporary Directory /tmp...
         Unmounting /var/lib/mysql...
         Unmounting var-log-journal.mount...
[FAILED] Failed unmounting /etc/hostname.
[FAILED] Failed unmounting /etc/hosts.
[FAILED] Failed unmounting /etc/resolv.conf.
[FAILED] Failed unmounting /run/.containerenv.
[FAILED] Failed unmounting /run/lock.
[FAILED] Failed unmounting /run/secrets.
[FAILED] Failed unmounting Temporary Directory /tmp.
[FAILED] Failed unmounting /var/lib/mysql.
[FAILED] Failed unmounting var-log-journal.mount.
[  OK  ] Stopped target Swaps.
[  OK  ] Reached target System Shutdown.
[  OK  ] Reached target Unmount All Filesystems.
[  OK  ] Reached target Late Shutdown Services.
         Starting System Halt...
Sending SIGTERM to remaining processes...
Sending SIGKILL to remaining processes...
All filesystems, swaps, loop devices, MD devices and DM devices detached.
Halting system.
Exiting container.
 disconnected 


[podman]AlmaLinux:lastest

1.起動しないコンテナ?

# podman search almalinux:latest
NAME                                   DESCRIPTION
docker.io/almalinux/almalinux          DEPRECATION NOTICE: This image is deprecated...
docker.io/library/almalinux            The official build of AlmaLinux OS.
docker.io/almalinux/9-base             AlmaLinux 9 Base container image
docker.io/almalinux/8-base             AlmaLinux OS 8 official base image
docker.io/almalinux/9-minimal          AlmaLinux 9 minimal container image
docker.io/almalinux/9-init             AlmaLinux 9 Init container image
docker.io/almalinux/9-micro            AlmaLinux 9 Micro container image

docker.io/library/almalinuxが良さそうな気がしたので、イメージをダウンロードして以前やった様に・・・

# podman pull docker.io/library/almalinux:latest
# podman run -d \
    --name almalinux9 \
    almalinux:latest    ※The official build of AlmaLinux OS.

とやってみると、コンテナが終了してて【起動】ボタンを押しても起動しない。

ググってみると、

# podman run -d \
    --name almalinux9 \
    -it \               ※ --interactive(-i) + --tty(-t) => -it
    almalinux:latest    ※The official build of AlmaLinux OS.

と–interactive(-i)「対話式プロセス」と–tty(-t)「疑似端末割当」のオプションを付けると起動してくれる。Debian系では無くても起動してたけどRedHat系では付けておいた方が良さそう。

2.アタッチして抜けるとコンテナが【終了】※どのコンテナでも

アタッチしてバージョンを確認してexitするとコンテナが止まってしまうので

【Ctrl】+【p】と【Ctrl】+【q】を続けて押して、そっと抜ける方がいい。

# podman attach almalinux9
# cat /etc/redhat-release 
AlmaLinux release 9.5 (Teal Serval)
※Ctrl-p & Ctrl-q で抜けるとコンテナは「実行中」のままになる

3.とりあえず中を覗きたいだけの場合

# podman run -a \
    --name almalinux9a \
    -it \
    --rm \
    docker.io/almalinux/9-minimal
✔ docker.io/library/almalinux9a:latest
Trying to pull docker.io/library/almalinux9a:latest...
Error: initializing source docker://almalinux9a:latest: reading manifest latest in docker.io/library/almalinux9a: requested access to the resource is denied

と終了後にコンテナを削除するオプションを付けるといいかもとやってみると毎回イメージをダウンロードで失敗するので、 -aは現状使えない。ググってみると-aのオプションを説明してる記事も無かった。

# podman run -d \
    --name almalinux9a \
    -it \
    --rm \
    almalinux:latest
# podman attach almalinux9a
# exit

とちょっと面倒になってる。

–rmについては1行コマンドを実行する分にはそれなりに使える

$ podman run --rm almalinux:latest ls -alF /etc
total 884
drwxr-xr-x 46 root root   4096 Mar  7 07:53 ./
dr-xr-xr-x  1 root root     17 Apr  1 23:00 ../
-rw-------  1 root root      0 Mar  7 07:53 .pwd.lock
-rw-r--r--  1 root root     14 Mar  7 07:53 BUILDTIME
-rw-r--r--  1 root root     94 Jan 31  2022 GREP_COLORS
drwxr-xr-x  5 root root     51 Mar  7 07:52 X11/
・・・

でも非同期でコマンドを実行してるらしく、シェルは期待したようには動かない。

# podman run --rm almalinux:latest /bin/bash
# ※即終了&コンテナ削除


[Almalinux]Cockpit-Podman

コンテナと云えばDockerなんだろうけどRedhatのコマンドから削除され、代わりにPodmanが入ったらしい。

cockpitのアプリケーションの画面にPodmanがあるので【インストール】ボタンを押してみる。

# podman --version
podman version 5.2.2

イメージをダウンロードしてみる。

docker.ioからAlmaLinux9のminimalを選んでダウンロードしてみる

暫くすると

イメージは落とせたらしいので【コンテナーの作成】ボタンを押してコンテナを作る。

で動いてるっぽい。

ここまではいいけど、どう繋げばいいんだろう?

と思ったら「コンソール」タグがあった。

これで何かを付け足せば良いのだろうけど

dnfもtopも何も入ってないのでどうすればいいのかな?

インスト済みのコマンドならホストから実行できる。

# podman exec {コンテナ名} {コマンド} な感じで

# podman exec suspicious_morse ls -l
total 0
dr-xr-xr-x   2 root root   6 Oct  2 21:00 afs
lrwxrwxrwx   1 root root   7 Oct  2 21:00 bin -> usr/bin
drwxr-xr-x   5 root root 360 Mar 26 14:31 dev
drwxr-xr-x   1 root root  18 Mar 26 14:31 etc
drwxr-xr-x   2 root root   6 Oct  2 21:00 home
lrwxrwxrwx   1 root root   7 Oct  2 21:00 lib -> usr/lib
lrwxrwxrwx   1 root root   9 Oct  2 21:00 lib64 -> usr/lib64
drwxr-xr-x   2 root root   6 Oct  2 21:00 media
drwxr-xr-x   2 root root   6 Oct  2 21:00 mnt
drwxr-xr-x   2 root root   6 Oct  2 21:00 opt
dr-xr-xr-x 254 root root   0 Mar 26 14:31 proc
dr-xr-x---   2 root root  91 Mar  7 07:52 root
drwxr-xr-x   1 root root  42 Mar 26 14:31 run
lrwxrwxrwx   1 root root   8 Oct  2 21:00 sbin -> usr/sbin
drwxr-xr-x   2 root root   6 Oct  2 21:00 srv
dr-xr-xr-x  13 root root   0 Mar 26 14:31 sys
drwxrwxrwt   2 root root   6 Oct  2 21:00 tmp
drwxr-xr-x  12 root root 144 Mar  7 07:52 usr
drwxr-xr-x  18 root root 235 Mar  7 07:52 var

できるけどviすら無いから・・・

ただ rpm コマンドは入ってたので・・・

ホストからファイル転送すれば何とかなるかな???????

# podman cp {ホストファイルパス} {コンテナー名} : {コンテナーファイルパス}

外にファイル転送するには

# podman cp {コンテナー名} : {コンテナーファイルパス} {ホストファイルパス}

で使えるらしい。:の有無でホストとコンテナを区別してるっぽいので

# podman cp {コンテナー1} : {コンテナーファイルパス}  {コンテナー2} : {コンテナーファイルパス}

もできそう。

首尾よく何かが出来上がったら、コンテナを停止してイメージを作ればいいのかな。

# podman stop {コンテナー名}  か cockpitのpodmanのコンテナのメニューの【停止】

# podman commit {コンテナー名} {イメージ名} か コンテナのメニューの【コミット】

※「なんたらかんたら」はエラった



[AlmaLinux9]node.jsインスト

# dnf install nodejs

でnodeコマンドは使えるけど、npmが使えないので、こうなった。

# dnf module -y install nodejs:22/common
・・・
===============================================================================================================================================================================================================
 パッケージ                                    アーキテクチャー                    バージョン                                                                     リポジトリー                           サイズ
===============================================================================================================================================================================================================
group/moduleパッケージをインストール:
 nodejs                                        x86_64                              1:22.13.1-1.module_el9.5.0+139+09296491                                        appstream                              1.9 M
 npm                                           x86_64                              1:10.9.2-1.22.13.1.1.module_el9.5.0+139+09296491                               appstream                              2.0 M
依存関係のインストール:
 nodejs-libs                                   x86_64                              1:22.13.1-1.module_el9.5.0+139+09296491                                        appstream                               20 M
弱い依存関係のインストール:
 nodejs-docs                                   noarch                              1:22.13.1-1.module_el9.5.0+139+09296491                                        appstream                              8.6 M
 nodejs-full-i18n                              x86_64                              1:22.13.1-1.module_el9.5.0+139+09296491                                        appstream                              8.6 M
モジュールプロファイルのインストール中:
 nodejs/common                                                                                                                                                                                                
・・・
インストール済み:
  nodejs-1:22.13.1-1.module_el9.5.0+139+09296491.x86_64             nodejs-docs-1:22.13.1-1.module_el9.5.0+139+09296491.noarch         nodejs-full-i18n-1:22.13.1-1.module_el9.5.0+139+09296491.x86_64       
  nodejs-libs-1:22.13.1-1.module_el9.5.0+139+09296491.x86_64        npm-1:10.9.2-1.22.13.1.1.module_el9.5.0+139+09296491.x86_64       
・・・
完了しました!
# node -v
v22.13.1
# npm -v
10.9.2

Expressパッケージで画面を表示したりサービス化するにはpm2パッケージが必須なので入れとく。

# npm install pm2 -g
added 134 packages in 29s

13 packages are looking for funding
  run `npm fund` for details
npm notice
npm notice New major version of npm available! 10.9.2 -> 11.2.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.2.0
npm notice To update run: npm install -g npm@11.2.0
npm notice


[AlmaLinux]mariaDBが動かない

再起動したら・・・

巷では放置サイトでよく見かける

WordPressのDB接続エラーの画面

journalctl -xeu mariadb.serviceで状況を見ると

最初は

No process is using /var/lib/mysql/mysql.sock, which means it is a garbage, so it will be removed automatically.

と出ていたのでロック状態かなと思って削除してみるも動かない

Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.

状況が良く解らないから初期化してね?(怖いよ

ということでログ(/var/log/mariadb/mariadb.log)を見る

[ERROR] InnoDB: Cannot replay rename of tablespace 1122 from './{DB名}/#sql-alter-317-ec.ibd' to './{DB名}/wp_wpo_404_detector.ibd' because the target file exists
[ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption

というので、wp_wpo_404_detector.ibdを消したら、起動できた。

中身は空っぽだからいいか



[AlmaLinux]certbot

SSL化って何したかな?忘れた。

SSL化参考リンク(かなり古い)を見に行くとそんなサーバーは無かったりする。

とりあえず、またググって、インストしてみる。

# dnf --enablerep=epel install certbot

設定が怪しいのでテスト

# certbot certonly --webroot -w {apacheのDocumentRootパス} -d {ドメイン名} --dry-run

外部からサーバが見えてないとダメなのでルータの飛び先を変えて成功

但し、アクセス失敗

Invalid command 'SSLOptions', perhaps misspelled or defined by a module not included in the server configuration

SSLOptionsオプションで使用するモジュールが足りなかったらしい

ググってみるとmod_ssl モジュールらしいので

# dnf  install mod_ssl
⇒ mod_ssl-2.4.62-1.el9_5.2.x86_64.rpm
# systelctl restart httpd

/etc/httpd/conf.d/ に ssl.conf が出現した。
でも「信用できない」状況なのでSSL設定の状況を調べると・・・

# httpd -S
VirtualHost configuration:
*:443                  is a NameVirtualHost
         default server {ドメイン名} (/etc/httpd/conf.d/ssl.conf:40)
         port 443 namevhost {ドメイン名} (/etc/httpd/conf.d/ssl.conf:40)
         port 443 namevhost {ドメイン名} (/etc/httpd/vhost/ssl_virtualhost-{ドメイン名}.conf:1)
*:80                   {ドメイン名} (/etc/httpd/vhost/virtualhost-{ドメイン名}.conf:1)

ssl.confの設定が優先されバーチャルホストの設定が無効化になってそう

なので vhost.confavhost.conf に名前(に他意は無い)を変え先に読まれる様にしてみると

# httpd -S
VirtualHost configuration:
*:80                   {ドメイン名} (/etc/httpd/avhost/virtualhost-{ドメイン名}.conf:1)
*:443                  is a NameVirtualHost
         default server {ドメイン名} (/etc/httpd/avhost/ssl_virtualhost-{ドメイン名}.conf:1)
         port 443 namevhost {ドメイン名} (/etc/httpd/avhost/ssl_virtualhost-{ドメイン名}.conf:1)
         port 443 namevhost {ドメイン名} (/etc/httpd/conf.d/ssl.conf:40)
・・・以下、省略・・・

試しにinfo.phpをwordpressのパスに放り込むと表示するけど、削除すると白紙になるので、ブログの設定かな?

DirectoryIndex index.html index.phpからindex.phpを取ると

403エラーになる

暫くすると真っ白に

結局良く解らないが

元のWordPressのファイルをコマンドラインから復元したら

OKだった

WordPressの中身に何かあるらしい

壁紙のプラグインとか入れてなかったのでその辺で失敗してる様な気がした。

WP-Optimizeがテーブルのインデックスサイズ調査でグルグル回ってる(時間が解決

SSL込みで移行するのは大変みたいだ

でも正しいインストール順で構築すれば行けるのかもしれない(知らんけど

ps.

cockpit のSSL証明書の設定を追記。

cd /etc/cockpit/ws-certs.d/
# ln -s /etc/letsencrypt/live/{ドメイン名}/fullchain.pem {ドメイン名}.crt
# ln -s /etc/letsencrypt/live/{ドメイン名}/privkey.pem {ドメイン名}.key

実際にはWinSCPからリンクを貼った。



[AlmaLinux]phpMyAdmin後処理

まずは定番(インポート用)

memory_limit = 128M
post_max_size = 128M
upload_max_filesize = 128M

サービスを切り直し

# systemctl reload httpd
# systemctl restart mariadb

但し、php-fpmもインストしていたら、php-fpmもreloadが必要。

# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; preset: disabled)
     Active: active (running) since Thu 2025-03-13 23:06:00 JST; 3min 54s ago
   Main PID: 8200 (php-fpm)
     Status: "Processes active: 0, idle: 5, Requests: 5, slow: 0, Traffic: 0req/sec"
      Tasks: 6 (limit: 29552)
     Memory: 38.8M
        CPU: 1.253s
     CGroup: /system.slice/php-fpm.service
             ├─8200 "php-fpm: master process (/etc/php-fpm.conf)"
             ├─8201 "php-fpm: pool www"
             ├─8202 "php-fpm: pool www"
             ├─8203 "php-fpm: pool www"
             ├─8204 "php-fpm: pool www"
             └─8205 "php-fpm: pool www"

 3月 13 23:06:00 ssiscirine.warlander.local systemd[1]: Starting The PHP FastCGI Process Manager...
 3月 13 23:06:00 ssiscirine.warlander.local systemd[1]: Started The PHP FastCGI Process Manager.
# systemctl reload httpd.service
# systemctl reload php-fpm.service

mariaDBにも

# mysql -u root
MariaDB [(none)]> show global variables like '%timeout%';
+---------------------------------------+----------+
| Variable_name                         | Value    |
+---------------------------------------+----------+
| connect_timeout                       | 10       |
| deadlock_timeout_long                 | 50000000 |
| deadlock_timeout_short                | 10000    |
| delayed_insert_timeout                | 300      |
| idle_readonly_transaction_timeout     | 0        |
| idle_transaction_timeout              | 0        |
| idle_write_transaction_timeout        | 0        |
| innodb_flush_log_at_timeout           | 1        |
| innodb_lock_wait_timeout              | 50       |
| innodb_rollback_on_timeout            | OFF      |
| interactive_timeout                   | 28800    |
| lock_wait_timeout                     | 86400    |
| net_read_timeout                      | 30       |
| net_write_timeout                     | 60       |
| rpl_semi_sync_master_timeout          | 10000    |
| rpl_semi_sync_slave_kill_conn_timeout | 5        |
| slave_net_timeout                     | 60       |
| thread_pool_idle_timeout              | 60       |
| wait_timeout                          | 28800    |
+---------------------------------------+----------+
19 rows in set (0.003 sec)

でもphpMyAdminとは無関係見たいなのでコマンドラインからインポートした方がいいかも

# mysql {データベース名} -u root < /tmp/******.sql 
しばらくすると終わる(笑


[AlmaLinux]仮想マシンクライアントを作る

まず・・・仮想マシンを作る前にネットワークにブリッジを追加します。

  • cockpit画面左の「ネットワーキング」
    • 画面中央の「インターフェース」
      • 【ブリッジの追加】のボタンを押す

基本的に修正無しで【追加】ボタンを押す。

名前がenp3s0からbridgr0に変り設定内容も変わる。

ネットワーク設定ができたので仮想マシンを作成する。

  • cockpit画面左の「仮想マシン」
    • 画面中央の「仮想マシン」
      • 【仮想マシンの作成】ボタンを押す
  • 「名前」を入力(適当)
  • 「オペレーションシステム」で「AlmaLinux 9」を選択
  • 「ストレージの制限」でサイズを入力(適宜)
  • 「メモリ」でサイズを入力(適宜)
  • ネットワーク設定の確認のため【作成して編集する】ボタンを押す
  • cockpit画面左の「仮想マシン」
    • 画面中央の「仮想マシン」
      • 作成した仮想マシンの名前のリンクを選択
      • 画面を下へスクロールし「ネットワークインターフェース」を表示

という感じ(タイプがbridge、ソースがbridge0)になっていればOK(ハズ

  • 画面を上にスクロール
  • 【インストール】ボタンを押す
  • 長いインストールの始まり始まり始まり始まり
    • 途中「ネットワーク」画面で

と希望するセグメントのIPアドレスになっていれば成功です。



[AlmaLinux]iSCSIデバイスを使う

NASでターゲットの使用許可したIQNを Linux側のIQNとして設定する

# dnf -y install iscsi-initiator-utils

# vi /etc/iscsi/initiatorname.iscsi
InitiatorName = {Linux側のIQN名}

NASに作成したiSCSIデバイスをLinuxから探してみる

# iscsiadm -m discovery -t sendtargets -p {NASのIPアドレス:ポート} ※{ポートは3260}
{NASのIPアドレス:ポート},1 {ターゲット名1}  ※ターゲット名形式:iqn.yyyy-mm.naming-authority:uniqueName
・・・
{NASのIPアドレス:ポート},1 {ターゲット名x} ←今回のターゲット
・・・
{NASのIPアドレス:ポート},1 {ターゲット名n}

安易に見つかった全ターゲットにログインさせてみると・・・

# iscsiadm -m node --login

待ち時間も長いし失敗すると結果も怪しいので

使用するターゲットのみログインする

# iscsiadm --mode node --targetname {ターゲット名x} --portal {NASのIPアドレス:ポート} --login
Logging in to [iface: default, target: {ターゲット名x}, portal: {NASのIPアドレス:ポート}]
Login to [iface: default, target: {ターゲット名x}, portal: {NASのIPアドレス:ポート}] successful.
確認
# iscsiadm -m session -o show
tcp: [2] {NASのIPアドレス:ポート},1 {ターゲット名x} (non-flash)

# cat /proc/partitions
major minor  #blocks  name

   8        0  117220824 sda
   8        1     614400 sda1
   8        2    1048576 sda2
   8        3  115556352 sda3
 253        0   72294400 dm-0
 253        1    7958528 dm-1
 253        2   35299328 dm-2
   8       16  134217728 sdb
   8       17  134201344 sdb1

ログインしたターゲットにファイルシステムを作成する

# parted --script /dev/sdb "mklabel gpt"
# parted --script /dev/sdb "mkpart primary 0% 100%"
# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=8387584 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=33550336, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

マウントしてみる
# mkdir /mnt/kvm
# mount /dev/sdb1 /mnt/kvm

確認
# df -hT
Filesystem                           Type      Size  Used Avail Use% Mounted on
・・・
/dev/sdb1                            xfs       128G  3.1G  125G   3% /mnt/kvm ※iSCSIのサイズになってる
・・・

ファイルシステムのタイプは環境依存なので調べてみる ※上のdf -Tでも判る

# mount -l
・・・
/dev/sdb1 on /mnt/kvm type xfs (・・・)

自動ログインの設定をする

# iscsiadm -m node -T {ターゲット名} -o show | grep startup
node.startup = automatic
node.conn[0].startup = manual      {両方automaticでないとダメらしい}

起動時は手動になっているので自動に変更
# iscsiadm -m node -T {ターゲット名} -o update -n node.conn[0].startup -v automatic

確認
# iscsiadm -m node -T {ターゲット名} -o show | grep node.startup
node.startup = automatic
node.conn[0].startup = automatic

/etc/fstabにも起動時マウントの指定を追加する

#
# /etc/fstab
# Created by anaconda on Wed Mar 12 20:38:55 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/almalinux_*********-root /                       xfs     defaults        0 0
UUID=********-****-****-****-************ /boot              xfs     defaults        0 0
/dev/mapper/almalinux_*********-home /home                   xfs     defaults        0 0
/dev/mapper/almalinux_********-swap none                     swap    defaults        0 0
/dev/sdb1                            /mnt/kvm                xfs     _netdev         0 0

で、何に使うかと云えば

# rmdir /var/lib/libvirt/images           {imagesディレクトリィを削除し忘れると・・・・}
# ln -s /mnt/kvm /var/lib/libvirt/images  {imagesディレクトリィの下に kvm -> /mnt/kvm が出来てしまう}

本当はユーザ/パスワード指定してログインした方がいいし。CHAPも使った方がいい。

 vi /etc/iscsi/iscsid.conf
# CHAP有効化
node.session.auth.authmethod = CHAP
# iSCSI ターゲットで設定したユーザー名とパスワードを設定
node.session.auth.username = {ユーザ名}
node.session.auth.password = {パスワード}



top