変奏現実

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

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

2014年11月4日

Docker

Docker を使えばバカみたいに簡単になる。
と誰かが云っていたのを観たが・・・
実際に使ってみると、Dockerの環境依存度は半端ない。
Dockerが起動するのは1プロセスなのでsendmail も httpd も サービスと云えるものは何も動いていない。
プロセスのスプーラーを用意するのが常套手段の様だが・・・それは大甘。どうしても消えないプロセスが出たら、ホストをrebootするしかない。これは怖い。
さらにCentOS7になって service や chkconfig が systemctl になっただけでも、さっぱり動かない。
と云う日記を観た。
しかし、centos:centos7 のイメージを使うと hostname すら動かない。
強いて言えば、LXCの頃は、
何度何度もインストし。絶対大丈夫と確信した手順が手に入った後にスクリプトを作っていたのだろう。
で、あれば対話モードで
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx
RUN sudo  yum -y install  xxxxxxxxxxxxxxxxxxxxxx

で、イメージを作り、さらにひな形にして・・・していけば・・・
本当に「バカみたいに簡単になる。」様に思える。
しかし、全てを完璧に作り終え夢のような花畑が出来た後に・・・

「mcrypt 拡張をロードできません。PHP の設定を確認してください」

のようなアップデートが後付けでたった1つ挟まるだけで、夢のような花畑は全滅するのだ。
※なぜかCentOS6.6になっても直ってないっぽい。

それ以上に確実にたまにやって来る『セキュリティ・緊急パッチ』が一番の曲者。

全てがやり直しになる。※検証し直すという意味で・・・

例のBASHのアップデートも大抵は問題ないが使っていた機能を削られてたりしたら・・・(涙

単純にCentOSのインストーラーの後、ひたすらコマンドを撃ち続けるのは
滅多に無いけど、クリティカルなタイミングで下手なアップデートが混ざる確率は非常に高いので
変になっていないかどうか、人の目で確認するためなのだ。
そんな必要が無ければ、皆、長いシェル・スクリプトを流して済んでいる。
仮想化が必要な理由は、

  1. SSDの寿命は短いが、スピンドルを回しっぱなしのHDDの寿命もあっけない。
  2. 時間がかかりすぎ単調な手作業になるインストールはヒューマンエラーを引き起こしやすい。
  3. そもそも用意した手順が正しいとは誰も云えない。※去年は去年。今年は今年。

に尽きるので、Dockerの最大の功績は Core OS をリリースしていることだと思う。
これをホストにして、Git HUB から いけそうな奴を 片っ端から流して、出来が良かったものをコミットして残す。
というのが本来のやり方だろう。
つまり、Dockerが定着するかどうかは、今後のGit HUB の中身次第ということだ。
多分、LXCの二の前だろうと思う。そうそう良いものには巡り会えないのだから。
 
また、たくさんのWARファイルを飲ませ、サーバー・プロセスの起動時間が長くなってしまったJava系WEBアプリにはほとんどメリットが無いが、aufsのおかげで、ログやjavaキャッシュでゴミだらけになっているサーバーの中を綺麗に消すことができる。大したことではないように思えるが、壊れたキャッシュが挟まったWEBサーバーは再インストールする以外に手段ないのだ。デリゲーターのおかげで組み換えが便利になっている代償としてキャッシュの保存先がサーバーのあちこちに分散していることが多いのだ。ある意味、未来のDockerサーバーが同様な状況になっていないとは断言できない。
 
そして、出来上がったイメージが想定通りなのかどうか?
テストする手順は、完全に手探りでしかない。
 
【所感】
Dockerで作ったものをテストする全自動テスターNocker君が欲しい。



メール転送設定

ここでやっているのは
ブログの監視メールをパソコンで読める様にすること
rootのメールの転送先を登録

# vi /etc/aliases
root:       ****@***.*** な感じで
# newaliases

postfixの設定を若干変更

# vi /etc/postfix/main.cf
mydomain = **ドメイン名**
 myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 inet_interfaces = all
 home_mailbox = Maildir/
 message_size_limit = 10485760
に変更
# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/

rootのメールを転送するアカウントを作成

# adduser  *********
# passwd   *********
ユーザー ********* のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

postfix再起動

# systemctl restart postfix

dobecotをインスト

# yum -y install dovecot
# cd /etc/dovecot/conf.d/
# vi 10-mail.conf
mail_location = maildir:~/Maildir
に変更
# vi 10-auth.conf
disable_plaintext_auth = no
に変更
# systemctl start dovecot
# systemctl enable dovecot

ファイアーウォールの設定を変更 smtp pop3 imap

# firewall-cmd –state
running
# firewall-cmd –list-services
dhcpv6-client http ssh
# firewall-cmd –add-service=smtp –permanent
# firewall-cmd –add-port=110/tcp  –permanent
# firewall-cmd –add-port=143/tcp  –permanent
# firewall-cmd –reload
success
# firewall-cmd –list-services
dhcpv6-client http smtp ssh
# firewall-cmd –list-ports
110/tcp 143/tcp

テスト

# echo test | mail root

※cyrus saslがsaslpasswd でアカウントとパスワードを登録しないと認証しなくなっていたらしいので、cyrus saslのインストと/etc/postfix/main.cfに

smtpd_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination

の設定は最初のインスト時は見送ったが、後で追加してみたら、支障なかった。

# yum -y install cyrus-sasl
パッケージ cyrus-sasl-2.1.26-17.el7.x86_64 はインストール済みか最新バージョンです
何もしません
# systemctl start saslauthd
# systemctl enable saslauthd
ln -s '/usr/lib/systemd/system/saslauthd.service' '/etc/systemd/system/multi-user.target.wants/saslauthd.service

 
しかし、インストの手順が重要なのかもしれない。




top