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

Vagrant + VirtualBox + Ansinble で MT を使えるようにする を書きましたが、ちょっと内容を変えて手順が減るようにしてみました。

  • CGI を実行可能にする
  • Apache ドキュメントルートを共有フォルダに

上記の手順が不要になります。少し楽!

  1. Vagrant と VirtualBox をインストールする
  2. Vagrant に box を追加する
  3. Vagrant 用にフォルダ作成して init
  4. Vagrantfile を編集する
  5. Vagrant を起動する
  6. Ansible をインストール
  7. SSH 接続の設定をする
  8. Ansible の設定ファイルを編集
  9. Ansible の playbook を作る
  10. MT の設置

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 など入れる用

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

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

ここで Apache ドキュメントルートを共有フォルダ内の htdocs にするよう設定しておくことに。

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、その他モジュールなど入れる設定。

lineinfile で httpd.conf を書き換えるように設定できるの便利ー。

playbook を実行する。

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

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

MT の設置

ローカルの htdocs がサーバーのドキュメントルートと同期されてるので、ローカルの htdocs 内に MT を置いて、必要に応じてパーミッション変える。

初回以降は host サーバーは不要なので、vagrant 起動時には

として web サーバーのみ立ち上げる。(両方立ち上げても問題はないですが)

参考にしたサイトなど