AnsibleでWordpress操作シリーズ
- wp-cliインストール編
- 初期構築編
関連記事
やりたかったこと
- Wordpressのインストール
- Wordpressの初期設定
- Wordpress用DBの作成
GUIを使わずに黒い画面でコマンドを「ッターーン!」してかっこつけたい
やったこと
前提
- CIサーバー(
ansible
実行サーバー)構築済み - CMSサーバー(
wp-cli
実行サーバー)構築済み -
Ansible
インストール済み -
MySQL
インストール済み -
Apache
インストール済み -
PHP
インストール済み -
wp-cli
インストール済み - 各サーバーへのSSH接続設定済み
※ ${~}
は各環境に合わせて値を設定してください。
作業フロー
- Wordpressの初期構築
command
ansible-playbook -i inventory/production install-wordpress.yml
ディレクトリ構成
├── ansible.cfg
├── install-wordpress.yml
├── inventory
│ └── production
│ └── inventory
├── roles
│ ├── download-wordpress
│ │ └── tasks
│ │ └── main.yml
│ └── setup-wordpress
│ └── tasks
│ └── main.yml
└── vars
└── all.yml
Ansible構成ファイル
inventory
inventory/production/inventory
[ciservers]
${CIサーバーホスト}
[cmsservers]
${CMSサーバーホスト}
[all:vars]
ENV=production
vars
vars/all.yml
HTTPD:
DOCUMENT_ROOT_DIRECTORY: /var/www/html
WORDPRESS:
NAME: ${Wordpressディレクトリ名}
TITLE: ${サイト名}
LOCALE: ${言語}
DB:
NAME: ${使用DB名}
USER: ${ユーザー名}
PASSWORD: ${パスワード}
HOST: ${DBホスト}
ADMIN:
NAME: ${管理者名}
PASSWORD: ${パスワード}
MAIL_ADDRESS: ${メールアドレス}
playbook
install-wordpress.yml
- hosts: cmsservers
roles:
- download-wordpress
- setup-wordpress
vars_files:
- vars/all.yml
tasks
role/install-wordpress/tasks/main.yml
- name: "Create Directory"
become: yes
file:
dest={{ HTTPD.DOCUMENT_ROOT_DIRECTORY }}/{{ WORDPRESS.NAME }}
owner=apache
group=apache
state=directory
mode=755
tags:
- always
- name: WordPress Core Install
shell: |
sudo -u apache wp core download \
--locale={{WORDPRESS.LOCALE}}
args:
chdir: "{{ HTTPD.DOCUMENT_ROOT_DIRECTORY }}/{{ WORDPRESS.NAME }}"
role/setup-wordpress/tasks/main.yml
- name: Setup Wordpress Config
shell: |
sudo -u apache wp core config \
--dbname={{ WORDPRESS.DB.NAME }} \
--dbuser={{ WORDPRESS.DB.USER }} \
--dbpass={{ WORDPRESS.DB.PASSWORD }} \
--dbhost={{ WORDPRESS.DB.HOST }} \
--dbprefix=wp
args:
chdir: "{{ HTTPD.DOCUMENT_ROOT_DIRECTORY }}/{{ WORDPRESS.NAME }}"
- name: Install Wordpress
shell: |
sudo -u apache wp core install \
--title={{ WORDPRESS.TITLE }} \
--admin_user={{ WORDPRESS.ADMIN.NAME }} \
--admin_password={{ WORDPRESS.ADMIN.PASSWORD }} \
--admin_email={{ WORDPRESS.ADMIN.MAIL_ADDRESS }} \
--url={{ WORDPRESS.URL }}/{{ WORDPRESS.NAME }}
args:
chdir: "{{ HTTPD.DOCUMENT_ROOT_DIRECTORY }}/{{ WORDPRESS.NAME }}"
終わりに
これでWordpressのルートURLにアクセスすると、例のデフォルトページが表示されます。
もちろん、管理アプリにもログインすることが出来ます。
wp-cliで初期設定をすることで、何を設定したかがファイルに残るのでパスワードを忘れてもすぐに確認することが出来ます♪
次は、パーマリンク
の変更やカテゴリ
、プラグイン
、テーマ
の追加/設定等の細かい設定をAnsible
+wp-cli
でやってみようと思います。
じゃあの。