Vagrant を触り始める
完全に「乗るしかない」的なノリではありますが、エンドツーエンドテスト実行するために AWS のインスタンス立ち上げるの若干やり過ぎだなーと思ってた所だったので、ちょうど良いかもしれんという事で。ちなみに chef とか触ったことない。。
環境
Windows 7 64bit (Thinkpad X230 core i7)
BIOS でスレッド周りの設定を有効にしないと virtualbox の起動で上手くいかない場合があるかも。(VT-d だったかな。)
インストール
VirtualBox と Vagrant.msi をダウンロードしてインストールする。今だと vagrant は 1.1 系。1.1 系になるまで触った事のないゆとり。。
C:\vagrant
に各種バイナリとかが配置されます。
C:\Users\<ユーザ名>\.vagrant.d
に入れた box のデータとかが入る。
今回は centos6_4_x86_64
を入れました。
vagrant init まで終わってる体で。
Vagrantfile を編集する
今回は PostgreSQL 用の環境を作りたいので 5432
だけ port forward の設定しときます。ただ、ホスト側からだけ仮想環境にアクセスするならいらないですな。
接続用の IP も設定しておきます。
Vagrant.configure("2") do |config| config.vm.box = "centos6_4_x86_64" config.vm.network :forwarded_port, guest: 5432, host: 15432 config.vm.network :private_network, ip: "192.168.33.10" end
これで、vagrant up
で立ち上げ。
仮想環境とのやり取り
仮想環境への ssh 接続は vagrant のコマンドを使って
> vagrant ssh
でいくか、普通にターミナルから localhost に対して ssh 接続すれば良い。デフォルトで vagrant ユーザが存在する。
$ ssh vagrant@localhost -p 2222
Vagrantfile があるフォルダが、仮想環境側の /vagrant
にマウントされているので、ココ経由でやり取りもできます。
PostgreSQL の導入
ここらで chef でずばっと行きたい所ですが、まずは手動インストール。今回は 9.1 系を入れました。CentOS に入れる方法ググったやり方で普通にいけました。
以下で設定項目もいろいろ書いてますが、vagrant による部分はほとんど無くて pg_hba.conf の ip の部分ぐらい。
// yum でインストール $ wget -P /tmp http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm $ sudo rpm -ivh /tmp/pgdg-centos91-9.1-4.noarch.rpm $ yum --disableplugin=priorities info postgresql91-server.x86_64 $ sudo yum --disableplugin=priorities install postgresql91-server.x86_64 $ psql --version // 自動で起動するように設定 $ sudo /sbin/chkconfig --list | grep postgresql $ sudo /sbin/chkconfig postgresql-9.1 on $ sudo /sbin/chkconfig --list | grep postgresql $ sudo /sbin/service postgresql-9.1 initdb $ sudo /sbin/service postgresql-9.1 start
pg_hba の設定
/var/lib/pgsql/9.1/data/pg_hba.conf
以下を追加する。trust の部分はとりあえず。
host all all 192.168.33.0/0 trust
postgresql.conf の設定
/var/lib/pgsql/9.1/data/postgresql.conf
listen_addresses
を以下のように変更する
listen_addresses = '*'
iptables の設定
今回入れた CentOS には iptables が入っているので 5432 のポートをアクセス可能にします。
vi /etc/sysconfig/iptables
以下を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
ここまですれば
ホスト環境の pgAdmin から
- ホスト:192.168.33.10
- ポート:5432
で接続できる。(ユーザはとりあえず postgres で接続できる。)
次は
テストに必要なデータを入れて、そっからどうするかですね。sahara を使いたかったのだけど 1.1 はまだ未対応という事でちょっと残念。