25.3. runlabel での rsyslog の実行
rhel9/rsyslog
コンテナーイメージは、rsyslogd
デーモンのコンテナー化されたバージョンを実行するように設計されています。rsyslog
イメージには、install
、run
および uninstall
の runlabel が含まれます。以下の手順に従って、rsyslog
イメージのインストール、実行、アンインストールを行います。
前提条件
-
container-tools
メタパッケージがインストールされている。
手順
rsyslog
イメージをプルします。# podman pull registry.redhat.io/rhel9/rsyslog
rsyslog
のinstall
runlabel を表示します。# podman container runlabel install --display rhel9/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel9/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel9/rsyslog:latest /bin/install.sh
これは、コマンドがホストに特権を開き、コンテナー内の
/host
にホストの root ファイルシステムをマウントし、install.sh
スクリプトを実行します。rsyslog
のinstall
runlabel を実行します。# podman container runlabel install rhel9/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel9/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel9/rsyslog:latest /bin/install.sh Creating directory at /host//etc/pki/rsyslog Creating directory at /host//etc/rsyslog.d Installing file at /host//etc/rsyslog.conf Installing file at /host//etc/sysconfig/rsyslog Installing file at /host//etc/logrotate.d/syslog
これにより、
rsyslog
イメージが後で使用するホストシステムにファイルが作成されます。rsyslog
のrun
runlabel を表示します。# podman container runlabel run --display rhel9/rsyslog command: podman run -d --privileged --name rsyslog --net=host --pid=host -v /etc/pki/rsyslog:/etc/pki/rsyslog -v /etc/rsyslog.conf:/etc/rsyslog.conf -v /etc/sysconfig/rsyslog:/etc/sysconfig/rsyslog -v /etc/rsyslog.d:/etc/rsyslog.d -v /var/log:/var/log -v /var/lib/rsyslog:/var/lib/rsyslog -v /run:/run -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/etc/localtime -e IMAGE=registry.redhat.io/rhel9/rsyslog:latest -e NAME=rsyslog --restart=always registry.redhat.io/rhel9/rsyslog:latest /bin/rsyslog.sh
これは、コマンドがホストへの特権を開き、
rsyslog
コンテナーを起動してrsyslogd
デーモンを実行するときに、コンテナー内のホストから多数のファイルとディレクトリーをマウントすることを示しています。rsyslog
のrun
runlabel を実行します。# podman container runlabel run rhel9/rsyslog command: podman run -d --privileged --name rsyslog --net=host --pid=host -v /etc/pki/rsyslog:/etc/pki/rsyslog -v /etc/rsyslog.conf:/etc/rsyslog.conf -v /etc/sysconfig/rsyslog:/etc/sysconfig/rsyslog -v /etc/rsyslog.d:/etc/rsyslog.d -v /var/log:/var/log -v /var/lib/rsyslog:/var/lib/rsyslog -v /run:/run -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/etc/localtime -e IMAGE=registry.redhat.io/rhel9/rsyslog:latest -e NAME=rsyslog --restart=always registry.redhat.io/rhel9/rsyslog:latest /bin/rsyslog.sh 28a0d719ff179adcea81eb63cc90fcd09f1755d5edb121399068a4ea59bd0f53
rsyslog
コンテナーは権限を開き、ホストから必要なものをマウントし、バックグラウンドでrsyslogd
デーモンを実行します (-d
)。rsyslogd
デーモンは、ログメッセージを収集し、メッセージを/var/log
ディレクトリー内のファイルに送信します。rsyslog
のuninstall
runlabel を表示します。# podman container runlabel uninstall --display rhel9/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel9/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel9/rsyslog:latest /bin/uninstall.sh
rsyslog
のuninstall
runlabel を実行します。# podman container runlabel uninstall rhel9/rsyslog command: podman run --rm --privileged -v /:/host -e HOST=/host -e IMAGE=registry.redhat.io/rhel9/rsyslog:latest -e NAME=rsyslog registry.redhat.io/rhel9/rsyslog:latest /bin/uninstall.sh
この場合、uninstall.sh
スクリプトは、/etc/logrotate.d/syslog
ファイルを削除します。設定ファイルはクリーンアップされません。