Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automate WordPress deployment with WordMove

088b1b43ff5dd64aa0f000da9e9da777?s=47 wtnabe
August 20, 2016

Automate WordPress deployment with WordMove

WordMoveでWordPressサイトの自動deployができるよ。注意点と応用の話も。

088b1b43ff5dd64aa0f000da9e9da777?s=128

wtnabe

August 20, 2016
Tweet

Transcript

  1. WordMoveで WordPressサイトの ⾃動deploy @wtnabe Kanazawa.rb meetup #48 2016-08-20 (Sat) at

    IT Plaza MUSASHI
  2. ⾃⼰紹介 (ry

  3. お品書き 悲しみのWordPress WordMove WordMove利⽤上の注意 応⽤ まとめ

  4. 悲しみのWordPress

  5. WordPress使ってますか? 〜 悲しみに溢れたde facto standard 〜

  6. 悲しみ その1 環境構築がレガシー過ぎる Composerもフレームワークもない世界 DBパスワードも⽣書きが基本 どうやってバージョン管理しろと どうやってバージョン管理しろと

  7. 悲しみ その2 コンテンツがなぜかURL prefix⼊り ローカルの環境はあくまでベツモノ DBを書き換えるかhosts頼み 本番環境でテストするのが結局早い 本番環境でテストするのが結局早い

  8. 悲しみ その3 ファントムファイル前提のDB設計 『SQLアンチパターン』11章 deploy時にはファイルとDB両⽅必要 メンテナンスdownを避けがたい

  9. 悲しみ その4 HTML混⼊前提のDB設計

  10. 悲しみ その5 グローバルな状態に依存したコード群

  11. などなど まだあるけどdeployの話から離れるので割愛

  12. WordMove

  13. Wordmove by welaika http://welaika.github.io/wordmove/ Capistrano for Wordpress

  14. 特徴 みんな⼤好きRuby製 ftp + photocopier gem || ssh + rsync

  15. できること 複数のWordPress環境間で同期を⾏う 同期コンテンツの限定 DBの接続 / dump / restoreの⾃動化 URL prefixの⾃動書き換え

    の⾃動書き換え
  16. FTP support is planned to be discontinued

  17. 環境構築の問題以外は 解決するのでは?

  18. よい点 DVCSっぽい語彙(push, pull) Rubyはremoteには不要 全体、テーマ、 全体、テーマ、DBなど個別に同期可能 など個別に同期可能

  19. 悪い点 外部コマンド(lftp, rsync)が必要 WordMove単体では動かない あくまでWordPressが(WordMoveか ら⾒て)localhostに必要 同期にしか使えない DBの⾃動backupには使えない

  20. やること YAMLでWordPress環境を定義(Movefile) ホスト名、DB接続情報、除外対象 これをホストの数だけ増やせばよい erbサポートはあるけど後述

  21. 利⽤例 wordmove push -t -e staging localからstagingへthemesを同期 wordmove pull --all

    -e production productionからlocalへすべて同期
  22. WordMove利⽤上の注意

  23. 問題 v2.0時点 1. Movefileに秘密情報が⼊る 2. wordpress_pathが絶対パス 3. うっかりpush --allが怖い

  24. 回避策 1. ⾃前でDotenv ファイル名Movefile.erbは避ける 2. symbolic linkとか 3. ⾃前で定型化(1も合わせてRakeとか)

  25. 応⽤

  26. CIからthemesだけdeploy

  27. bundle installが必要

  28. deployスクリプトが必要

  29. localの準備 wordpress_pathの補正 sudo ln -s /path /var/www/wordpress wordmove実⾏時のパスの補正 cd /var/www/wordpress

  30. wordmove push -t -e #{env}

  31. remoteの準備 need ssh connection ssh host command cd /var/www/wordpress &&

    wp-cli ex) Nginx Cache Controller
  32. まとめ

  33. 結構便利 秘密情報の扱いには注意が必要 Capistranoを名乗るには弱い hookもrollbackもない 最後はWordPressの制限がつらい