酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

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を使えるようにする最低限のコマンド。

1
2
3
4
5
6
7
8
# Pythonのインストール
brew install python

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

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

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

Ansibleの実行手順

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

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

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

1
vi hosts_production

以下のような内容を追記。

1
2
3
4
5
[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の設定を変更。

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

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

1
export ANSIBLE_HOSTS=./ansible/hosts_production

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

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

1
ansible-playbook ./ansible/playbook_production.yml

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

1
ansible-playbook ./ansible/playbook_production.yml -K

お願い

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

morizyun/centos_ansible_rails - GitHub

押さえておきたい書籍

いかがだったでしょうか?
もし説明がわかりにくかったり、間違っている場所があればぜひ一言!

Comments