Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Automate WordPress deployment with WordMove
Search
wtnabe
August 20, 2016
Programming
550
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Automate WordPress deployment with WordMove
WordMoveでWordPressサイトの自動deployができるよ。注意点と応用の話も。
wtnabe
August 20, 2016
Transcript
33 slides
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の制限がつらい
More Decks by wtnabe
See All by wtnabe
新しいフロントプロセスとドキュメントフォーマットを考えてみた
wtnabe
0
55
Rubyでもモノリポしたい - 調査、おさわり編 -
wtnabe
0
90
Ruby de Railway Oriented Programming
wtnabe
0
140
Bindanのススメ
wtnabe
0
83
そのオブジェクト、何を保証してくれますか? - GuideRailのススメ -
wtnabe
0
88
Effective Jekyll
wtnabe
0
110
5 min Jekyll/Liquid Plugin cooking
wtnabe
0
78
Ruby de Wasm
wtnabe
0
110
Cloud Native Buildpacksって結局どうなの?
wtnabe
0
98
Other Decks in Programming
See All in Programming
LLM 101: Exploring LLMs, Starting with Tokens.
dalinaum
0
110
LLM 101
dalinaum
0
480
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
Railsバージョンを4倍にした話
optim
0
1k
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
180
仕様駆動開発入門 (何を作るかを先に決めて渡す) | 目指せ Kiro マスター 05
inariku
PRO
2
140
Spec-driven Development with AI
simas
PRO
0
2.3k
止まらない比較を止める — 余帰納法で無限ストリームを比べる
tarao
0
100
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
300
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
6
5.7k
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
280
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
320
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
790
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
690
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
350
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
2
3.8k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Accessibility Awareness
sabderemane
1
300
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
480