Vagrant で Windows に Postgres on CentOS 環境を構築
PostgreSQL Deep Dive: VagrantでPostgreSQL 9.3の動く仮想サーバを自動構築してみる
をベースにもう少し設定したので、忘備録として。
事前準備
コンソール
Windows の標準コマンドプロンプトだと色々ツライ。個人的に今は cmder を使用中。
仮想環境
おなじみ virtualbox。
Vagrant のインストール
Download Vagrant - Vagrant から Windows インストーラをダウンロードしてインスコ。
λ vagrant -v Vagrant 1.6.2
とパス通ってることを確認。
Vagrant box を追加
A list of base boxes for Vagrant - Vagrantbox.es からベースとなる box を選択。
λ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20131103.box
Vagrantfile を作成
λ mkdir c:\postgres93 λ cd c:\postgres93 λ vagrant init
Vagrantfile を編集
# 利用する box の名前 config.vm.box = "centos64" # プロビジョニングに使用するシェル config.vm.provision :shell, :path => "provision_postgresql93.sh" # Windows 側からアクセスする IP config.vm.network "private_network", ip: "192.168.33.10"
と、編集(コメントを外す)しておきます。
プロビジョニングシェルを用意
以下のファイルを Vagrantfile を同じディレクトリに用意しておきます。
# Yumレポジトリを登録 sudo rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm # RPMをインストール sudo yum install -y postgresql93 postgresql93-server postgresql93-contrib postgresql93-libs # initdbコマンドでデータベースクラスタを初期化 sudo -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/9.3/data --no-locale -E utf-8 -k # サービスを自動起動するように設定 sudo /sbin/chkconfig postgresql-9.3 on # サービスを起動 sudo /sbin/service postgresql-9.3 start # postgresql.conf の設定 sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /var/lib/pgsql/9.3/data/postgresql.conf sudo sed -i "s/#port = 5432/port = 5432/" /var/lib/pgsql/9.3/data/postgresql.conf sudo sed -i "s/timezone = 'UTC'/timezone = 'Asia/Tokyo'/" /var/lib/pgsql/9.3/data/postgresql.conf # pg_hba.conf の設定 echo 'host all all 0.0.0.0/0 trust' | sudo tee -a /var/lib/pgsql/9.3/data/pg_hba.conf # 再起動 sudo /sbin/service postgresql-9.3 restart # F/W の設定 sudo perl -pi -e 's/--dport 22 -j ACCEPT/--dport 22 -j ACCEPT\n-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT/' /etc/sysconfig/iptables sudo /etc/rc.d/init.d/iptables restart # MAC アドレスマッピングを無効化 sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
環境を作成する
λ vagrant up
で、実際に box から仮想環境起動、ポスグレインストールし、あとは
λ vagrant ssh
で中に入って、 psql でデータベース作ればおk。ホスト Windows 側から pgadmin とかで 192.168.33.10:5432 に繋いで確認する。
更に
λ vagrant plugin install sahara λ vagrant sandbox on
と、プラグイン sahara を入れておくと、いつでも
λ vagrant sandbox rollback
で戻れるから便利です。