×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
WordMoveで WordPressサイトの ⾃動deploy @wtnabe Kanazawa.rb meetup #48 2016-08-20 (Sat) at IT Plaza MUSASHI
Slide 2
Slide 2 text
⾃⼰紹介 (ry
Slide 3
Slide 3 text
お品書き 悲しみのWordPress WordMove WordMove利⽤上の注意 応⽤ まとめ
Slide 4
Slide 4 text
悲しみのWordPress
Slide 5
Slide 5 text
WordPress使ってますか? 〜 悲しみに溢れたde facto standard 〜
Slide 6
Slide 6 text
悲しみ その1 環境構築がレガシー過ぎる Composerもフレームワークもない世界 DBパスワードも⽣書きが基本 どうやってバージョン管理しろと どうやってバージョン管理しろと
Slide 7
Slide 7 text
悲しみ その2 コンテンツがなぜかURL prefix⼊り ローカルの環境はあくまでベツモノ DBを書き換えるかhosts頼み 本番環境でテストするのが結局早い 本番環境でテストするのが結局早い
Slide 8
Slide 8 text
悲しみ その3 ファントムファイル前提のDB設計 『SQLアンチパターン』11章 deploy時にはファイルとDB両⽅必要 メンテナンスdownを避けがたい
Slide 9
Slide 9 text
悲しみ その4 HTML混⼊前提のDB設計
Slide 10
Slide 10 text
悲しみ その5 グローバルな状態に依存したコード群
Slide 11
Slide 11 text
などなど まだあるけどdeployの話から離れるので割愛
Slide 12
Slide 12 text
WordMove
Slide 13
Slide 13 text
Wordmove by welaika http://welaika.github.io/wordmove/ Capistrano for Wordpress
Slide 14
Slide 14 text
特徴 みんな⼤好きRuby製 ftp + photocopier gem || ssh + rsync
Slide 15
Slide 15 text
できること 複数のWordPress環境間で同期を⾏う 同期コンテンツの限定 DBの接続 / dump / restoreの⾃動化 URL prefixの⾃動書き換え の⾃動書き換え
Slide 16
Slide 16 text
FTP support is planned to be discontinued
Slide 17
Slide 17 text
環境構築の問題以外は 解決するのでは?
Slide 18
Slide 18 text
よい点 DVCSっぽい語彙(push, pull) Rubyはremoteには不要 全体、テーマ、 全体、テーマ、DBなど個別に同期可能 など個別に同期可能
Slide 19
Slide 19 text
悪い点 外部コマンド(lftp, rsync)が必要 WordMove単体では動かない あくまでWordPressが(WordMoveか ら⾒て)localhostに必要 同期にしか使えない DBの⾃動backupには使えない
Slide 20
Slide 20 text
やること YAMLでWordPress環境を定義(Movefile) ホスト名、DB接続情報、除外対象 これをホストの数だけ増やせばよい erbサポートはあるけど後述
Slide 21
Slide 21 text
利⽤例 wordmove push -t -e staging localからstagingへthemesを同期 wordmove pull --all -e production productionからlocalへすべて同期
Slide 22
Slide 22 text
WordMove利⽤上の注意
Slide 23
Slide 23 text
問題 v2.0時点 1. Movefileに秘密情報が⼊る 2. wordpress_pathが絶対パス 3. うっかりpush --allが怖い
Slide 24
Slide 24 text
回避策 1. ⾃前でDotenv ファイル名Movefile.erbは避ける 2. symbolic linkとか 3. ⾃前で定型化(1も合わせてRakeとか)
Slide 25
Slide 25 text
応⽤
Slide 26
Slide 26 text
CIからthemesだけdeploy
Slide 27
Slide 27 text
bundle installが必要
Slide 28
Slide 28 text
deployスクリプトが必要
Slide 29
Slide 29 text
localの準備 wordpress_pathの補正 sudo ln -s /path /var/www/wordpress wordmove実⾏時のパスの補正 cd /var/www/wordpress
Slide 30
Slide 30 text
wordmove push -t -e #{env}
Slide 31
Slide 31 text
remoteの準備 need ssh connection ssh host command cd /var/www/wordpress && wp-cli ex) Nginx Cache Controller
Slide 32
Slide 32 text
まとめ
Slide 33
Slide 33 text
結構便利 秘密情報の扱いには注意が必要 Capistranoを名乗るには弱い hookもrollbackもない 最後はWordPressの制限がつらい