AMIMOTOのWordPressの初期セットアップを自動化する

AMIMOTOをプロビジョニングしてそのURLにアクセスすると以下のようにインスタンスIDの入力画面が出ます。

これはなぜかというと、セレブなユーザーの皆さんがプロビジョニング後にそのまんま忘れてしまって放置してしまうと、偶然これを見つけた第三者がWordPressを乗っ取ってしまうことができるので、それを防ぐための措置としてこういう仕様になっています。

実際、グーグルで検索するとインストール途中で放置されてるWordPressってまあまあ出てくるんです。。。(苦笑)

 

AMIMOTOのセットアップを自動化する

それでもAMIMOTOを使えばNginx+HHVMな環境が一発で手に入るので、自力でこれらの作業をやるよりは確実に楽です。

だけどもっと楽をしたいという場合にはWP-CLIを使ったシェルスクリプト手元に用意しておくと、インスタンスIDの入力からプラグインやテーマのインストール、その他もろもろの設定を一発で完了させることができます。

このシェルスクリプトはあくまでもサンプルですが以下のようなことをしています。

  • 6行目 – nginxやphp-fpmの権限をec2-userに変更
  • 9-15行目 – WordPressのセットアップ
  • 18-19行目 – WordPressプラグイン「Contact Form 7」をインストール&有効化
  • 22-23行目 – WordPressテーマ「twentyfifteen」のインストール&有効化
  • 26-27行目 – パーマリンク設定の変更
  • 30-31行目 – サイトの説明文を「Powered by AMIMOTO!」に変更
  • 34行目 – インスタンスIDを入力するためのUIを削除して無効化

 

このシェルスクリプトをローカルに保存して、メールアドレスやユーザー名、プラグインや設定等をお好みに応じて変更します。

 

修正が終わったらAMIMOTOをプロビジョニングしましょう。

HHVMのAMIMOTOを使用してテストしているのでとりあえず試すならそちらをどうぞ。

WordPress powered by AMIMOTO (HHVM)

 

しばらく待つとプロビジョニングが完了して、ブラウザでアクセスしたら冒頭のスクリーンショットの画面が表示されます。

そうしたら以下のようなコマンドをローカルマシンから発射します。

(インスタンスIDを入力する必要はありません。)

cat wp-setup.sh | ssh ec2-user@xxx.xxx.xxx.xxx bash

 wp-setup.shというファイル名は先ほどローカルで作ったシェルスクリプトのファイル名です。

xxx.xxx.xxx.xxxの部分はAMIMOTOマシンのIPアドレスにお置き換えてください。

 

シェルスクリプトが無事に成功したら、セットアップは完了です。

上のサンプルスクリプト通りなら、ユーザー名がadmin、パスワードはインスタンスIDでWordPressにログインできます。

プラグインやテーマ、その他の設定も期待通りか確認してみてください。

 

シェルスクリプトをローカルに置いとくのも面倒くさいという場合は、以下のようにcurlでやってしまうこともできます。

この場合、パスワードはインスタンスIDを使ってるのでちょっと間は大丈夫だと思いますが、早めに変更したほうがいいでしょう。

curl -l https://gist.githubusercontent.com/miya0001/6b5a41ee555ea81d56e6/raw/7a2aca311ecc80a42d6dc050801baf31e3eb470b/wp-setup.sh | bash

 

 

この方法は最初はシェルスクリプトを書く必要があって、そこはめんどくさいのですが、WordPressサイトを複数立ち上げるときには常に同じ構成で一発起動しますので、コードで構成を管理できるという意味でとてもいいんじゃないかと思います。

 

と、ここまで書いて気がついたんですが、これVCCWのsite.yamlを使えるようにしたらVagrantとAMIMOTOと同じ構成のWordPressが簡単にゲットできてWordPress as a Codeになるじゃないか。時間があるときに挑戦してみます。

 

というわけでAMIMOTOにプリインストールされているWP-CLIを使えば大体のことは自動化できるので超便利です。