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.5k
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
110
Other Decks in Programming
See All in Programming
"config" ってなんだ? / What is "config"?
okashoi
0
250
見た目から始める生産性向上
ikumatadokoro
9
1.3k
Try creating your own orderedmap
kazamori
1
160
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
1k
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
1k
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
210
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
120
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
210
Fast JSX: Don't clone props object #28768
yossydev
1
160
Fragment Composition of GraphQL
quramy
13
1.4k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
240
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
1
340
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Designing for humans not robots
tammielis
248
25k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
GraphQLとの向き合い方2022年版
quramy
33
12k
A Philosophy of Restraint
colly
197
16k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Thoughts on Productivity
jonyablonski
59
3.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Embracing the Ebb and Flow
colly
80
4.2k
Visualization
eitanlees
137
14k
Debugging Ruby Performance
tmm1
70
11k
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