メモ > サーバ > 各論: Ansible > ローカルで検証
ローカルで検証
自分自身に対してAnsibleを実行する方法
Ansible自体のインストールと設定は手動で行う必要があるが、それ以降はコード化できる
■Vagrant起動
Vagrantは、通常の方法で1台だけ起動すれば十分
■Ansibleをインストール
$ sudo su -
# yum -y install ansible
# vi /etc/ansible/hosts … ファイルの最後に追記
■Playbookの修正
ローカル接続用に、以下のように修正しておく
site.yml
[localhost]
127.0.0.1
# exit
$ ansible localhost -m ping --connection=local ... ローカル環境へPING(「--connection=local」が無ければ 127.0.0.1 へ認証しようとする)
- name: setup the webservers
hosts: localhost ... localhost(後に定義)へ接続
# user: "{{ ssh.username }}" ... ローカル環境へ接続するので不要
become: yes
become_user: root
roles:
- role-common
- role-web
- role-db
group_vars/localhost.yml
title: "local: Apache+PHP+MySQL"
#ssh: ... ローカル環境へ接続するので不要
# username: vagrant ... ローカル環境へ接続するので不要
web:
username: vagrant
■Ansibleを実行
$ cd /var/code/apache_php_mysql_for_local
$ ansible-playbook site.yml --connection=local ... ローカル環境へ実行(「--connection=local」が無ければ 127.0.0.1 へ認証しようとしてしまう)
以下でアクセスできる
http://192.168.33.10/
■MySQLを使用する場合
AnsibleでMySQLをインストール済みでユーザは未作成の場合、以下のようにして作成できる
# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON test.* TO webmaster@localhost IDENTIFIED BY 'gV0+8k6BM#z7';
mysql> FLUSH PRIVILEGES;
mysql> CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4; … データベースも作成する場合
mysql> QUIT;
# mysql -u webmaster -p
以下で動作確認できる
# vi /var/www/test/html/mysql.php
■バーチャルホストを使用する場合(もちろんAnsibleで操作するのも有効)
C:/windows/System32/drivers/etc/hosts を編集
<?php
try {
$pdo = new PDO(
'mysql:dbname=test;host=localhost',
'webmaster',
'gV0+8k6BM#z7'
);
$stmt = $pdo->query('SELECT NOW() AS now;');
$data = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<p>" . $data['now'] . "</p>\n";
$pdo = null;
} catch (PDOException $e) {
exit($e->getMessage());
}
192.168.33.10 vagrant.local
192.168.33.10 test.vagrant.local
# vi /etc/httpd/conf.d/virtualhost.conf
■その他
以下は必要に応じて手動で実行する方がスムーズか
・yum update
・「root宛メールを転送」
・SSHのユーザ作成
・MySQLのデータベース&ユーザ作成
■参考
ansibleで自分自身(localhost)を制御する場合はlocalで - Qiita
https://qiita.com/hotta/items/47a432edacdfbd6a3e3e<VirtualHost *:80>
ServerName vagrant.local
DocumentRoot /var/www/test/html
<Directory "/var/www/test/html">
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName test.vagrant.local
DocumentRoot /var/www/vhosts/test/html
<Directory "/var/www/vhosts/test/html">
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# systemctl restart httpd
# vi /var/www/vhosts/test/html/index.php … もしくは C:\vagrant\centos7\code\test\html\index.php を編集