AWS/VULTR + AnsibleでベーシックなRailsサーバを簡単構築


Ansibleはサーバ構築時の手順をコードにできるOSSです。今回は最近構築した自分のサーバのコード『morizyun/centos_ansible_rails - GitHub』を紹介します。

このAnsibleを使うとCentOSを使っているサーバに次のような環境をたったの数コマンドで構築できます。

* サーバ: Nginx
* DB: MySQL or PostgreSQL
* Firewall: iptables
* サーバ監視: NewRelic
* Ruby: RVM & Rails
* SSH: Mosh
* 開発に必要なライブラリのインストール

🗽 動作条件

AWSやVULTRで動作確認がなんとなくできている状況ですが、多分CentOS系のOSなら動く気がします。

VULTRの場合は拙著『[VULTR 日本リージョン/MEM 768MB/SSD 15GB VPS $5/月! Rails鯖のためのAnsibleコードあり]
(/blog/VULTR-server-ssd-vps-easy-to-use/)

を使うと捗ると思います!

🎉 AnsibleをMacに導入

MacでAnsibleを使えるようにする最低限のコマンド。

# Pythonのインストール
brew install python

# pipのインストール
sudo easy_install pip

# Ansibleのインストール
sudo pip install ansible

もう少しPythonの開発環境をしっかり構築したい場合は、拙著『Python開発環境構築 徹底解説[pyenv, Mavericks]』を良かったらご覧ください!

🐝 Ansibleの実行手順

まずは『morizyun/centos_ansible_rails - GitHub
のコードを入手。

git clone https://github.com/morizyun/centos_ansible_rails.git
cd vagrant-ansible-rails

hosts_productionにIP、URSER名、SSH鍵のパスを設定する。

vi hosts_production

次のような内容を追記。

[web]
IP_ADDRESS ansible_ssh_user=USER_NAME ansible_connection=ssh ansible_ssh_private_key_file=~/ssh/path/to
# IP_ADDRESS => サーバのIP
# USER_NAME => SSHでログインするユーザー
# /ssh/path/to => SSH鍵のパス

また、playbook_production.ymlの設定を変更。

vars: パラメータなど
roles: 構築したい設定。postgresql => mysqlにするとmysqlがインストールされます

設定画完了したら、次のコマンドを実行してhostsを読み込み。

export ANSIBLE_HOSTS=./hosts_production

ついに実際にAnsibleのコードを実行。sshのログインユーザーのsudoパスによって2種類あります。

(A) sshでログインするユーザーがsudoになる時にパスワードが必要ない場合は、次のコマンドを実行。

ansible-playbook ./playbook_production.yml

(B) sshでログインするユーザーがsudoになる時にパスワードが必要な場合は、次のコマンドを実行。
実行すると最初にsudoのパスワードを聞かれるので入力。

ansible-playbook ./playbook_production.yml -K

🗻 お願い

今回公開したコードは、力技で逃げているだけの部分も多いのでお気付きの点があればPRよろしくお願いします!

morizyun/centos_ansible_rails - GitHub

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍