仿¥ããããã«ä½¿ãããããã¤ã»ã·ã¹ãã 管çãã¼ã« Fabric å ¥é
Fabric ã¯ãPython 製ã®ãããã¤ã»ã·ã¹ãã 管çãã¼ã«ã§ãã
æè¿ãæ§ç¯ãéç¨ãèªååããããã®æ§ã
ãªãã¼ã«ãåºã¦ãã¦ãã¾ãã
æ§æç®¡çãã¼ã«ã® Puppet ã Chef ãæåã§ããã使ãã¾ã§ã«è¦ãããã¨ãå¤ãã®ãæ¬ ç¹ã§ãã
ããããFabric ã¯é常ã«ã·ã³ãã«ãªãã¼ã«ã§ãä»ããããã«ä½¿ããã¨ãã§ãã¾ãã
Fabric ã¯ãããã¤ã»ã·ã¹ãã 管çãã¼ã«ã§ãé¡ä¼¼ã®ãã¼ã«ã¨ã㦠Ruby 製㮠Capistrano ãããã¾ãã
Fabric ã®æå¤§ã®ç¹é·ã¯ãã·ã§ã«ã¹ã¯ãªãããæ¸ãæ
£ãã人ããããªãå©ç¨ã§ããã¨ããã§ãã
ã·ã§ã«ã¹ã¯ãªããã¨ãã¦ã¾ã¨ãã¦ããã³ãã³ãããã®ã¾ã¾ run() ã¡ã½ããã sudo() ã¡ã½ããã§å²ãã ãã§ã使ããã¨ãã§ãã¾ãã
ã·ã§ã«ã¹ã¯ãªããã使ã£ã¦ãã¦ããã¨ãããã¤ãã®åé¡ã«ééãã¾ãã
- åå空éã®ç®¡ç
- 夿°ã®æ±ã
- è¤éãªãã¼ã¿æ§é ããªã(ããããé åããã)
- ä¾å¤å¦ç
ãããã®åé¡ã«é ãæ©ã¾ãããã¨ããã人ã¯å¤ãã§ãããã
Fabric 㯠Python ã§è¨è¿°ãã¾ãã®ã§ãä¸è¨ã®åé¡ã¯å
¨ã¦è§£æ±ºãã¾ãã
ãFabric = ã·ã§ã«ã¹ã¯ãªãã + Python + 便å©ã¡ã½ããã
ã¨ããã¤ã¡ã¼ã¸ã§ãã
SIerã«å¤ãã¦ãã¦SEçãããã¦ããæ¹ã¯ãéç¨ãã¼ã ã®ããã®éç¨æé æ¸ãæ¸ãããã¨ããã人ãå¤ãã§ãããã
ãã®éç¨æé æ¸ã®å¤ãã¯ãä½ããã®ã³ãã³ãã©ã¤ã³ãå®è¡ãããã¨ããè¨è¿°ãæ¸ããã¦ããã¯ãã§ãã
Fabric ã使ãã°ããã®éç¨æé æ¸ããã»ã¼ãã®ã¾ã¾ãFabric ã®ã¹ã¯ãªããã«ç§»è¡ã§ãã¾ãã
Fabric ã®ã¤ã³ã¹ãã¼ã«
$ easy_install fabric
ãã£ãããã ãã§ãããeasy_install ã£ã¦ä½ï¼ãã¨ãã人㯠ymotongpoo先生の素晴らしい記事 ãåèã«ãã¦ãã ãããç´5åã§èªã¿çµãããããã«ç´5åã§ easy_install ã使ããããã«ãªãã§ãããã
試ãã¦ã¿ã(1): yum ã³ãã³ãã Fabric ããå®è¡
ä¾ãã°ãyum ã³ãã³ãã§ git ãã¤ã³ã¹ãã¼ã«ãããã¨ãã使¥ããã£ãã¨ãã¾ãã
ã·ã§ã«ã使ãã°ä»¥ä¸ã®ããã«æ¸ããã§ãããã
$ sudo yum -y install git
ãããããæ®éã®éç¨æé æ¸ã§ã¯ãããµã¼ãAã«ãã°ã¤ã³ãã以ä¸ã®ã³ãã³ããå®è¡ãããã¨ããå½¢ã§æ¸ãã¦ããã¯ãã§ãã
Fabric ã使ãã°ããã®ãããªæé æ¸ã¯ä¸è¦ã«ãªãã¾ãã
ã¾ãããªã¢ã¼ããã·ã³ã1å°ç¨æãã¦ãã ããã
VM ã§ãæ§ãã¾ããããAmazon EC2 ãä½¿ãæ¹ã便å©ã§ããEC2 ã使ã£ããã¨ããªãã¨ããæ¹ã¯ããã®è¨äºã®æ«å°¾ã§ä½¿ãæ¹ãªã©ãè¨è¼ããã¦ããè³æã®ãªã³ã¯ãç´¹ä»ãã¾ãã
ããã§ã¯ã以ä¸ã®ãããªãµã¼ãè¨å®ãä¾ã«ã¨ãã¾ãã
ec2-user 㯠Amazon Linux ã®ããã©ã«ã管çè
ã¦ã¼ã¶ã§ãsudo 権éãæã£ã¦ãã¾ãã
EC2 ä¸ã§ RHEL ã使ãå ´å㯠ec2-user ã§ã¯ãªã root ã使ã£ã¦ãã ããã
- ãµã¼ãå: ec2-XXX.ap-northeast-1.compute.amazonaws.com
- ã¦ã¼ã¶å: ec2-user
- SSHç§å¯éµã®ãã¹: ~/.ssh/id_rsa
Fabric ã使ãå ´åãã¾ãé©å½ãªãã£ã¬ã¯ããªã使ããfabfile.py ã¨ãããã¡ã¤ã«ã使ãã¦ãã ããã
次ã«ã以ä¸ã®å
å®¹ãæ¸ãè¾¼ã¿ã¾ãã
from fabric.api import sudo def install_git(): sudo("yum -y install git")
ããï¼ãã¨æã£ãã§ãããããæ¬å½ã«ããã§ããã¾ãã§ãã
ãã¨ã¯ãfabfile.py ã®ç½®ãã¦ãããã£ã¬ã¯ããªã§ã以ä¸ã®ã³ãã³ããå®è¡ãã¾ãã
$ fab -u [ã¦ã¼ã¶å] -i [sshã®ç§å¯éµ] -H [ãã¹ãå] install_git
å
ç¨ã®ãµã¼ãä¾ã®å ´åã¯ã以ä¸ã®ããã«ãªãã¾ãã
$ fab -u ec2-user -i ~/.ssh/id_rsa -H ec2-XXX.ap-northeast-1.compute.amazonaws.com install_git
ãã£ãããã ãã§ããªã¢ã¼ããµã¼ãã§ yum install git ãå®è¡ãããã¨ãã§ãã¾ãã
é常ã«ç°¡åã§ãï¼
ä»åç´¹ä»ãããµã³ãã«ã¹ã¯ãªããã¯ãgithub ã«å
¬éãã¦ãã¾ãã
ãã¡ããåèã«ãã¦ã¿ã¦ãã ããã
試ãã¦ã¿ã(2): Fabric ã®ä¾¡å¤ã使ãã
ããã ç½®ãæããã ããªãã·ã§ã«ã¹ã¯ãªããã®ã¾ã¾ã§ãããããã
ã¨æã人ã®ããã«ãFabric ã®å¼·åãªæ©è½ã®ãã¡ã®ããã¤ãããç´¹ä»ãã¾ãã
è¤æ°ãã¹ãã«å¯¾ãã¦åæã«å®è¡
'-H' ã§ãã¹ãåãæå®ããéã«ã«ã³ãåºåãã§è¤æ°ã®ãµã¼ããæå®ãããã¨ãã§ãã¾ãã
ä¾ãã°å ç¨ã®ä¾ã§ãserverA 㨠serverB ã«å¯¾ãåæã« install_git ãå®è¡ãããå ´åã¯ã以ä¸ã®ããã«æ¸ãã¾ãã
$ fab -u ec2-user -i ~/.ssh/id_rsa -H serverA,serverB install_git
è¤æ°ã³ãã³ããé çªã«å®è¡
ä¾ãã°ãã¦ã¼ã¶ 'hoge' ã使ããã³ãã³ããä½ãããã¨ãã¾ãã
ã·ã§ã«ã¹ã¯ãªããã§æ¸ãå ´åã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
# adduser hoge
ããã Fabric ã§æ¸ãã¨ã以ä¸ã®ããã«ãªãã¾ãã
def adduser_hoge(): sudo("adduser hoge")
ã·ã§ã«ã¹ã¯ãªããã®å ´åãå ç¨ã® git ã®ã¤ã³ã¹ãã¼ã«ã³ãã³ãã¨ä¸ç·ã«ç®¡çããã«ã¯ãå¥ã ã®ãã¡ã¤ã«ã¨ãã¦ä¿åããããä¸ç·ã®ãã¡ã¤ã«ã«ãã¦ãã¾ã£ã¦ãããå®è¡ããããããã¾ããã§ããã
Fabric ã®å ´åã¯ã使ããã¡ã½ããå
¨ã¦ãç¬ç«ããã³ãã³ãã¨ãã¦æ±ãã¾ãã
fabric.py ã®ãããã£ã¬ã¯ããªã§ã以ä¸ã®ã³ãã³ããå
¥åãã¦ã¿ã¦ãã ããã
$ fab --list
ããããã¨ãç¾å¨å®è¡å¯è½ãªã³ãã³ãã®ä¸è¦§ã表示ããã¾ãã
Available commands:
adduser_hoge
install_git
Fabric ã®é¢ç½ãã¨ããã¯ãä¸åã®ã³ãã³ãã§ããããä»»æã®é çªã§å®è¡ã§ããã¨ããã§ãã
以ä¸ã®ä¾ã®ããã«ãã¹ãã¼ã¹ã空ãã¦ä¸ã¤ã¥ã¤ã³ãã³ããè¨è¿°ãã¦ãããã¨ã§ãFabric ã¯ãã®ã³ãã³ããå·¦ããé çªã«å®è¡ãã¦ããã¾ãã
$ fab -u ec2-user -i ~/.ssh/id_rsa -H ec2-XXX.ap-northeast-1.compute.amazonaws.com install_git adduser_hoge
ãã£ãããã ãã®ã³ãã³ãã§ããgit ãã¤ã³ã¹ãã¼ã«ããããã¦ã¼ã¶ hoge ã使ãããã®2ã¤ã®ä½æ¥ãå®è¡ã§ããã®ã§ãï¼
次ã®ã¹ããã
ãããã®è¨äºãèªãã§ãããããã¡ãã£ã¨ Fabric ã試ãã¦ã¿ãããã¨æã£ãæ¹ã«ã次ã«ã¹ãããã®ããã®è¨äºãç´¹ä»ãã¾ãã
drillbits æ°ã®ç´¹ä»ã¹ã©ã¤ã
https://speakerdeck.com/drillbits/fabric-python-developers-festa-2013-dot-03-number-pyfes
Fabric ã®åºæ¬çãªä½¿ãæ¹ã«ã¤ãã¦ã¾ã¨ãã¦ãã¾ããFabric å
¥éè
ã¯å¿
èªã§ãã
Python製ãããã¤ãã¼ã« Fabricãåãã¦ä½¿ãéã«å½¹ç«ã¤Tips
http://dekokun.github.io/posts/2013-04-07.html
dekokun æ°ã«ãã Tips éã§ãã
æåã«èªãã§ãããã§ãããããç¨åº¦ä½¿ã£ã¦ãããããããæ¸ãæ¹ããããã ãã©ãã©ãããã°ãããã ããï¼ãã¨æã£ãã¨ãã«éãã¦ã¿ãã®ããªã¹ã¹ã¡ã§ãã
Fabric ãããã¤ãã¼ã«ã®Pythonicãªæ¸ãæ¹
http://www.ianlewis.org/jp/fabric-pythonic
ããå¤ãè¨äºã§ãããianlewis æ°ã«ãã Fabric ã®æ¸ãæ¹å ¥éã
with cd() ã®æ¸ãæ¹ã¯ Fabric ã§ã®å
¸åçãªã¤ãã£ãªã ãªã®ã§ãªã¹ã¹ã¡ã§ãã
å ¬å¼ããã¥ã¡ã³ã
æå¾ã«ãå
¬å¼ããã¥ã¡ã³ããç´¹ä»ãã¾ãã
http://docs.fabfile.org/en/1.6/
è±èªã§ãããAPI ã®ãªãã¡ã¬ã³ã¹ã¨ãã¦ã¯å¿ é ã§ãã以ä¸ã®3ã¤ã®ã¢ã¸ã¥ã¼ã«ã® API ãªãã¡ã¬ã³ã¹ã¯ä½åº¦ãèªããã¨ã«ãªãã§ãããã
- Operations
- run, sudo, get, put ãªã©ã®åºæ¬ã¡ã½ããã®ããã¥ã¡ã³ããããã¾ãã
- Utils
- error, warn ãªã©ã®ãã®ã³ã°å¨ãã®ã¡ã½ããã«ã¤ãã¦æ¸ããã¦ãã¾ãã
- Files and Directory Management
- append(ãã¡ã¤ã«ã«è¿½è¨)ãcomment(ãã¡ã¤ã«ã®ç¹å®ã®é ç®ãã³ã¡ã³ãã¢ã¦ã)ãªã©ã®ãã¡ã¤ã«æä½å¨ãã®ä¾¿å©APIãããã¾ãã
ä»é²: Amazon EC2 ã®ä½¿ãæ¹
EC2 ã使ã£ããã¨ã®ãªã人ã®ããã«ãããã¤ãããã¥ã¡ã³ããç´¹ä»ãã¾ãã
ããããèªãã°ãEC2 ä¸ã§ã¤ã³ã¹ã¿ã³ã¹ãç«ã¡ä¸ãããã¨ãã§ããã¨æãã¾ãã
ããããèªãã§ãã©ããã¦ãåãããªã人ã¯AWSの有償サポートを買ってくださいã
å¤å人件費åã¯å
ãåããã¨æãã¾ãã
æ´æ°å±¥æ´
2013/04/14 17:33 ææã«å¾ããã¿ã¤ãã«åã³åé ã®èª¬æãä¿®æ£