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
1.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Deploying Perl with Fabric and Carton
Lightning talk on Fabric and Carton
Anthony
September 25, 2012
More Decks by Anthony
See All by Anthony
ØMQ and Perl
agj
1
160
Other Decks in Programming
See All in Programming
今さら聞けないCancellationToken
htkym
0
220
GitHub Copilot CLIのいいところ
htkym
2
1.3k
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
240
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
470
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
770
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
320
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Claspは野良GASの夢をみるか
takter00
0
170
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.5k
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
170
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
How GitHub (no longer) Works
holman
316
150k
Context Engineering - Making Every Token Count
addyosmani
9
950
Mind Mapping
helmedeiros
PRO
1
240
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
Fireside Chat
paigeccino
42
3.9k
Building Adaptive Systems
keathley
44
3k
Bash Introduction
62gerente
615
210k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
310
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
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