Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automate WordPress deployment with WordMove
Search
wtnabe
August 20, 2016
Programming
1
450
Automate WordPress deployment with WordMove
WordMoveでWordPressサイトの自動deployができるよ。注意点と応用の話も。
wtnabe
August 20, 2016
Tweet
Share
More Decks by wtnabe
See All by wtnabe
Ruby de Wasm
wtnabe
0
17
Cloud Native Buildpacksって結局どうなの?
wtnabe
0
15
Decoupled System with Turbo Frame
wtnabe
1
63
join-kanazawarb-or-7years-passed-since-it-was-borned
wtnabe
0
730
let-me-edit-with-editor
wtnabe
0
280
google-photos-and-storage-and-rclone
wtnabe
0
380
one case of how to begin vuejs
wtnabe
2
410
Kanazawa.rb meetup #56 Coderetreat Intro
wtnabe
0
400
lightweight authenticity of microservices
wtnabe
0
420
Other Decks in Programming
See All in Programming
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
630
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
EMになってからチームの成果を最大化するために取り組んだこと/ Maximize team performance as EM
nashiusagi
0
100
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.3k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
990
subpath importsで始めるモック生活
10tera
0
320
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
120
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
200
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
CSC509 Lecture 11
javiergs
PRO
0
180
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Optimizing for Happiness
mojombo
376
70k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Automating Front-end Workflow
addyosmani
1366
200k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Agile that works and the tools we love
rasmusluckow
327
21k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
What's in a price? How to price your products and services
michaelherold
243
12k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Transcript
WordMoveで WordPressサイトの ⾃動deploy @wtnabe Kanazawa.rb meetup #48 2016-08-20 (Sat) at
IT Plaza MUSASHI
⾃⼰紹介 (ry
お品書き 悲しみのWordPress WordMove WordMove利⽤上の注意 応⽤ まとめ
悲しみのWordPress
WordPress使ってますか? 〜 悲しみに溢れたde facto standard 〜
悲しみ その1 環境構築がレガシー過ぎる Composerもフレームワークもない世界 DBパスワードも⽣書きが基本 どうやってバージョン管理しろと どうやってバージョン管理しろと
悲しみ その2 コンテンツがなぜかURL prefix⼊り ローカルの環境はあくまでベツモノ DBを書き換えるかhosts頼み 本番環境でテストするのが結局早い 本番環境でテストするのが結局早い
悲しみ その3 ファントムファイル前提のDB設計 『SQLアンチパターン』11章 deploy時にはファイルとDB両⽅必要 メンテナンスdownを避けがたい
悲しみ その4 HTML混⼊前提のDB設計
悲しみ その5 グローバルな状態に依存したコード群
などなど まだあるけどdeployの話から離れるので割愛
WordMove
Wordmove by welaika http://welaika.github.io/wordmove/ Capistrano for Wordpress
特徴 みんな⼤好きRuby製 ftp + photocopier gem || ssh + rsync
できること 複数のWordPress環境間で同期を⾏う 同期コンテンツの限定 DBの接続 / dump / restoreの⾃動化 URL prefixの⾃動書き換え
の⾃動書き換え
FTP support is planned to be discontinued
環境構築の問題以外は 解決するのでは?
よい点 DVCSっぽい語彙(push, pull) Rubyはremoteには不要 全体、テーマ、 全体、テーマ、DBなど個別に同期可能 など個別に同期可能
悪い点 外部コマンド(lftp, rsync)が必要 WordMove単体では動かない あくまでWordPressが(WordMoveか ら⾒て)localhostに必要 同期にしか使えない DBの⾃動backupには使えない
やること YAMLでWordPress環境を定義(Movefile) ホスト名、DB接続情報、除外対象 これをホストの数だけ増やせばよい erbサポートはあるけど後述
利⽤例 wordmove push -t -e staging localからstagingへthemesを同期 wordmove pull --all
-e production productionからlocalへすべて同期
WordMove利⽤上の注意
問題 v2.0時点 1. Movefileに秘密情報が⼊る 2. wordpress_pathが絶対パス 3. うっかりpush --allが怖い
回避策 1. ⾃前でDotenv ファイル名Movefile.erbは避ける 2. symbolic linkとか 3. ⾃前で定型化(1も合わせてRakeとか)
応⽤
CIからthemesだけdeploy
bundle installが必要
deployスクリプトが必要
localの準備 wordpress_pathの補正 sudo ln -s /path /var/www/wordpress wordmove実⾏時のパスの補正 cd /var/www/wordpress
wordmove push -t -e #{env}
remoteの準備 need ssh connection ssh host command cd /var/www/wordpress &&
wp-cli ex) Nginx Cache Controller
まとめ
結構便利 秘密情報の扱いには注意が必要 Capistranoを名乗るには弱い hookもrollbackもない 最後はWordPressの制限がつらい