Memo

メモ > サーバ > 各論: Ansible > ローカルで検証

■ローカルで検証
自分自身に対してAnsibleを実行する方法 Ansible自体のインストールと設定は手動で行う必要があるが、それ以降はコード化できる ■Vagrant起動 Vagrantは、通常の方法で1台だけ起動すれば十分 ■Ansibleをインストール
$ sudo su - # yum -y install ansible # vi /etc/ansible/hosts … ファイルの最後に追記
[localhost] 127.0.0.1
# exit $ ansible localhost -m ping --connection=local ... ローカル環境へPING(「--connection=local」が無ければ 127.0.0.1 へ認証しようとする)
■Playbookの修正 ローカル接続用に、以下のように修正しておく site.yml
- 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
<?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()); }
■バーチャルホストを使用する場合(もちろんAnsibleで操作するのも有効) C:/windows/System32/drivers/etc/hosts を編集
192.168.33.10 vagrant.local 192.168.33.10 test.vagrant.local
# vi /etc/httpd/conf.d/virtualhost.conf
<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 を編集
■その他 以下は必要に応じて手動で実行する方がスムーズか ・yum update ・「root宛メールを転送」 ・SSHのユーザ作成 ・MySQLのデータベース&ユーザ作成 ■参考 ansibleで自分自身(localhost)を制御する場合はlocalで - Qiita https://qiita.com/hotta/items/47a432edacdfbd6a3e3e

Advertisement