WordPressのインストールをAnsibleでやってみた

WordPressのインストールをAnsibleでやってみた

Clock Icon2017.02.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、岩本です。 もうすっかり2月ですね。 1月はBlogが書けておらず、滑り込みで1月31日に書ければと思ったのですが、日をまたいでしまいました。残念。

WordPressのインストールをAnsibleでやってみました

さて、よく使われるCMSの中にWordpressがありますが、ファイルを展開してブラウザからのウィザードで、とても簡単に利用開始ができます。 それでも(多少の)手間がかかります。 そこで、WordpressのインストールをAnsible化してみました。

hosts: all
became: yes
tasks:
- name: Install wp-cli
get_url:
url: https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
dest: /usr/local/bin/wp
mode: 0755

- name: Download wp core
shell: /usr/local/bin/wp core download --locale=jp --path="WORDPRESS-PATH"
become: yes
become_user: apache

- name: Generate wp config
shell: /usr/local/bin/wp core config --dbname="DBNAME" --dbuser="DBUSERNAME" --dbpass="DBPASS" --dbhost="DBHOST" --path="WORDPRESS-PATH"
become: yes
become_user: apache

- name: Install wp
shell: /usr/local/bin/wp core install --url="DOMAINNAME" --title="SITENAME" --admin_user="ADMINNAME" --admin_password="ADMINPASS" --admin_email="ADMIN-EMAIL" --path="WORDPRESS-PATH"
become: yes
become_user: apache

解説

WordPressのインストールをAnsibleから行うには、コマンドラインでの操作が必要になります。 コマンドラインでのインストールに関して詳しくはこちらをご覧ください。

  • コマンドラインでのインストールを行うために、まずwp-cliを用意します。
- name: Install wp-cli
get_url:
url: https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
dest: /usr/local/bin/wp
mode: 0755
  • wp-cliのインストールが完了すれば、順にcoreのダウンロード、wp-configの生成、インストールと順に進めていきます。 この際、wp-clirootユーザーでの実行が行えません。 当サンプルでは行頭でbecame: yesとしているため、Taskの実行はrootユーザーにて実行されます。 また、Ansibleで接続している以外のユーザーでTaskを実行を行いたい場合があると思います。
- name: Install wp
shell:
- - - -
become: yes
become_user: apache

そこで、タスク内にもbecome: yes become_user: apache と指定することで、タスク単位でのユーザーの切り替えが可能です。 今回はApacheユーザーにてTaskを実行しています。

OSのセットアップ、ミドルウェアのインストールなどを行うAnsibeleと組み合わせることで、 Wordpressのインストールまでが一度に完結させることも可能かと思います。何かに活用いただけると幸いです。

今日のわさび様

さいきん「わさびちゃん大きくなった?」と聞かれる機会が多くなりましたので、単三電池とわさびちゃんの比較をご覧ください。

16122447_1447876915223696_6082904783381856256_n

今日もわさびちゃんは、すくすく育っています。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.