SVX日記
2015-11-30(Mon) アイ・キャン・オープン・スタック……メイビー
前回「ちょっと自動化でも図ってみようかしらん」などと、軽い気持ちでpuppetやchefを調べ始めたのだが、どうも自分には合わなそうだ、ということがわかってきた。そもそも、最初に対象ホストにログインしてインストールが必要、という仕様が自己矛盾していて気に食わない。記述の例を見ても、抽象化レベルが高く、汎用性が高そうな反面、あまりクドいことはできなさそうにみえる。てなわけで、自分なりにサーバ設定の自動化機構を作り始めたところ、それなりに楽しくなってきてしまい、結果、かなり納得の行くものができてしまった。
その名も「kugutsu」。結構、直感的に設定が記述できて、我ながら大いに気に入っている。実際、Fedora23のインストール後、ワンショットでpackstack実行直前までのお膳立てするスクリプトを書いたが、非常に便利だ。なにしろ、OSのインストール完了後、対象ホストにログインする必要すらなく、外部ホストから設定を完結してしまえるのがいい。
しかし、ひととおり動くようになったところで、大トラップ。先日に導入を回避したhiera-3がupdateリポジトリに入ってきてしまっているではないか。ならばと、updateリポジトリを外したところ、packstackが頓挫するようになってしまった。おいおい、packstackさん、モグラ叩き大会やってんじゃねーんだぞ。
結局、updateリポジトリを無効化して、hieraを導入後、updateリポジトリを再度有効化する、というワケのわからない手順が必要になった。なんだ、この針の穴を通すようなインストール手順は。普通の人がこんな状況に遭遇したら、アッサリとあきらめざるを得ないじゃねーか、マジかよ……と思ったら、今度はpackstack側に修正が加わり、新しいhieraでも動くようになったようだ……って、もういいや、そのままで。とりあえず開発物件一式を置いておく。んが、上記のような状況なんで、いつまでもこの導入手順が有効とは限らない、ってことだな。
$ ./kugutsu prep_openstack_fed23.kgt troll -l 26-34 -c
26: kgt.modify(
27: '/etc/ssh/sshd_config', [
28: kgt.ss_set_param('UseDNS', ' no'),
29: kgt.ss_comment_out('GSSAPI.*'),
30: kgt.ss_set_param('GSSAPIAuthentication', ' no'),
31: ])
32: kgt.exec(
33: kgt.systemctl(%w!restart sshd!)
34: )
$ ./kugutsu prep_openstack_fed23.kgt troll -l 26-34
kugutsu version is [1.0-0-20151201].
target host is [troll0.itline.jp].
start at [2015-12-01 23:07:29 +0900].
===> [ ! -e /etc/ssh/sshd_config.org ]
---> 0
===> mv /etc/ssh/sshd_config /etc/ssh/sshd_config.org
---> 0
===> cp -a /etc/ssh/sshd_config.org /etc/ssh/sshd_config
---> 0
===> sed -r -i /etc/ssh/sshd_config -e 's!^#?(UseDNS).*!\1 no!' -e 's!^#?(GSSAPI.*)!#\1!' -e 's!^#?(GSSAPIAuthentication).*!\1 no!'
---> 0
===> diff -bc /etc/ssh/sshd_config.org /etc/ssh/sshd_config
*** /etc/ssh/sshd_config.org 2015-09-25 21:31:40.000000000 +0900
--- /etc/ssh/sshd_config 2015-12-01 23:07:29.448391002 +0900
***************
*** 90,97 ****
#KerberosUseKuserok yes
# GSSAPI options
! GSSAPIAuthentication yes
! GSSAPICleanupCredentials no
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
#GSSAPIEnablek5users no
--- 90,97 ----
#KerberosUseKuserok yes
# GSSAPI options
! GSSAPIAuthentication no
! #GSSAPICleanupCredentials no
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
#GSSAPIEnablek5users no
***************
*** 126,132 ****
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
! #UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
--- 126,132 ----
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
! UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
---> 1
===> which systemctl
/usr/bin/systemctl
---> 0
===> systemctl restart sshd
---> 0
finished at [2015-12-01 23:07:30 +0900].