Ansibleを使って新規サーバーにwordpressを移そうとしたら躓いた話

はじめに

以前、  WordPressでBackWPupを使ってバックアップを取る方法  でバックアップの仕方を紹介したが、サーバー移行のときに手動で新規サーバーに必要なものをインストールしていては面倒である
そこで今回はAnsibleを使用してみた
しかし、サーバー移行を行おうとしたら2点、躓いた点があったので紹介していく

WordPressのダウンロード

最初shellコマンドを用いて以下の様にWordPressをダウンロードしようとしたところ、ダウンロードしたりしなかったりと不安定であった

roles/wordpress/tasks/main.yml

略
24 - name: Install WordPress
25   shell:
26    mkdir /var/www/wordpress;
27    cd /usr/local/src;
28    wget https://wordpress.org/latest.tar.gz;
略

そこで、以下のように変えたところ安定して動作するようになった
こちらのほうがmain.ymlが短く済むので見やすくもなる

roles/wordpress/tasks/main.yml

- name: Download wordpress
  get_url: url=https://wordpress.org/latest.tar.gz dest=/usr/local/src

WordPressの解凍と移動

ダウンロードしてきたWordPressの解凍と移動を以下の方法で行おうとしていたがそもそも解凍されなかった
どうやら、これは公式によるとtarではなくunarchiveを使用しないといけないとのことであった

roles/wordpress/tasks/main.yml

略
29    tar -zxvf latest.tar.gz;
30    cp wordpress/* /var/www/wordpress/;
略

そこで以下のように書き換えたら上手く動いた

roles/wordpress/tasks/main.yml

- name: Install WordPress
  unarchive:
      src=/usr/local/src/latest.tar.gz dest=/var/www

おわりに

shellコマンドのほうが使い慣れているためshellコマンドを優先的に使いがちだが、
Ansibleを使う際はなるべくshellコマンドは使わない方が安全なようである