rsyslogとsshが動いているコンテナを作ってみる

 

某SNMP Managerなサーバを作るための準備として、rsyslogとsshが動いているCentOS7なコンテナを作ってみました。

仕様

  • タイムゾーンはJST
  • rootでsshアクセス可能
  • rootのパスワードはhogehoge

※listen.confの変更と、ssh-keygenに触れている資料が見付けられるまでの間、嵌まりました。


手順

# カレントフォルダにDockerfileとsupervisord.confを置きます

# コンテナ作成
docker build -t template .

# コンテナ起動(ssh用ポートを10022としています)
docker run -d --name test -p 10022:22 template

# コンソールに接続
docker exec -it test /bin/bash

Dockerfile

FROM centos:7

RUN yum -y update \
    && rm -f /etc/localtime \
    && ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
    && yum -y install rsyslog passwd openssh-server openssh-clients initscripts \
    && yum -y install https://centos7.iuscommunity.org/ius-release.rpm \
    && yum -y install python36u python36u-devel python36u-libs python36u-pip python36u-setuptools \
    && yum -y install supervisor \
    && sed 's/$ModLoad imjournal/# $ModLoad imjournal/' -i /etc/rsyslog.conf \
    && sed 's/$OmitLocalLogging on/$OmitLocalLogging off/' -i /etc/rsyslog.conf \
    && sed 's/$IMJournalStateFile imjournal.state/# $IMJournalStateFile imjournal.state/' -i /etc/rsyslog.conf \
    && sed 's/$SystemLogSocketName/# $SystemLogSocketName/' -i /etc/rsyslog.d/listen.conf \
    && mkdir /var/run/sshd \
    && echo 'root:hogehoge' | chpasswd \
    && sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
    && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \
    && echo "export VISIBLE=now" >> /etc/profile \
    && /usr/bin/ssh-keygen -A

COPY supervisord.conf /etc/supervisord.conf

EXPOSE 22

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

supervisord.conf

[unix_http_server]
file=/tmp/supervisor.sock   ; the path to the socket file

[supervisord]
logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10
loglevel=info                ; log level; default info; others: debug,warn,trace
pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=true                ; start in foreground if true; default false
minfds=1024                  ; min. avail startup file descriptors; default 1024
minprocs=200                 ; min. avail process descriptors;default 200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket

[program:sshd]
command=/usr/sbin/sshd -D -e
autostart=true
autorestart=true
startretries=3

[program:rsyslog]
command=/usr/sbin/rsyslogd -n -c5
autostart=true
autorestart=true
stdout_logfile=/var/log/messages
stderr_logfile=/var/log/messages
redirect_stderr=true

 

在宅期間中にFAHClientで遊んでみようとする方に

 

一番お手軽なのは、手元のPCでWindows版/Mac版のクライアントを実行してみることです(電気代の請求がえらいことになるので、fullはお勧めしません)。

次に、AWS/GCP/Azureあたりのアカウントを作って、『無償枠内』で構築の練習をしてみましょう(アカウント作成のため、クレジットカードが必要です)。新型コロナ対策への貢献、プラス、クラウドサービスのお勉強が出来ます。
但し、無償枠内のCPUパワーでは、提出期限までに宿題を仕上げられません。
先生に採点して欲しいときは、有償枠を使うことになってしまいます…。

AWSでちょろっと頑張ってみる場合、オンデマンドやリザーブドだとおサイフが厳しいです。
スポットインスタンスの使い方もこの際覚えておきましょう。
価格表はこちらにありますので確認して下さい。→https://aws.amazon.com/jp/ec2/spot/pricing/

これを書いている時点でコスパがいいのは、Ohioのc5.largeやt3a.mediumあたりでした。

口座が破綻してしまっては元も子もないので、

  • Billingは毎日チェックして下さい
  • くれぐれもスポットで走らせるのを忘れないように
  • あまり深入りしないように

尚、クラウド上のCPUで頑張る場合、さくらの3Core以上のVPSをmediumで走らせるのが(fullだと周りに迷惑をかけるので怒られてしまいます)、費用対採掘効率が一番良いようでした。

Folding@Homeクライアントのアップデートとプロジェクトの選び方

 

COVID-19が選べるようになりました

7.6.9が出たようです。

宿題として、COVID-19を選べるようになりました。

Windows版の場合、

Webクライアントでの設定

または

FAHControlからの設定

となります。

それ以外のクライアントは、config.xmlに

<!-- Folding Slot Configuration -->
<cause v='COVID_19'/>

を追加して下さい。


新規インストール

新規インストールは公式ページを参照
https://foldingathome.org/support/faq/installation-guides/linux/manual-installation-advanced/
ダウンロードリンクのみ、次のページのそれぞれと読み替えて下さい
https://foldingathome.org/alternative-downloads/


7.5.1からのアップデート(Windows版)

公式のダウンロードリンクから、クライアントをダウンロードして下さい。

普通に上書きインストール可です。


7.5.1からのアップデート(Ubuntu版)

cd ~
systemctl stop FAHClient
# 数秒待つ
# FAHClient停止確認
ps ax
# 停まっていなかったらkill
wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.6/fahclient_7.6.9_amd64.deb
dpkg -i fahclient_7.6.9_amd64.deb
systemctl status FAHClient
systemctl stop FAHClient
# 数秒待つ
# FAHClient停止確認
ps ax
# 停まっていなかったらkill
# config.xmlに宿題の種類を設定
vi /etc/fahclient/config.xml
# config.xmlに以下を追加
<!-- Folding Slot Configuration -->
<cause v='COVID_19'/>
# 保存終了
# クライアント実行/状態確認
systemctl start FAHClient
systemctl status FAHClient
# プロセスが走っているのを確認
ps ax
# 進捗状況を確認(適当なところで^C)
tail -f /var/lib/fahclient/log.txt

7.5.1からのアップデート(CentOS 7版)

cd ~
/etc/rc.d/init.d/FAHClient stop
# 数秒待つ
# FAHClient停止確認
ps ax
# 停まっていなかったらkill
rpm -e fahclient-7.5.1-1.x86_64
wget https://download.foldingathome.org/releases/public/release/fahclient/centos-6.7-64bit/v7.6/fahclient-7.6.9-1.x86_64.rpm
rpm -i fahclient-7.6.9-1.x86_64.rpm
/etc/rc.d/init.d/FAHClient stop
# 数秒待つ
# FAHClient停止確認
ps ax
# 停まっていなかったらkill
# config.xmlに宿題の種類を設定
vi /etc/fahclient/config.xml
# config.xmlに以下を追加
<!-- Folding Slot Configuration -->
<cause v='COVID_19'/>
# 保存終了
# クライアント実行/状態確認
systemctl enable FAHClient
/etc/rc.d/init.d/FAHClient start
/etc/rc.d/init.d/FAHClient status
# プロセスが走っているのを確認
ps ax
# 進捗状況を確認(適当なところで^C)
tail -f /var/lib/fahclient/log.txt

Windowsでsyslogを試してみる

 

Windowsでsyslogをちょっと試してみる時に参考にしてください。

  1. Syslogサーバを建ててみる
    『技術的な何か。やりたいようにやってます』さんより、
    『WindowsでPowershellだけでSyslogを受信してみる。』
  2. Syslogメッセージを送信してみる
    『MURAのHomePage』さんより、
    『PowerShell で syslog を送信する』
  3. Syslogメッセージフォーマット
    『ジュピターテクノロジー』さんより、
    『BSD-syslogメッセージフォーマット』