Vagrant + VirtualBox + Ansinble で MT を使えるようにする

2015/08/09追記
Vagrant + VirtualBox + Ansinble で MT を使えるようにする ver2 を書きました。

Vagrant + WordPress だったら VCCW がありますが、MovableType の場合は良く分からなかったので自分でごりごり入れました。Ansible という Python で書かれた構成管理ツールがイケテルらしいという噂なので使ってみました。

  1. Vagrant と VirtualBox をインストールする
  2. Vagrant に box を追加する
  3. Vagrant 用にフォルダ作成して init
  4. Vagrantfile を編集する
  5. Vagrant を起動する
  6. Ansible をインストール
  7. SSH 接続の設定をする
  8. Ansible の設定ファイルを編集
  9. Ansible の playbook を作る
  10. CGI を実行可能にする
  11. Apache ドキュメントルートを共有フォルダに
  12. MT の設置
  13. 躓いたところ
  14. 参考にしたサイトなど

Vagrant と VirtualBox をインストールする

インストーラーなどで適宜入れておく。

Vagrant に box を追加する

box は以下のサイトから検索して入れたい物を探す。
Discover Vagrant Boxes | Atlas by HashiCorp

ここでは centos 入れたいなってことで「chef/centos-6.5」を入れます。

しばらく時間かかる。
入れ終わったら、

で box の一覧を表示してみる。

Vagrant 用にフォルダ作成して init

Vagrant 用にフォルダを作成。好みの場所で OK。作ったらコマンドでそのフォルダ内に移動。例えば c:\vagrant だったら cd vagrant で移動しておく。

vagrant init する

「chef/centos-6.5」のところは vagrant box list で表示された一覧から、使いたいものを。
init すると Vagrantfile がフォルダ内に作成される。

ついでに最低限覚えておきたい Vagrant コマンド

参考)

Vagrantfile を編集する

Ansible を使うので 2 つたちあげる。

をコメントアウトして、その下あたりに以下の内容を追加する。

host 側に Ansible を入れて、web 側に MT や db を入れる感じで。

Vagrant を起動する

起動できたら、Vagrant のステータスを確認する。

Ansible をインストール

Vagrant の host サーバーに ssh で入る。

mintty を使ってる人は「Windows で mintty を使って vagrant ssh したい時」も参考に。

CentOS の外部リポジトリ epel を導入

Ansible を入れるには CentOS の外部リポジトリ epel が必要ということで、まずはこれを入れる。

上記サイトで「epel-re」をページ内検索して、epel-release-○-○.noarch.rpm を見つけ、URL をコピーする。(今回は epel-release-6-8.noarch.rpm を入れる)

例えば、 $ wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm みたいな感じ。

wget 終わったら、

をする。

Ansible を入れる

入ったか確かめておく。

SSH 接続の設定をする

で config を開いて、

と書いて保存して閉じる。(vi の保存は :w で、閉じるには :q)

ファイルのパーミッションを変える。

これでアクセス可能になったはず。

鍵を作る

パスとかは全部そのまま何も入力せずエンターで。

接続するか聞かれるので「yes」。パスワードを聞かれるので Vagrant のユーザーパスワード「vagrant」を入力。

設定が終わったら ssh で web に入れるか確認する。入れたら出て host に戻っておく。

Ansible の設定ファイルを編集

hosts ファイルを編集

次のように書いて、

保存して閉じる。

ansible.cfg ファイルを編集

次のように書いて、

保存して閉じる。繋がるか確認してみる。

Ansible の playbook を作る

playbook っていうのは、Chef でいうとレシピにあたるもの。YAML 形式で書きます。

次のように書いて保存。Apache、Perl、PHP、その他モジュールなど入れる設定。

playbook を実行する。

http://192.168.43.52/ がサーバーとして立ち上がってるはずなので、開いて見る。Apache 2 Test Page あたりが表示されるはず。

playbook のコマンドは以下の通り。実行前に –check とかしても良い。

これでサーバーが入って起動して~となってるので、サーバー側の設定をちょっとしておく。

CGI を実行可能にする

Options に ExecCGI を追記する。

AddHandler のコメントアウトを削除し、.cgi を Apache 経由で起動できるように。

Apache ドキュメントルートを共有フォルダに

共有フォルダをドキュメントルートにしておくと楽なので。

$ cd /vagrant が共有フォルダ。分かりやすいよう、上記内に htdocs フォルダ作る。

これでドキュメントルートは共有フォルダ内の htdocs になったはずなので、試してみる。index.html を作って、

適当な文字を書いて保存、http://192.168.33.10/ でそれが表示されていれば OK。

MT の設置

htdocs 内に MT を置いて、必要に応じてパーミッション変える。

躓いたところ

playbook.yml の「install cpan-modules with cpanm」がコケまくって最初悩みました。どうやらパスが原因のようだったので、パスに関する設定を追加。

参考にしたサイトなど