LoginSignup
1
2

More than 5 years have passed since last update.

AnsibleでWordpress操作 ②初期構築編

Last updated at Posted at 2017-08-11

AnsibleでWordpress操作シリーズ

  1. wp-cliインストール編
  2. 初期構築編

関連記事

wp-cli コマンド一覧(随時追記)

やりたかったこと

  • Wordpressのインストール
  • Wordpressの初期設定
  • Wordpress用DBの作成
  • GUIを使わずに黒い画面でコマンドを「ッターーン!」してかっこつけたい

やったこと

前提

  • CIサーバー(ansible実行サーバー)構築済み
  • CMSサーバー(wp-cli実行サーバー)構築済み
  • Ansibleインストール済み
  • MySQLインストール済み
  • Apacheインストール済み
  • PHPインストール済み
  • wp-cliインストール済み
  • 各サーバーへのSSH接続設定済み

${~}は各環境に合わせて値を設定してください。

作業フロー

  1. 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でやってみようと思います。

じゃあの。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2