さて、ミドルウェアのインストールとなるけれど、その前にsshのポート変更をしたので、その確認だなぁと。
$ sudo ssh -p 2345 -i /etc/ansible/conoha-test/.ssh/conoha-test_ansible_ras conoha@conoha-test Enter passphrase for key '/etc/ansible/conoha-test/.ssh/conoha-test_ansible_ras': [conoha@conoha-test ~]$ exit $
と、ssh接続ができることを確認したら、rootのsshconfigを変更
$ sudo vi /root/.ssh/config Port 2345 ←"22"を"2345"に変更
そして接続確認。
$ sudo ssh -l conoha conoha-test Enter passphrase for key '/etc/ansible/conoha-test/.ssh/conoha-test_ansible_ras': [conoha@conoha-test ~]$ exit $
こんな感じでしょうか。
あと、Firewalldにsshサービスが残っているのでそれを削除して、再起動を実施のPlaybookがこちら。
$ sudo vi /etc/ansible/conoha-test/02-sshremove-reboot.yml
- hosts: conoha-test
vars_files:
- /etc/ansible/conoha-test/vars/initial.yml
become: yes
remote_user: conoha
tasks:
- name: ssh削除
firewalld:
permanent=true
service=ssh
state=disabled
- name: 再起動
shell: sleep 2s && shutdown -r now
async: 1
poll: 0
- name: Server再起動開始待機
local_action: wait_for host={{ inventory_hostname }} port={{ sshport }} state=stopped
become: no #ローカルではsudo不要なため
- name: Server起動待機
local_action: wait_for host={{ inventory_hostname }} port={{ sshport }} delay=30
become: no #ローカルではsudo不要なため
で、これを実行。
$ sudo ansible-playbook /etc/ansible/conoha-test/02-sshremove-reboot.yml -K SUDO password: PLAY [conoha-test] ************************************************************* TASK [setup] ******************************************************************* Enter passphrase for key '/etc/ansible/conoha-test/.ssh/conoha-test_ansible_ras':
と、conohaのパスワードを入力して、sshキーのパスワードを入力すれば、実行されるでしょう。
で、いよいよミドルウェアのインストールなんだけれど、先にテンプレートファイルを作成しておく。
・nginx
$ vi cat /etc/ansible/conoha-test/templete/default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
・mariadb
$ sudo vi /etc/ansible/conoha-test/templete/my.cnf.j2 [client] user=root password=%tgbNhy6
と、nginxとmariadb用のテンプレートを作成しておきます。
そして、nginxとmariadbとPHP7のインストールPlaybookがこちらになります。
$ sudo vi /etc/ansible/conoha-test/03-middleware.yml
- hosts: conoha-test
vars:
become: yes
remote_user: conoha
tasks:
- name: nginxリポジトリ追加
yum: name=http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm state=present
- name: mainline変更
lineinfile:
dest=/etc/yum.repos.d/nginx.repo
regexp="baseurl=http://nginx.org/packages/centos/7/"
line="baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/"
backrefs=yes
- name: nginxインストール
yum: name=nginx state=present enablerepo=nginx
- name: firewallにhttp(80)を追加
firewalld:
permanent=true
service=http
state=enabled
immediate=true
- name: nginx起動
service: name=nginx state=started enabled=yes
- name: mariadbリポジトリ追加
lineinfile:
dest=/etc/yum.repos.d/mariadb.repo
create=yes
line="{{ item }}"
with_items:
- '# MariaDB 10.1 CentOS repository list - created 2016-01-06 10:34 UTC'
- '# http://mariadb.org/mariadb/repositories/'
- '[mariadb]'
- 'name = MariaDB'
- 'baseurl = http://yum.mariadb.org/10.1/centos7-amd64'
- 'gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB'
- 'gpgcheck=1'
- name: mariadbインストール
yum: name={{ item }} state=present enablerepo=mariadb
with_items:
- mariadb-server
- mariadb
- mariadb-devel
- mariadb-libs
- MySQL-python
- name: server.cnf確認
shell: grep "character-set-server=utf8mb4" /etc/my.cnf.d/server.cnf
register: servercnf_result
changed_when: false
failed_when: false
- name: server.cnf設定
lineinfile:
dest=/etc/my.cnf.d/server.cnf
backrefs=yes
regexp="\[server\]"
line="[server]\ncharacter-set-server=utf8mb4\nlog-bin=mariadb-bin"
when: servercnf_result.stdout.find("character-set-server=utf8mb4") == -1
- name: client.cnf確認
shell: grep "default-character-set=utf8mb4" /etc/my.cnf.d/client.cnf
register: clientcnf_result
changed_when: false
failed_when: false
- name: client.cnf設定
lineinfile:
dest=/etc/my.cnf.d/client.cnf
backrefs=yes
regexp="\[client\]"
line="[client]\ndefault-character-set=utf8mb4"
when: clientcnf_result.stdout.find("default-character-set=utf8mb4") == -1
- name: mariadb起動
service: name=mariadb state=running enabled=yes
- name: mariadbのrootパスワード変更
mysql_user:
name: root
host: localhost
password: '%tgbNhy6'
login_user: root
login_password: ''
check_implicit_admin: yes
- name: ~/.my.cnf を配置
template:
src: /etc/ansible/conoha-test/templete/my.cnf.j2
dest: "{{ lookup('env', 'HOME') }}/.my.cnf"
mode: 0600
- name: php7インストール
yum: name={{ item }} state=present enablerepo=remi-php70
with_items:
- php
- php-mysqlnd
- php-ldap
- php-gd
- php-xml
- php-bcmath
- php-pecl-mysql
- php-fpm
- name: php.iniのタイムゾーン設定
shell: sed -i 's/\;date\.timezone\ \=/date\.timezone\ \=\ Asia\/Tokyo/g' /etc/php.ini
- name: php.iniのpost_max_size設定
shell: sed -i "s/^post_max_size.*$/post\_max\_size\ \=\ 16M/g" /etc/php.ini
- name: php.iniのmax_execution_time設定
shell: sed -i "s/^max_execution_time.*$/max\_execution\_time\ \=\ 300/g" /etc/php.ini
- name: php.iniのmax_input_time設定
shell: sed -i "s/^max_input_time.*$/max\_input\_time\ \=\ 300/g" /etc/php.ini
- name: php-fpm設定(user)
lineinfile:
dest=/etc/php-fpm.d/www.conf
regexp="user = apache"
line="user = nginx"
state=present
backrefs=yes
- name: php-fpm設定(group)
lineinfile:
dest=/etc/php-fpm.d/www.conf
regexp="group = apache"
line="group = nginx"
state=present
backrefs=yes
- name: php-frm設定(socket)
lineinfile:
dest=/etc/php-fpm.d/www.conf
regexp="listen = 127.0.0.1:9000"
line="listen = /var/run/php-fpm/php-fpm.sock"
state=present
backrefs=yes
- name: php-frm設定(listen.owner)
lineinfile:
dest=/etc/php-fpm.d/www.conf
regexp=";listen.owner = nobody"
line="listen.owner = nginx"
state=present
backrefs=yes
- name: php-frm設定(listen.group)
lineinfile:
dest=/etc/php-fpm.d/www.conf
regexp=";listen.group = nobody"
line="listen.group = nginx"
state=present
backrefs=yes
- name: php-frm設定(request_terminate_timeout)
lineinfile:
dest=/etc/php-fpm.d/www.conf
regexp=";request_terminate_timeout = 0"
line="request_terminate_timeout = 300"
state=present
backrefs=yes
- name: php-fpm再起動
service: name=php-fpm state=restarted enabled=yes
- name: index.php作成
shell: echo " /usr/share/nginx/html/index.php
- name: default.conf転送
copy: src=/etc/ansible/conoha-test/templete/default.conf
dest=/etc/nginx/conf.d/default.conf
backup=yes
- name: nginx再起動
service: name=nginx state=restarted
と、こんな感じ。で、実行。
$ sudo ansible-playbook /etc/ansible/conoha-test/03-middleware.yml -K SUDO password: PLAY [conoha-test] ************************************************************* TASK [setup] ******************************************************************* Enter passphrase for key '/etc/ansible/conoha-test/.ssh/conoha-test_ansible_ras':
再度、conohaのパスワードを入力して、sshキーのパスワードを入力すれば、実行されるでしょう。
無事に完了したならば、Webブラウザより、
“http://conoha-test/”でnginxの動作確認と、
“http://conoha-test/index.php”でPHP7の動作確認をしておきましょう。
これで、ミドルウェアのインストールは完了。
そして最後に、いよいよWordpressのインストールです。
まとめページは、こちらです。
コメント