みなさんこんにちは。@nullpopopoです。ICHIGEKIは半年以上メンテしてなかったのですが、WordPressなどのCMSをインストールしたり、あるいは素っぴんのWEBサーバーだけをインストールしたい、などの要件に柔軟な対応がしたいと思いまして、今月に入って重い腰を上げてメンテすることにしました。本来ならREADME書いたほうがいいのですが、こちらにまとめて書いておきます。まだ若干手を入れたい箇所もあるという認識ですが、ローカルのVMでテストが通ったので一旦リリースします。
■ 新機能
- WEBサーバーをnginxとhttpdから選択可能にした
- WEBサーバーがnginxの場合、fastcgi_passをphpとhhvmから選択可能にした (デフォルトはphp)
- 次期バージョンでWEBサーバーがhttpdの場合にhhvmを選択できるようにする予定
- WEBサーバーがnginxの場合、404エラーページを生成するようにした
- WEBサーバーがhttpdの場合、ユーザー自身がrootにならずphp.ini ( ${HOME}/etc/php.ini ) を編集できるようにした
- WEBサーバーのみインストールかCMSごと一撃インストールかを選択可能にした
- ドキュメントルート以下のファイルのオーナーを(最初に作成する)一般ユーザーにした (apacheのsuEXEC相当の機能)
- MySQLのリポジトリは5.7固定 ただし、5.6 or 5.7 から選択してインストールが可能
- PHPは 5.6 7.0 7.1 から選択可能
- 管理者ユーザーのPAMのパスワードを暗号化して保存するようにした
- MySQLのサーバーをインストールするか、クライアントをインストールするかの判別を手動でフラグたてる仕様からMySQLサーバーのアドレスで判別するようにした
[amazonjs asin="4797321946" locale="JP" tmpl="Small" title="入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界"]
■ バグ修正
- SSL証明書の作成(更新)年度が2015年固定だったバグを修正 (ICHIGEKI実行時点での年になるようにした)
- wordmoveに必要なrubyをダウンロードする際、preview版を除外する仕様とした (RUBYGETTER側で修正)
■ その他仕様変更
- ほとんどのコマンドを関数化して保守性を高めた
- CentOS6をサポート対象外とした
- 時刻合わせをntpdからchronyへ変更
- iptablesの設定をすべてfirewall-cmdから実施するようにした
- NICのIPアドレス変更機能を削除した
- インストール対象のサーバーがIP Reachableかどうかを自動判別するようにした
- 監視サーバーのエージェント(munin-node)インストール機能を一旦廃止した
- MTA(postfix)設定機能を一旦廃止した
■ 今後の更新予定
- mysql-community リポジトリがすでにインストールされている場合の条件分岐追加
- httpd+hhvm 対応
- WordPress以外のCMSをインストール選択肢に追加
- 監視エージェントの選択機能追加
- MTA設定機能追加(復活)
■ 最小限の使い方
デフォルトの設定では、nginx+php-fpmな環境にWordPressがインストールされた状態でサーバーができあがります。OS再起動後にWordPressが表示されるようにするには、ICHIGEKIの最低限数カ所を編集します。
例) FQDNが www.example.com の場合
NEWHOSTNAME=www NEWDOMAIN=example.com
sshでログインするユーザー名が nullpopopo の場合
ADMINUSERNAME=nullpopopo # ユーザー名を設定 ADMINUSERPASS=p@SsW0rD_nU1Lp0PoP0 # パスワードを設定 ADMINUSERPUBKEY="ssh-rsa AAAA..." # 公開鍵を設定 ADMINUSEREMAIL=nullpopopo@example.com # WordPressインストール完了時の通知メール宛先
WordPressインストールのために必要な変数は以下の通りです。
WP_SITETITLE="example WordPress" # ブログのタイトル (日本語は通らないかも) WP_ADMINUSERNAME=nullpopopo # /wp-admin でログインするユーザー名 (何も指定しなければsshでログインするユーザー名と同一) WP_ADMINPASS=p@SsW0rD_nU1Lp0PoP0 # /wp-admin でログインするユーザーのパスワード (何も指定しなければsshでログインするユーザーのパスワードと同一)
上記のように編集して実行することで、WordPressが動くICHIGEKIマシンの出来上がりです。
ICHIGEKIを通じて、過去の自分と向き合い、対話してみると、いやーほんと鍛えられますね。当時も一応それなりに理屈が通るように書いてはいたつもりですが、たぶん7割くらいは書き直したような気はしています。
機能要件は決まっていたのでどうせ1日で終わるだろう、と高をくくっていたのですが、やってみたら実質10日くらいかかってしまいました。初版ができた頃とCentOSのリポジトリまわりの動きが変わったっぽいのと、当時はPHPを半ば無理やりremiリポジトリからインストールしたのですが、バージョンごとのネーミングルールなどを理解して書き直したので、ここで結構時間を取られたような。
あとは、mysql-communityリポジトリなどもアドレス決め打ちではなく、意地と気合い(笑)で本家サイトからスクレイピングしてリンクを辿るようにしたので、メンテナンス性はきっと上がったはず。
というわけで、明日からICHIGEKIは生まれ変わります。
[amazonjs asin="4798130931" locale="JP" title="一歩先にいくWordPressのカスタマイズがわかる本"]
[amazonjs asin="4904807359" locale="JP" title="シェルスクリプトマガジン vol.39"]