chef-soloでopscode-cookbooks/wordpressを使って日本語WordPressをインストールした
WordPressをインストールしようと思ったんですが、あんまり触ったことないのでChefのコミュニティクックブックで入れてみました。
そのままやると英語版が入って、意外と苦戦したので、メモを残しておきます。
最終的な簡単な手順
以下の手順をそのままローカルPCで実行すればWordPress日本語版が入るChefリポジトリを作りました。
結局のところJSONファイル作っただけですが、せっかくなのでGithubに上げておきます。
PHP、Apache、MySQL、WordPressが全部入ります。なお、Ubuntu 12.04でしか試していません。
https://github.com/atskimura/wordpress-ja-chef-repo
前提
WordPressセットアップ対象のサーバーにroot(もしくはパスワードなしでsudoできるユーザ)でSSH公開鍵認証できる。
準備
$ git clone https://github.com/atskimura/wordpress-ja-chef-repo.git $ cd wordpress-chef-repo $ bundle install --path=vendor/bundle $ bundle exec berks --path=cookbooks
設定変更
MySQLのパスワードを変更したい場合は、nodes/example.json
の内容を書き換えてください。
その他の設定は、opscode-cookbooks/wordpressを見てください。
インストール実行
$ bundle exec knife solo bootstrap root@<対象サーバー> nodes/example.json -i <SSH秘密鍵>
あとはhttp://<対象サーバー>
にアクセスして、サイトタイトルや管理者の作成とかしたらできあがり。
上のリポジトリの作り方
別にそう難しくはないです。
以下の手順は全てローカルPCでの作業です。
chef-solo、knife-solo、berkshelfをインストールします。
以下の手順でwordpress-chef/vendor/bundleにインストールされます。
$ mkdir wordpress-chef $ cd wordpress-chef/ $ vim Gemfile source 'https://rubygems.org' gem "chef" gem "knife-solo" gem 'berkshelf' $ bundle install --path=vendor/bundle
Chefリポジトリの雛形を作ります。
$ bundle exec knife solo init
Berksfileを作成します。
$ vim Berksfile
WordPress用のクックブックopscode-cookbooks/wordpressを使うよう以下の内容をBerksfileに記述します。
site :opscode cookbook 'wordpress'
cookbooksディレクトリにcookbookをインストールします。依存するmysqlやapache2のcookbookも一緒にインストールされます。
$ bundle exec berks --path=cookbooks
WordPressセットアップ対象サーバーにChef Clientをインストールします。
rootユーザでなくてもsudoできるユーザなら構いません。
$ bundle exec knife solo prepare root@TARGET_SERVER -i <SSH秘密鍵>
実行すると、nodes/TARGET_SERVER.json
もできあがります。
このJSONファイルにWordPressクックブックの設定をします。
$ vim nodes/TARGET_SERVER.json
指定しないと英語版WordPressが入ってしまうので、WordPress › 日本語から日本語版WordPress最新版のダウンロードURLをコピーして指定します。パスワードは適時変更してください。
{ "run_list":[ "wordpress" ], "mysql": { "server_root_password": "mysqlrootpassword", "server_repl_password": "mysqlrootpassword", "server_debian_password": "mysqlrootpassword" }, "wordpress":{ "url":"http://ja.wordpress.org/wordpress-3.8.1-ja.tar.gz", "db":{ "pass":"mysqlwppassword" }, "languages":{ "lang":"ja" } } }
これでインストールを実行できます。
$ bundle exec knife solo cook root@TARGET_SERVER -i <SSH秘密鍵>
おわりに
まあ一応入ったけど、vsftpd入れないとWordPressのアップデートが動かなかったり、staticpress-s3を使おうとしたらPHPのバージョンが古くてバグにはまったりと、その後はChefでやるのが面倒くさくなって手でやってしまいました。。。