LoginSignup
19

More than 5 years have passed since last update.

Ansibleで WEB・DBサーバをこさえてみる

Last updated at Posted at 2015-01-27

最初に成果物

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 で作業する。

以下を参考に環境の構築を行う。

以下、自動化した作業

ミドルウェア・パッケージのインストール

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19