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
Deploying Perl with Fabric and Carton
Search
Anthony
September 25, 2012
Programming
2
1.6k
Deploying Perl with Fabric and Carton
Lightning talk on Fabric and Carton
Anthony
September 25, 2012
Tweet
Share
More Decks by Anthony
See All by Anthony
ØMQ and Perl
agj
1
140
Other Decks in Programming
See All in Programming
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
240
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
910
Create a website using Spatial Web
akkeylab
0
300
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
610
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
150
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
270
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
A2A プロトコルを試してみる
azukiazusa1
2
1.1k
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
570
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
230
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.5k
Fireside Chat
paigeccino
37
3.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
A better future with KSS
kneath
239
17k
GraphQLとの向き合い方2022年版
quramy
47
14k
Faster Mobile Websites
deanohume
307
31k
Producing Creativity
orderedlist
PRO
346
40k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Transcript
Deploying Perl with Fabric and Carton Anthony Johnson <
[email protected]
>
Deployment Steps Copy files to destination Install application dependencies Restart
services, and post-install cleanup
Deploying Files Check files out from VCS For git snapshot
`git checkout-index` Rsync files with Fabric
Fabric Python SSH wrapper framework Exposes script functions as commands
Handles file and shell operations, rsync Parallelized execution
@task def deploy(): cmd = 'git checkout-index -f -a --prefix=/tmp/foobar'
with lcd('/path/project'): local(cmd) rsync_project('/path/site', '/tmp/foobar') with localenv(): with cd('/path/site'): run('carton install') @task def bootstrap(): run('cpanm -L /path/env App::local::lib::helper') run('cpanm -L /path/env Carton') @contextmanager def localenv(): with settings(shell='/path/env/bin/localenv /bin/sh -c'): yield (horrible, incomplete example)
fab -H server bootstrap deploy
App::local::lib::helper Alters shell environment, points to local::lib Fabric uses helper
as shell to execute
Carton Wraps cpanminus Per-application environments Reproducible environments Module version locking
- pip, bundler Single JSON file of dependencies
carton install carton install --deployment Installs modules from Makefile.PL/Build.PL Installs
modules from carton.lock
carton bundle carton install --cached Download and cache modules Install
cached modules