ç©äºã¯é ã«æµ®ãã³ãFabricã®ã¿ã¹ã¯å®è¡ã®ãã®ãç¬èªã®ããµãŒãããŒãã£ãããŒã«/ã©ã€ãã©ãªã«åå²ããŠãSSHæ©èœãšã¯ç¬ç«ããŠäœ¿çš/åç §ã§ããããã«ãããšããã§ãããã
ä»ã®ãšãããFab-as-runnerã䜿çšããã人ã¯ã ssh
ãšPyCrypto
ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
ãŸããã¿ã¹ã¯ã®å®è¡ãšSSHã«åå²ããå Žåãããã¡ããªãã¯ãããSSH +æ°ããã©ã³ããŒããŒã«ãžã®äŸåãã«ããããšã¯ããã®éãããã¯ããã«çã«ããªã£ãŠããŸãïŒäžäœäºææ§ãšå šäœçãªæçšæ§ã®äž¡æ¹ïŒã
åŸæ¹äºææ§ã«ã€ããŠèšãã°ã2.0åŸæ¹äºææ§ããªã¢ã§è¡ãã®ã_ãã£ãš_çã«ããªã£ãŠããã®ã§ïŒå°ãªããšãFabricã«æ°ããã€ã³ã¹ããŒã«äŸåé¢ä¿ãè¿œå ããããïŒããã®2.0ãããŒã¯ããŠããŸãããããšãã°1.6ãŸãã¯ã¿ã€ãã³ã°ãè¯ããã°1.7ãå¯èœã§ãã
æ確ã«ããããã«ããã®æ°ããããŒã«ã¯æ¬¡ã®ããã«ãªããŸãã
ïŒã±ãŒãïŒ
ãã¡ããããŠãŒã¹ã±ãŒã¹ã«ããŸãé©åãããŸã£ããæ°ããããŒã«ãåžžã«ãªãã·ã§ã³ã§ãã
説æãããããæŽæ°ããŸããã
@kennethreitz ïŒããã¯ãFabricã®ãã®ååã®æ¢åã®ããŒãº/æ©èœã»ããã«åºã¥ãããå®éã«ã¯æ°ããããã®ãã«ãªãã§ãããã ã¢ã€ãã¢ã¯ãã€ã³ã¹ããŒã«ãéçºã¹ã±ãžã¥ãŒã«ãªã©ã®ç¬èªã®ãšã³ãã£ãã£ã§ãããªãããFabricã®éçºè /ã³ãã¥ããã£ã«ãã£ãŠå¶åŸ¡ãããããšã§ãã
ã¢ã€ãã¢ïŒ
ç³ãèš³ãããŸããããç§ã¯ååãåžããŸã:(
ãŸãããã«ãŒã¯ãïŒãã£ããã³ã«ãŒã¯ã®ããã«ïŒã®ãããªãã®ã
ã¿ã¹ã¯ã®å®è¡ã«é¢ä¿ãããã¡ããªãã¯é¢é£ã®äœããèããããšããŸããããã¿ã¹ã¯+ãã¡ããªãã¯ã«é¢é£ãããã®ã¯èããããŸããã
ããããLoomãæªãååã§ã¯ãªããšæããŸãã
é æåã®ãã¬ã€ã³ã¹ããŒãã³ã°ã
runner
executor
go
go
ãšåŒã°ãããã€ããªãæã£ãŠããå Žåaway
ãŸãã¯fuck_yourself
ãŸãã¯bother_somebody_else
ãªã©ã®å€ãã®æœåšçãªã°ãããã¿ã¹ã¯åããããŸãweaver
ãããã§ãOS Xã®èŸæžã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠæ瀺ããããªãã¯ã¹ãã©ãŒãã¢ã¡ãªã«ã³ã©ã€ã¿ãŒã®ã·ãœãŒã©ã¹ïŒ
run
execute
go
create
ïŒ make
ãªã©ïŒfabricate
ïŒé·ãããã fab
ãšç°¡åã«æ··åãããïŒfab
ïŒã€ãŸãããã®æ°ããlibã®ååã¯ç°ãªããŸããã fab
ãã€ããªãã€ã³ã¹ããŒã«ããŸããäž¡æ¹ãã·ã¹ãã ã«ååšããå Žåã¯ãFabricã®æ¹ãåªå
ãããŸããïŒã°ãããèãã®ããã§ããïŒgenerate
produce
fashion
ïŒmehïŒbuild
devise
shape
setup
weave
ä»æ¥ãæé«ã®ãã¬ã€ã³ã¹ããŒãã³ã°åœ¢åŒã§ã¯ãããŸããã ããã声ã欲ããã
@dstufft Loomã¯å€§äžå€«ãªååã§ãããCEOã¯ã»ãšãã©å€§äžå€«ãªæŠå¿µã§ãïŒæŒ«ç»æ¬ã®ãªãã¡ã¬ã³ã¹ã®å€§ãã¡ã³ã§ã¯ãããŸããããããããããŸãã«èŠãããšããçç±ã ãã§ãç§ã¯ãã®ãã£ã©ã¯ã¿ãŒã®ããšãèããããšããããŸãã;ïŒïŒã äž»ãªåé¡ã¯ãé©åãªãã€ããªåãèãåºãããšã§ããåè©ãããŸãæ©èœããã«ã¯ãåè©ãã»ãŒå¿ é ã§ããããã«æããŸãã ãããã®ã©ã¡ãã§ãäœãããŸããããããããªãã
äžåžïŒç©äºãå®è¡ããŸãã
åå ããã Makeã®ãããªãã®ã§ãããPythonçšã§ãã
ãšã°ãŒã¯ãã£ãã
ç§ã¯ãããã¿ã¹ã¯ãäžå¿ã«æ®ãããšããèãã奜ãã§ãã ããŒã..
@kennethreitzç§ã¯ãã¹ã奜ãã§ãããç¹å®ã®ãã¥ãŒãžã£ãŒãžãŒã®ãã€ãã£ããšã®æœåšçãªæ··ä¹±ãé€ããŠïŒç³ãèš³ãããŸãããããã¡ã³ã§ã¯ãªãã倧åŠã§ã®æªãã«ãŒã ã¡ã€ãã®çµéšïŒ
@dstufftã«èšã£ãããã«ãããã§ã¯ãã€ããªåãééããªãéèŠãªã®ã§ãå¯èœã§ããã°ããããã念é ã«çœ®ããŠãã ããã åªãããããžã§ã¯ãåã¯ãproject-name-as-binaryãã¡ãã£ãšã°ãããŠããããã«èãããå Žåã¯åœ¹ã«ç«ã¡ãŸãã;ïŒ
ã¡ã€ãããããããããã§ãã ããªãã®ããã«ããªãã®ã¿ã¹ã¯ãå®è¡ããŸãã ãäœããã«äŒŒãŠããŸãã
ããã©ãŒãã è±åœé¢šã®å·äºã®ååãã©ã³ãã ã«éžã¶ããšãã§ããŸãã
maid clean
ã maid release
ã maid test
ã ããã¯ããã§ããã
ç§ã®ïŒç¡éã®ãèªç¶ãªïŒç·ãããã«åœ±é¿ãäžããããšãé€ãã°ã maid
ã¯åè©ã®ãã¿ãŒã³ã«é©åããŠããªããŠããããªãè¯ãã§ãã ïŒã€ãŸããåè©ä»¥å€ã®åªãããã€ããªåã®1ã€ã§ããïŒïŒç·šéïŒããã©ãŒã¯äœãããŸããïŒããã©ãŒïŒïŒ
念ã®ãããååãããããã ã ãã§ãã ä»ã®ãšãããšãŠãæ°ã«å ¥ã£ãŠããŸãã
ã©ã€ãã©ãªåãšããŠã®ãã¹ã¯ãã§ã«FWIWã«ãªã£ãŠããŸã
2012幎2æ21æ¥ç«ææ¥ã®ååŸ8æ38åãJeffForcierã¯æ¬¡ã®ããã«æžããŠããŸãã
ç§ã®ïŒç¡éã®ãèªç¶ãªïŒç·ãããã«åœ±é¿ãäžããããšãé€ãã°ã
maid
ã¯åè©ã®ãã¿ãŒã³ã«é©åããŠããªããŠããããªãè¯ãã§ãã ïŒã€ãŸããåè©ä»¥å€ã®åªãããã€ããªåã®1ã€ã§ããïŒãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ããã
https://github.com/fabric/fabric/issues/565#issuecomment -4095609
intern
ãä¿¡ããããªãã»ã©çŽ æŽãããéžæã§ãã
@dstufftããã§ãããããŠç§ããã®ããã®è¯ããã€ããªåãèããããšãã§ããŸããã§ããã boss docs
ã¯æ¬åœã«ããŸãé©åããŸããã
@kennethreitzã¯ãIRCã§bake
ã«ã€ããŠèšåããŸãããããã¯ãmake / rakeããŒãã«é©åããinvokeåè©ãšããŠãé©åããŸãïŒããšãã°ã $ bake docs
ã¯ãããŒãçã«ã¯å°ããããŠããŸããããã®ããã«æããŸãã dã·ã§ããäœãã«ããåããŸãã
ç·šéïŒ deliver
ãã ããã«å¯Ÿããç§ã®æåã®åå¿ã¯ããè¯å®çã§ããïŒ $ deliver build
$ deliver docs
ïŒããããã«äŒŽã_çŽ æŽããã_ãããžã§ã¯ãåã¯å°ãã°ãããŠããŸããããå°ãé·ãã§ãã
$ invoke taskname
ïŒãããžã§ã¯ãåïŒ invoker
ã invoked
ã???ïŒ
åŒã³åºãããŸããã
Invokedãinvoke docs
invoke tests
invoke publish
ãªã©ãæ¬åœã«å¥œãã§ãã
ãããžã§ã¯ãåããInvokeãã«ããããšãã§ããŸããããã€ããªãšãããžã§ã¯ãã«ã¯ç°ãªãååãå¿ èŠã§ããïŒ
ãinvokedãã¯ãinvokeããããå°ããã¶ãå€ããšæããŸãããã©ã¡ãã§ãæ©èœããå¯èœæ§ããããŸãã
ååã¯ç°ãªãå¿ èŠã¯ãããŸãããããããããã¯ãããããçã«ããªã£ãŠããåæ°ã ãã§ãã
é»è»ã«åãã£ãŠæ©ããŠãããšãã«èããŸããïŒé»è»ã®äžã§ïŒP go go smart tetheringïŒïŒããã¯ãããããããããã¹ãŠã¹ãããããŠã fab
+ fabfile.py
åŽå
šäœã移åããã ãã§ãããšããããšã§ãããã®ãæ°ãããã©ã€ãã©ãªã«ç©äºãè¿œå ããŸãïŒããšãã°ã fabricator
ãšåŒã³ãŸãïŒã
èšãæãããšãã¹ã¿ã³ãã¢ãã³libçšã«1ã€åŒã³åºãå¯èœã§ãSSHã䜿çšããã»ããã¢ããçšã«å¥ã®åŒã³åºãå¯èœã§ããããšãå¿ ãããçºçããå¿ èŠã¯ãªããäžå©çã«ãªãå¯èœæ§ãããããŸãã
ãã©ã¹ïŒ
ãã€ãã¹ïŒ
pip install fabricator
ã¯fab
ãæäŸããŸããããã«ã¯ãããã€ãã®å°ãããã©ã°ã®ã»ãããå«ãŸããŸããpip install fabric
ã®å Žåãçªç¶åãfab
ããä»ã®ãã®ã§ã¯ãªãã«ããŠãããã¹ãŠã®è¿œå ã®ãã¡ããªãã¯CLIãã©ã°ã衚瀺ããå¿
èŠããããŸããã³ãã³ãã©ã€ã³ã¯ã©ã€ã¢ã³ããæ¡åŒµå¯èœã«ããããšãã§ããŸãã noseããã©ã°ã€ã³ãšã³ããªãã€ã³ããã³ãã³ãã©ã€ã³ããŒã«ããè¡šçŸããæ¹æ³ãèŠãŠãã ãã
ã©ã¡ãã®æ¹åã«é²ãã§ããæ¡åŒµæ§ãé«ããããšã¯è¯ãããšã ãšæããŸãã
ååã®æ··ä¹±ã¯ç§ãæãã«åé¡ã«ãªãã§ãããã
ããã¯å人çãªããšã§ããã fab test
$ããã$ invoke test
invoke docs
ã®èŠãç®ã奜ãã§ãã
ããŸããŸãªãã€ããªã«é¢ããéããã³ã¢ãã€ããªïŒinvokeïŒãæ¡åŒµå¯èœã§ããããã¹ãŠã®ãã¡ããªãã¯ãçºçããããšã確èªããŠãããfabã«invokeãšåããšã³ããªãã€ã³ãïŒã€ãŸããå®éã®fab /invokeãã€ããªïŒãåŒã³åºãããã«ããŸãã main()
ïŒãŸãã¯ãã®ä»ïŒã®è¶
ãããã«ãªåŒã³åºãå
ã«ãªããŸãã
2.0ããåã®fabfilesãš"Invokefiles"ã®äž¡æ¹ãåŒã³åºã+ãã¡ããªãã¯ã«ãŒãã䜿çšãããšæããŸããïŒ ãµããŒãããã2.0ã§ã¯ãã¡ã€ã«ãåŒã³åºãã ãã§ããïŒ
ã€ãŸããåºæ¬çã«ç§ã¯ãããå¥åã®ãã¿ã¹ã¯ã©ã³ããŒããšããªã¢ãŒã/ SSHã®ãã®ãã«åå²ãã1.xã®å Žåã¯äºææ§ã®ããã·ã ãå ¥ãã2.xã®å Žåã¯éæšå¥šã«ããããšã§+1ã§ãã ãã®åå²ã«ãããäž¡æ¹ã®ã©ã€ãã©ãªãæ¹åãããã¿ã¹ã¯ã©ã³ããŒã¯ãããã€ãã®éåžžã«åªããæ¡åŒµæ§ïŒããã³ãç°¡åã«äŸåãå®è¡ãªã©ã§ããå€éšã¿ã¹ã¯ïŒããµããŒããããšæããŸãã ãããŠããªã¢ãŒã/ SSHã®ãã®ã¯ãããå°ããªè²¬ä»»ã®ã»ãããæã€ããšã§å©çãåŸãããšãã§ããããéäžããããšãã§ããŸã/
ãšã«ããç§ã®ã»ã³ãã
ç§ã¯ä»ã®æ¹æ³ãå«ãã§ã¯ãªãããšãæ確ã«ããå¿ èŠããããŸããç§ã¯ãã®è°è«ããŸã£ããèµ·ãã£ãŠããããšãå¬ããæããŸã:)
@dstufftèããŠãããŠããããšããç§ã¯ãã®ã»ãšãã©ãã¹ãŠã«åæããŸãã ããªãã¯ãã€ããªãåãªãã¹ã¿ãã§ããããšã«ã€ããŠæ£ããã§ãããããçŸåšFabricãã©ã®ããã«æ©èœãããã§ããç§ã®æžå¿µã¯åã«æ¯ãèããšãŠãŒã¶ãŒã®æ··ä¹±ã«ã€ããŠã§ãã
@dcolish CLIæ¡åŒµæ©èœãå®è¡ã§ããªãããšãæå³ããã€ããã¯ãããŸããã§ããããŸããnoseã¯ç¢ºãã«æ€èšããã®ã«é©ããå è¡æè¡ã§ãã
ãinvokeãã䜿çšããå Žåããã¡ã€ã«åã¯invocations(.py)
ã§ããå¯èœæ§ããããŸããïŒ æããª/ããŒãããŒã¯åŽã®ã¿ããã§ãããææ³çã«ã¯é©åãã invokefile.py
ã¯ç§ã«ã¯å°ãããã¡ãªãæããŸãã ãŸãã¯ãRakeã³ã³ãã³ã·ã§ã³ã«ãŒãã«è¡ãã tasks(.py)
ã䜿çšããããšãã§ããŸãã
éšåçã«é¢é£ããŠãç§ãã¡ã¯ãŸããä»åŸãã¢ãžã¥ãŒã«/ãã©ã«ããŒã®åŽé¢ã«ééããªãããã³ã°/çŠç¹ãåœãŠãã¹ãã ãšæããŸãã ãã ã®Pythonãªã®ã§ãã©ã¡ããåŒãç¶ããµããŒããããŸããããã¥ãŒããªã¢ã«ã®è³æãšããã¥ã¡ã³ãã®èŠ³ç¹ããã¯ã invocations/__init__.py
ãããã©ã«ãã«ããã®ã¯è¯ãããšãããããŸããã
ç§ã¯tasks.py
ã奜ãã§ãã invocations.py
ã¯å
¥åããã®ãããããã§ãã
é »ç¹ã«å
¥åããªããã°ãªããªããšããããã§ã¯ãããŸãããã ;ïŒããããã¯ãã tasks/
ãŸãã¯tasks.py
ã¯ããå°ãã°ããŒãã«ã«æçœã§ãã
taskfile.py
ããªãã¯invoke
ã¿ã¹ã¯ïŒ.py | /ïŒããšã«ããèšèé£ãã¯ããã§ã:)
ãããããããã¯tasks
ã§ãã invoke
ãã®èšå®ã¯ãããŒã¯ãŒããè±èªã®èª¬æãšçµã³ä»ãããšãã芳ç¹ããã¯éåžžã«ããŸãæ©èœããŸãã ããã¯æããã§ã食ãæ°ããªãããã¬ãŒãããããŸããã
@kennethreitzåœåèŠåãšããŠXYZFileã®å€§ãã¡ã³ã«ãªã£ãããšããªãã®ã§ãç¹ã«æè¿ã¯åäžã®ãã¡ã€ã«ã§ã¯ãªãããšãå€ãã®ã§ãFab1.xã®å€ã§èŠåãç¶ããå¿ èŠã¯ãªããšæããŸã:)
ç§ã¯ãããèµ·ããã®ãèŠãããšæã£ãŠããŸãã ç§ã¯åžžã«ãFabricãããããžã§ã¯ãã®ãã¿ã¹ã¯ããããŒã«ã«ããŒã¹ããªã¢ãŒãããŒã¹ãã«é¢ä¿ãªããRake/Makeã«è¿ããã®ã«æ ŒçŽããããã®äžè¬çãªPythonã®æ¹æ³ãšèŠãªããŠããŸããã ããããæ°ãã人ã ã玹ä»ããããšãããšãäœäººãã®äººã ã¯ãã®èŠ³ç¹ã«æ··ä¹±ãããããå±éããŒã«ãšããŠã®ã¿èŠãŸããã
ããããã€ã³å¯èœãªäžè¬çãªã¿ã¹ã¯ãç°¡åã«äœæã§ããããã«ããããã«ãã¢ãžã¥ãŒã«/ãã©ã«ããŒã®åŽé¢ã2çªç®ã«ããŸãã æ°ããã¹ã¿ã€ã«ã®ã¿ã¹ã¯ã¯ééããªãããã«åããŠè¯ãæ¹æ³ã§ããã
@askedrelicãããããã2ã€ã®ãã®ã«ããããšã¯æ®å¿µãªãããã€ãå°ãæ··ä¹±ããŠããŸããã
ç¡é¢ä¿ïŒåœŒãšç§ãæ°é±éåã«ãã®åé¡ã«ã€ããŠè©±ãåã£ãŠããã®ã§ãç§ã¯ãã®ã¹ã¬ããã«@tswicegoodãå¬åãã圌ãå éããããšæããããããªããšæããŸãããã€ãã®ããã«ãç§ã¯åæããªãæš©å©ãçä¿ããŸã;ïŒ
å¬åãããïŒ :-)
fabfile
ã§ã¯ãªããã¢ãžã¥ãŒã«ãšããŠtasks
ã«ç§»è¡ãããšããã¢ã€ãã¢ã奜ãã§ãã ããçã«ããªã£ãŠãããããçãã§ãã ç§ã¯ã1ã€ã«ã¯ãã¢ãŒã ã¹ããã³ã°å
ã§fab test
ãå®è¡ã§ããããã«ããããã ãã«ãå®å
šãªdepã¹ã¿ãã¯ãã€ã³ã¹ããŒã«ããå¿
èŠãããããšãå«ããŸãã
ååä»ãã«é¢ããŠã¯ãå€éšå®è¡å¯èœãã¡ã€ã«ãã€ã³ã¹ããŒã«ããããšããã人ã ã«ãããäžéšã«è¿œå ãããããšãžã®ç§»è¡ã«ã€ããŠã¯ã©ãã§ããããã
if __name__ == "__main__":
<some_mod>.main()
次ã«ãPythonã䜿çšããŸãã å®è¡å¯èœãã¡ã€ã«ã¯å€§äžå€«ã§ãããå¿ èŠãã©ããã¯ããããŸããã
FWIWãç§ã¯æ°é±éåã«flunky
ãšããããã±ãŒãžäœæãåŠçãããããžã§ã¯ããéå§ããŸããã ãã®ä»éããããŒãã«åºå·ããŠã footman
ãŸãã¯lacky
ã®äž¡æ¹ãå©çšå¯èœã§ãïŒåŸè
ã¯lackie
-Rubyãããžã§ã¯ããšç«¶åããŸãïŒã ãã1ã€ã¯ã女ã®å/ç·æ§ã®éææ¥ã®ããã«ãéææ¥ã«ãªããŸãã GitHub / PyPI / Homebrewãã¹ãã«åæ Œãããã®ååã¯äœããããŸããã å®ã¯ãä»èããŠã¿ããšããããç§ã®æåã®éžæã«ãªããŸãã
ã¡ãªã¿ã«ã @ niranãREADMEãæŽæ°ããPRãæåºããŠãæçœã§ã¯ãããæãããããŒããœã³ã°ãå«ãŸããããã«ãªããŸã§ãã©ãããããããã®ã ãããã
$PATH
ã®ããã€ããªãïŒç¹ã«ãçŸåšã¯å®éã®ãã€ããªã§ã¯ãªããsetuptoolsã§äœæããã(invoked|fabric).main()
ãåŒã³åºãã¹ã¿ãïŒã䜿çšããã®ãæããŠãŒã¶ãŒãã¬ã³ããªãŒã ãšæããŸãã ããããŠãã®ã¹ã¿ãã®ã³ã³ãã³ããã¿ã¹ã¯ã¢ãžã¥ãŒã«å
ã§èªåçæããããã«ç§»åããããšã«ã¡ãªããã¯ãããŸããïŒå®éãããã«ã¯ããã€ãã®æ¬ ç¹ããããŸãïŒã
ãããŠãã¯ããããã®å šäœçãªãã€ã³ãã¯ãSSH / network /cryptodepsãå¿ èŠãšããã«ã¿ã¹ã¯ã®å€ããã®ãååŸã§ããlibã«ãªã£ãŠããŸãããšã§ã:)
å®è¡å¯èœãã¡ã€ã«ã®@bitprophetã«å®å
šã«åæããŸãã å®è¡ãã¯ããã«ç°¡åã«ãªããŸãã 誰ããèªåã®ãããžã§ã¯ãã§invoke
/ fab
以å€ã®ãã®ã䜿çšãããå Žåãããã¯åãªãã¹ã¿ããªã®ã§ãç¬èªã®ãã€ããªãç°¡åã«äœæã§ããŸãïŒãããŠã finalname.__main__.main
ã§ç°¡åã«äœ¿çšã§ããŸãïŒã ããã®å Žåãå¿
èŠã«å¿ããŠpython -m finalname
ã ãã§ãããŸããŸããã
+1ã
ã¢ã€ãã¢ãæããããã ãã§ããã£ãšäŸ¿å©ã ãšæããŸãã FWIWãéææ¥ã«PyPIã䜿çšãããå Žåã¯ãPyPIã«ç»é²ããŸããã
@bitprophetç³ãèš³ãããŸãããããšã³ããªãã€ã³ãã®äœ¿çšæ¹æ³ã«ã€ããŠã¯ãåç¥ã ãšæããŸãã ç§ã¯èªåãªãã®æ¹æ³ã§ãããŒãºã«äŒŒãæ¹æ³ã§ããã³ããšã³ããå®è¡ããååãfabãšããŠç¶æããããšã«æ祚ããŠããŸããã
ã¢ã€ãã¢ã¯çŽ æŽãããã§ããç§ã¯ã¢ã€ãã¢ã倧奜ãã§ã:)
ãããã«ã«ãã£ãŒã®ãªãã¡ã¬ã³ã¹ã¯å¥œãã§ãããéææ¥ãããããããé¢ãå°ããããŸãã ãã®æã¯ãšãŠãçŽ æŽãããã§ãïŒ ïŒãã€é¡ïŒ
ä»ã®ãšãããããã±ãŒãž/ãããžã§ã¯ããšãã€ããªã®ååã®äž¡æ¹ãšããŠã invoke
ããŸã£ããã«äœ¿çšãããšæããŸãã ãšã€ã³ã¯ïŒ InvokerãŸãã¯Invokedã¯ãåè
ã®ä»ã®å¯èœæ§ã§ããïŒã€ãŸãããŸã invoke
ãã€ããªã䜿çšããŠããŸãïŒããåçŽãªã«ãŒãã«é²ãŸãªãæ£åœãªçç±ã¯èããããŸããã§ããã
ãã®ååã®äž»ãªæ¬ ç¹ã¯äžè¬æ§ã§ãããããã¯ç§ããããŸã§ã«åŒãç¶ãã ãäœæããããããã¹ãŠã®ãããžã§ã¯ãã§åé¡ã«ãªããŸãããã®å Žåãããå ·äœçãªãªãã·ã§ã³ã¯ã©ããç§ã«ã¯æ£ããæããããŸããã§ããã /æ£åœå
@dcolishæ¿ç¥ããŸãããããããšãïŒ
ç§ã¯ãŸã æçµæ±ºå®ãäžããŠããŸããããçŸæç¹ã§è³¢æãªã¢ãããŒãã¯æ¬¡ã®ãšããã ãšæããŸãã
invoke
ãã€ããªã䜿çšãã tasks
ã¢ãžã¥ãŒã«ãæ€çŽ¢ããŸããfab
ã䜿çšãã fabfile
ã¢ãžã¥ãŒã«ãæ¢ããŸãããã€ã³ã¹ããŒã«æã®äŸåé¢ä¿ãInvokeã«è¿œå ããInvokeã®APIã䜿çšããŠãã®å
±æã³ãŒããåŒã³åºããŸãinvoke
/ tasks
ããªãã·ã§ã³ã§ãããã©ããã_ç¥ãå¿
èŠã¯ãããŸããã d決ããŠãããã䜿çšããŠããŸãã- fab
ã¯ãŸã æ©èœã®ã¹ãŒããŒã»ããã§ããinvoke
ãšfabric
ãäºãã«ã©ã®ããã«é¢ä¿ããåäœãããã§ãã ã ãããã®äººã
ã¯ã invoke
ãšfab
ãäºãã®åçŽãªãšã€ãªã¢ã¹ã§ããããšã«é¢å¿ããããããããŸããïŒã€ãŸããFabricã®ã€ã³ã¹ããŒã«ã«ãããNoseãã©ã°ã€ã³ã®åäœã®ããã«invoke
ã®åäœãå€åããŸãïŒãfab
ãåºå¥ããå¿
èŠããããŸãã ã»ã³ã¹ããã®æç¹ã§ããã¯ããèªèº«ã®çãç©ã§ãããããããŸããããããŠFabricãšInvokeã®é¢ä¿ã¯FabricãInvokeã®ã³ãŒãããŒã¹ãã©ã®ããã«äœ¿çšãããã«ã®ã¿ãããŸããç·šéïŒæçµçãªãã®ãäœæããåã«ããããã©ã®ããã«æ©èœãããããã°ãã確èªããå¿ èŠããããŸãã å®è·µå¯Ÿçè«ãšãã®ãã¹ãŠã ç§ãããã§èããŠããªãè§åºŠã«ã¶ã€ãããããããŸããã
Invokeã«ã¯çŸåšããŒã¿ãªãªãŒã¹ããããŸãïŒæè¿ã®å€ãã®äœæ¥ããããæ§ç¯ããåŸïŒã ãã§ã«ïŒ
foo:bar,lol
ã¯äžèŠrun
ïŒWindowsã§ã¯ããããæ©èœããŸãããïŒä»é±ãããã«å šåçŸèµ°ããFab2ãã©ã®ããã«ããã«ãã«ãã§åºå®ããããããããã¿ã€ãã³ã°ãå§ããããšãæãã§ããŸãã
æž
æœã確ä¿ãã
æ§ç¯ãããŠããããšã確èªããŠãã ãã
ã確èªããããç¶æ
ã
ãã¡ããªãã¯2ã®ã¹ããŒã¿ã¹ã¯ã©ããªã£ãŠããŸããïŒ ãããã«ããŒããŠãããã©ãŒã¯ã¯ãããŸããïŒ ã€ãŸããfabric2ãã«ããŒãã¹ããã®ã§ãåŒã³åºãããªããã®ã§ãã
@mvaledãŸããªã衚瀺ããããã¡ããªãã¯ãªããžããªã®ãã©ã€ããŒããªãã¯ãªãŒã³ããã©ã³ãã«ãããŸãã
ããããããã¯ããå€ããŠããå Žåã¯ç³ãèš³ãããŸããããç§ã¯ããäžåºŠè³ªåããå¿
èŠããããŸãïŒ
ãã¡ããªãã¯2ã¯ã©ãã«ãããŸããïŒ
ç§ã¯invokeãæ¬åœã«å¥œãã§ã倧å¹
ãªæ¹åã®ããã«æããŸãããinvoke 1.0ãªãªãŒã¹ã«ã¯äœãæ¬ ããŠããŸããïŒ ïŒãã¡ããªãã¯2ã®åºç€ãšããŠèª¬æãããŠããŸãïŒ
ã€ã³ããŒã¯ãšãã¡ããªãã¯ã«é¢ãããã¹ãŠã®çŽ æŽãããäœæ¥ã«æè¬ããŸãïŒ
@dmrInvokeäžã§Fabric2ãåäœãããŠããæäžã§ãã Fabric 1ãã移æ€ãããäžé£ã®æ©èœã¯ãInvokeã®èšèšäžã®æ±ºå®ãéç¥ããŸãïŒæ°ããæ©èœãŸãã¯æ¢åã®æ©èœã®å Žå-ããšãã°ãæè¿ã®æ§æã®ãªãŒããŒããŒã«ã¯ãããã®1ã€ã§ããïŒãååã«ãã¹ããããæŠããã
ç§ã®èšç»ã¯ãé ããšãïŒçæ³çã«ã¯ãã£ãšæ©ãïŒPyConã«ãã£ãŠFabric 2ã®ã¢ã«ãã¡çãå ¬éããäºå®ã§ããããããFabric 2.0 +Invoke1.0ã«ã€ãªããã§ãããã
æ確åããŠããã ãããããšãããããŸããã©ãã§ç§ã¯å©ããããšãã§ããŸããïŒ
æºè¶³ã®ãããã®ãåŸããããŸã§ãçæçã«ã¯ãã©ã€ããŒããã©ã³ãã§åãçµãã§ããããã£ãŒãããã¯ã®æºåãã§ã次第ããã€ãã¿ãŒãã¡ãŒãªã³ã°ãªã¹ããªã©ã§çºè¡šããŸãã®ã§ããæåŸ ãã ããã
ãã¡ããªãã¯ã¯ç§ã®ãããžã§ã¯ãã§python3ããµããŒãããŠããªãæåŸã®ããã±ãŒãžã§ãããããã·ã§ã«ã³ãã³ããšããã€ãã®Paramikoãçµã¿åãããŠåŒã³åºãããã«åãæ¿ãå§ããŸãã
Python3.5ãæšæ¥ãªãªãŒã¹ãããFabric2.0ããã³Invoke1.0ã®ETAã¯ãUbuntu 16.04 LTSã®ããã©ã«ãã«ãªããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
Python3.5ãæšæ¥ãªãªãŒã¹ãããFabric2.0ããã³Invoke1.0ã®ETAã¯ãUbuntu 16.04 LTSã®ããã©ã«ãã«ãªããŸããïŒ