VCCW 2.0.0 – 設定をymlファイルで記述する仕様に変更しました。

VCCW 2.0.0をリリースしました。

http://vccw.cc/

今回のアップデートでは、従来と設定方法が大幅に変わりましたので、ぜひ読んでください。

設定方法の変更について

従来は、Vagrantfile内に直接定数を記述していく方法でカスタマイズしていましたが、今回から以下のようにsite.ymlというファイルに設定を記述していく方法に変更しました。

日本語版のWordPressを起動したい場合(例)

Vagrantfileと同じディレクトリにsite.ymlというファイルを設置して以下のように記述してください。

lang: ja

デフォルトの値に対する差分を書けば上書きされる仕様になっていますので、上の例のように1行だけ記述した後でvagrant upすれば日本語のWordPressが起動します。

デフォルトの設定は、provision/default.ymlに記述されていますので、それをまるごとsite.ymlにコピーしていただいても大丈夫です。

site.ymlは、Vagrantfileと同じディレクトリにある必要がありますので注意してください。

この方法により改善されること

VCCWの仕様変更をしやすくなった

たとえば現在はプロビジョナーにChefを使用していますが、将来別のプロビジョナーに変更しても同じ設定ファイルを流用することができます。

また、あたらしい設定項目が追加されても、デフォルト値を追加すればいいだけなので、僕としても遠慮なく新機能や仕様変更をできるようになりました。

設定ファイルを流用しやすい

site.ymlには差分だけを記述すればよいので、複数のVCCW環境を立ち上げる際に設定ファイルの流用をしやすくなりました。

チームで環境を共有する際に、site.ymlだけをやりとりしても環境の統一ができます。

テストしやすくなった

VCCWでは、Serverspecを使用したテストを導入していましたが、従来のVagrantfileに直接設定を記述する仕様では、カスタマイズを想定したテストが非常に困難で、事実上デフォルトの状態でのテストしか出来ていませんでした。

今回の仕様変更により、テストコード側でも設定用の.ymlファイルを読み込んでテストできるようになったため、設定内容がただしく仮想マシンに反映されているかどうかをテストしやすくなりました。

したがって、従来のバージョンに比べてとても信頼性が高くなったと思います。

ちなみに、WordPress用のVagrant環境で、このようなTDDな開発を導入しているのはVCCWだけです。

その他

WP-CLIのコマンドがWordPressのディレクトリに移動しなくても実行できるようになりました。

その結果、ホストマシンから以下のように直接WP-CLIのコマンドを実行することもできます。

たとえばWordPressのSimple Mapプラグインをインストールするには以下のコマンドを実行してください。

$ vagrant ssh -c "wp plugin install simple-map --activate"

 

プラグインの一覧を取得するには以下のような感じ。

$ vagrant ssh -c "wp plugin list"
+-------------------+----------+--------+---------+
| name              | status   | update | version |
+-------------------+----------+--------+---------+
| akismet           | inactive | none   | 3.0.4   |
| dynamic-hostname  | active   | none   | 0.4.1   |
| hello             | inactive | none   | 1.6     |
| simple-map        | active   | none   | 2.3.0   |
| tinymce-templates | active   | none   | 4.3.2   |
| wp-total-hacks    | active   | none   | 1.9.1   |
+-------------------+----------+--------+---------+
Connection to 127.0.0.1 closed.

 

vagrant sshしてからWP-CLIのコマンドを打たなくてよくなったので、Gistにいつも使うプラグインをインストールするコマンドや、設定を変更するコマンドを保存して、それをリモートで実行することもできます。

$ vagrant ssh -c "curl -L https://gist.githubusercontent.com/miya0001/1d12e66ae666706c22bd/raw/8945edf80c33a2168f798ee9bfd6fe25caf3e6af/gistfile1.sh | bash"

上のコマンド例でGistから持ってきてるシェルスクリプトは以下のとおりです。

この例では、simple-mapなどの3つのプラグインをインストール&有効化して、全てのプラグインを最新版にアップデートしています。

 

このようにVCCWを使えばWordPress環境をコピペの連続で構築することができます。

すごく便利になりましたよね。