最初に成果物
ansible-sample
├── hosts
├── playbooks
│ ├── include
│ │ ├── apache-install-playbook.yml
│ │ ├── common-playbook.yml
│ │ ├── nginx-install-playbook.yml
│ │ ├── php-install-playbook.yml
│ │ ├── postfix-install-playbook.yml
│ │ └── wordpress-install-playbook.yml
│ ├── webserver-playbook.yml
│ └── dbserver-playbook.yml
│
└── templates
└── apache-vhosts.conf.j2
WEBサーバをインストールする場合
ansible-playbook -vvv -u work_user -i hosts --private-key='~/.ssh/id_rsa_vagrant' ./webserver-playbook.yml
DBサーバをインストールする場合
ansible-playbook -vvv -u work_user -i hosts --private-key='~/.ssh/id_rsa_vagrant' ./dbserver-playbook.yml
テスト環境の構築
環境は、WEBサーバとDBサーバの2つを用意する。
- WEBサーバ(IP:192.168.33.100)
- DBサーバ (IP:192.168.33.101)
作業を行うユーザについて
- work_user で sudo で作業する。
以下を参考に環境の構築を行う。
- Vagrantメモ (http://qiita.com/ponsuke/items/c5a7bc045acff17f6daf)
- SSH 秘密鍵・公開鍵の作り方 (http://qiita.com/ponsuke/items/a89d973cb8a42cfec79c)
- sudoをパスワード入力なしで使用する方法 (http://qiita.com/ponsuke/items/9460e3e8140cf6af5932)
- ansibleをローカル環境にインストールする。(pip install ansible)
以下、自動化した作業
ミドルウェア・パッケージのインストール
WEBサーバ・DBサーバ共通
ansible-sample/playbooks/include/common-playbook.yml
- yumパッケージのアップデートを行う
$ sudo yum -y update
- pcre のインストール
$ sudo yum -y install pcre
- pcre-devel のインストール
$ sudo yum -y install pcre-devel
- iptables のインストール
$ sudo yum -y install iptables
- openssl のインストール
$ sudo yum -y install openssl
- openssl-devel のインストール
$ sudo yum -y install openssl-devel
- emacs のインストール
$ sudo yum -y install emacs
- wget のインストール
$ sudo yum -y install wget
- gitをインストールする
$ sudo yum install git
- MySQLサーバをインストールする
$ sudo yum -y install mysql mysql-devel
- python2.7 をインストールする
$ cd /usr/local/src
$ sudo wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
$ sudo tar -xvf Python-2.7.8.tar.xz
$ cd Python-2.7.8
$ sudo ./configure
$ sudo make
$ sudo make install
- easy_install をインストールする
$ sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo /usr/local/bin/python2.7
- pip をインストールする
$ sudo /usr/local/bin/easy_install pip
- virtualenvをインストールする
sudo /usr/local/bin/pip install virtualenv
- 内部エンコードの設定
DBサーバ(IP:192.168.33.101)
- MySQL Port:3306を開ける
$ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --sport 3306 -j ACCEPT
$ sudo /etc/init.d/iptables restart
- MySQLサーバをインストールする
$ sudo yum -y install mysql-server
- MySQLサーバ起動
$ sudo /etc/init.d/mysqld start
- mysqlの root ユーザのパスワードを設定する。
/usr/bin/mysqladmin -u root password 'new-password'
-
/etc/my.conf の編集
-
mysqlの 運用ユーザ、パスワード、権限(ひとまず全権限を付ける)を設定する
CREATE USER 'work_mysql_user' IDENTIFIED BY 'new_password';
GRANT ALL ON *.* TO work_mysql_user;
WEBサーバ(IP:192.168.33.100)
- apache をインストールする 場合
ansible-sample/playbooks/include/apache-install-playbook.yml
$ sudo yum install httpd httpd-devel
- VirtualHostの設定
ファイルに設定を含めているが、これはfabric側(デプロイ)ですべきなのかなぁ。。。
- apache 起動
$ sudo /etc/init.d/httpd restart
- nginx をインストールする
ansible-sample/playbooks/include/nginx-install-playbook.yml
$ sudo wget https://www.openssl.org/source/openssl-1.0.2.tar.gz
$ sudo tar -xvf openssl-1.0.2.tar.gz
$ sudo wget http://zlib.net/zlib-1.2.8.tar.gz
$ sudo tar -xvf zlib-1.2.8.tar.gz
$ cd /usr/local/src
$ sudo wget http://nginx.org/download/nginx-1.7.9.tar.gz
$ sudo tar -xvf nginx-1.7.9.tar.gz
$ cd nginx-1.7.9
$ sudo ./configure \
--with-openssl=/usr/local/src/openssl-1.0.2 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_spdy_module \
--with-pcre
$ sudo make
$ sudo make install
- Port:80、444を開ける
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --sport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --sport 443 -j ACCEPT
$ sudo /etc/init.d/iptables restart
以下、やってない!
- supervisor のインストール
$ sudo /usr/local/bin/pip install supervisor
> Installing /usr/local/lib/python2.7/site-packages/supervisor-3.1.2-py2.7-nspkg.pth
> Installing echo_supervisord_conf script to /usr/local/bin
> Installing pidproxy script to /usr/local/bin
> Installing supervisorctl script to /usr/local/bin
> Installing supervisord script to /usr/local/bin
参考
http://d.hatena.ne.jp/anatoo/20120310/1331321778
- supervisor の起動
sudo /usr/local/bin/supervisord -c /etc/supervisord.conf