メモ > サーバ > 各論: Ansible > EC2 テスト用サーバ構築メモ
EC2 テスト用サーバ構築メモ
AMI: Amazon Linux 2 AMI
Type: t2.micro
VPC: Study
Subnet: Study-Trust-A
自動割り当てパブリックIP: 有効化
※テストとして test_ansible_controller と test_ansible_target という名前を付けた
test_ansible_controller にAnsibleをインストールし、test_ansible_target を自動設定する
■初期設定
デプロイ用サーバを Basis.txt をもとに設定
デプロイ用サーバのIPアドレス(EIPではないので、サーバを停止させると変わる)
3.112.57.115
■デプロイ対象サーバに接続
あらかじめ、対象サーバの22番ポートをIP制限つきで空けておく(デプロイ用サーバのIPを許可する)
デプロイ用サーバで以下の設定を行う
$ vi /home/ec2-user/.ssh/id_rsa
■Ansibleインストール
Amazon Linux 2 以外の場合、以下の手順でインストールできる
AWS.pem の内容を貼り付け
$ chmod 600 /home/ec2-user/.ssh/id_rsa
$ ssh -p 22 -i /home/ec2-user/.ssh/id_rsa ec2-user@3.112.57.115
$ ssh ec2-user@3.112.57.115
# yum -y install ansible --enablerepo=epel
# ansible --version
Amazon Linux 2 の場合、Extrasリポジトリからインストールできる
バージョンが低いのは一応注意だが、2.7用に作成したPlaybookは問題なく動いた
# amazon-linux-extras list
# amazon-linux-extras install ansible2 -y
# ansible --version
ansible 2.4.6.0
# vi /etc/ansible/hosts
接続確認
[webservers]
3.112.57.115
$ ansible all -m ping
$ ansible webservers -m ping
■ポートの変更(必要に応じて)
デプロイ先にSSH接続し、ポートを10022に変更しておく
デプロイ対象のファイヤーウォールを調整(デプロイサーバからのSSHアクセスを許可する)
以降はデプロイ用サーバから操作
接続確認
$ ssh -p 10022 ec2-user@3.112.57.115
以下にデプロイ対象のIPアドレスとポートを追加
# vi /etc/ansible/hosts
接続確認
[webservers]
3.112.57.115:10022
$ ansible all -m ping
$ ansible webservers -m ping
■デプロイ
以下にAnsible用のファイルを配置
/home/ec2-user/ansible/apache_php_mysql
Ansibleを実行
$ cd /home/ec2-user/ansible/apache_php_mysql
$ ansible-playbook site.yml
接続確認
http://3.112.57.115/
http://3.112.57.115:8080/
■追加の手順例
php.ini をきちんと調整したり(Playbook)
MySQLのユーザを作成したり(手動で作成すべきかも)
など、引き続き調整する
■参考
Vagrant+ansibleでLAMP環境構築(4) - Qiita
https://qiita.com/k-serenade/items/0ab59f9563493f0cf293
ansibleでphp composerをインストール - Qiita
https://qiita.com/oppara/items/4bb65607bb40e6ac4814
ディレクトリのグループだけ変えたい場合はどうするか
commandを使うと冪等性を保てないようなので、以下のようにするか
- name: change group session directory
file: path=/var/lib/php/session state=directory group=nginx
はじめてAnsibleを使う人が知っておきたい7つのモジュール | 株式会社インフィニットループ技術ブログ
https://www.infiniteloop.co.jp/blog/2013/08/ansible/
AnsibleのScriptモジュールで冪等性をいい感じに担保したい - Qiita
https://qiita.com/Gustav/items/cbc937cfdfb1ba6efd42
[Ansible] ディレクトリが無かったら作成する - Qiita
https://qiita.com/hnakamur/items/b5a17d8cb289432014d5