ããã«ã¡ã¯ï¼ã¤ã³ãã©ã¨ã³ã¸ãã¢ã®æ³ç¬ã§ãï¼
以åãChefã®ãã¥ã¼ããªã¢ã«ãæ¸ãã¦ããæ©ããã®ã§ä¸ã¶æãçµéãã¦ãã¾ãã¾ããï¼ãã¿ã¾ããï¼ã
9æå·ã®Software Designã§ãChefãç¹éããã¦ããã¾ãããããããããæ³¨ç®ãæµ´ã³ã¦ããããã§ããï¼
ç§ãé å¼µã£ã¦ãæ»ããã®ä»äºè¡ãå¦ãã§ããããã¨æãã¾ãã knife ec2ã使ç¨ãã¦EC2ã¤ã³ã¹ã¿ã³ã¹ãèµ·åã¨çµäºã¯ä»¥ä¸ã®æµãã§è¡ãã¾ãã
- ãã¼ã«ã«PCã«Opscode社ããæä¾ããã¦ããcookbookã®ãã¦ã³ãã¼ã
- Chef-Serverã«cookbookãã¢ãããã¼ããã
- EC2ã«æ¥ç¶ããããã®è¨å®ã追å
- knife ec2ã«ããèµ·åãåä½ç¢ºèª
- apache2ã®recipeãé©ç¨ãåä½ç¢ºèª
- EC2ã¤ã³ã¹ã¿ã³ã¹ã®terminateãnodeãªã¹ãããã®åé¤
ããã§ã¯ãã£ããé²ãã¦ããããã¨æãã¾ãã
ï¼ï¼ãã¼ã«ã«PCã«Opscode社ããæä¾ããã¦ããcookbookã®ãã¦ã³ãã¼ã
ãã¡ãã®ä½æ¥ã¯ã¨ã¦ãç°¡åã§ãã
Opscode社ããæä¾ããã¦ããcookbookã¯ä»¥ä¸ã®ã³ãã³ãã§ãã¦ã³ãã¼ãåºæ¥ã¾ãã
$ knife cookbook site vendor chef-client
ï¼ï¼Chef-Serverã«cookbookãã¢ãããã¼ããã
ãã¡ãã®ä½æ¥ã以ä¸ã®ã³ãã³ããå®è¡ããã ãã§ãã®ã§é£ããã¯ããã¾ããã
$ knife cookbook upload chef-client
ï¼ï¼EC2ã«æ¥ç¶ããããã®è¨å®ã追å
ãã¡ãããããªã«é£ãããã®ã§ã¯ããã¾ããã
.chef/knife.rbã«ã¢ã¯ã»ã¹ãã¼IDãã·ã¼ã¯ã¬ããã¢ã¯ã»ã¹ãã¼ã®æ
å ±ã追è¨ãã¾ãã
$ echo "knife[:aws_access_key_id] = "YOUR_ACCESSKEY"" >> .chef/knife.rb $ echo "knife[:aws_secret_access_key] = "YOUR_SECRET_ACCESSKEY_"" >> .chef/knife.rb
ï¼ï¼knife ec2ã«ããèµ·åãåä½ç¢ºèª
ããã§ã¯ããããEC2ã¤ã³ã¹ã¿ã³ã¹ã®èµ·åã§ãã
ã¡ãªã¿ã«knifeã³ãã³ãã¯"knife --help"ã¨å®è¡ããäºã§helpã確èªãåºæ¥ã¾ãããEC2æä½ã«é¢ããhelpã¯ä»¥ä¸ã®ããã«å®è¡ãã¦ãã ããã
$ knife ec2 --help ** EC2 COMMANDS ** knife ec2 instance data (options) knife ec2 server list (options) knife ec2 server create (options) knife ec2 server delete SERVER [SERVER] (options)
ããã«åºåããããµãã³ãã³ãã®helpãåç §ããå ´åã¯ä»¥ä¸ã®ããã«å®è¡ãã¾ã
$ knife ec2 instance data --help
ç¾å¨èµ·åãã¦ããEC2ã¤ã³ã¹ã¿ã³ã¹ã¯ä»¥ä¸ã®ãããªã³ãã³ããå®è¡ããäºã§ä¸è¦§è¡¨ç¤ºãåºæ¥ã¾ã
$ knife ec2 server list --region ap-southeast-1
knifeã³ãã³ãã§EC2ã¤ã³ã¹ã¿ã³ã¹ãèµ·åããã«ã¯ä»¥ä¸ã®æ å ±ãæå®ããããã«å ãã¦å®éã¯éµãç»é²ããã¦ã¼ã¶åãæå®ãã¾ãã
AWSã®ç¨èª | knife ec2ã³ãã³ãã®ãªãã·ã§ã³å |
---|---|
Region | region |
Availability Zone | availability-zone |
AMI ID | image |
Instance Type | flavor |
Security Group | groups |
Key Pairs | ssh-key |
ããã§ã¯ä»¥ä¸ã®ããã«å®è¡ãã¦ã¤ã³ã¹ã¿ã³ã¹ãèµ·åãã¦ã¿ã¾ãã
注æãã¹ãç¹ã¯äºåã«ãã¼ã«ã«ã®SSHå
¬ééµãAWSã«ç»é²ããä¸ã§ãªãã·ã§ã³ã«æå®ããäºã¨ãã»ãã¥ãªãã£ã°ã«ã¼ããSSHã¢ã¯ã»ã¹å¯è½ãªè¨å®ã«ãã¦ããäºã§ãã
$ knife ec2 server create --run-list 'recipe[chef-client]' --region ap-southeast-1 --availability-zone ap-southeast-1a --image ami-f292eca0 --flavor t1.micro --groups yanase-develop --ssh-key yanase-ubuntu --ssh-user ubuntu
以ä¸ã®ã³ãã³ãã§nodeã¨ãã¦è¿½å ããã¦ããäºã確èªåºæ¥ã¾ãã
å®éã«EC2ã¤ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ããã°chef-clientã®ããã»ã¹ã確èªåºããã¯ãã§ãã
$ knife node list i-3d87f568
ï¼ï¼apache2ã®recipeã®é©ç¨ãåä½ç¢ºèª
ãã£ãããªã®ã§å
ã»ã©èµ·åããã¤ã³ã¹ã¿ã³ã¹ã«apache2ã®recipeãé©ç¨ãã¦ã¿ã¾ãããã
ã¾ãã¯å
ã»ã©èµ·åããnodeã®è©³ç´°ãè¦ãã¨Recipeã«chef-clietnãé©ç¨ããã¦ããäºãåããã¾ãã
$ knife node show i-3d87f568 Node Name: i-3d87f568 Environment: _default FQDN: ip-10-136-21-61.ap-southeast-1.compute.internal IP: 10.136.21.61 Run List: recipe[chef-client] Roles: Recipes chef-client Platform: ubuntu 10.04
ããã§ã¯å ã»ã©ã¨åæ§ã«cookbookããã¦ã³ãã¼ããã¦ãµã¼ãã«ã¢ãããã¾ãããã
$ knife cookbook site vendor apache2 $ knife cookbook upload apache2
次ã«ä»¥ä¸ã®ã³ãã³ãã§nodeã«ã¬ã·ãã追å ãã¾ãã
$ knife node run_list add i-3d87f568 'recipe[apache2]' run_list: recipe[chef-client] recipe[apache2]
å ã»ã©ã¨åãã³ãã³ããå®è¡ããã¨apache2ã®recipeãé©ç¨ããã¦ãã¾ãã
$ knife node show i-3d87f568 Node Name: i-3d87f568 Environment: _default FQDN: ip-10-136-21-61.ap-southeast-1.compute.internal IP: 10.136.21.61 Run List: recipe[chef-client], recipe[apache2] Roles: Recipes chef-client Platform: ubuntu 10.04
chef-clientã¯ããã©ã«ãã§30åééã§chef-serverã«ã¢ã¯ã»ã¹ãã¦recipeã®é©ç¨ãè¡ãã¾ãããå¾ ã¦ãªãæ¹ã¯èµ·åããã¤ã³ã¹ã¿ã³ã¹ã«ãã°ã¤ã³ãã¦ä»¥ä¸ã®ã³ãã³ããå®è¡ãã¦ãã ããã
$ sudo chef-client
ï¼ï¼EC2ã¤ã³ã¹ã¿ã³ã¹ã®terminateãnodeãªã¹ãããã®åé¤
ããã§ã¯åä½ç¢ºèªãçµãã£ãã®ã§ã¤ã³ã¹ã¿ã³ã¹ãterminateãã¾ãã
knife ec2 server delete i-3d87f568 --region ap-southeast-1
å¿ããã«nodeãªã¹ããããåé¤ãã¾ãã
$ knife node delete i-3d87f568
ããã§ä¸éãã®åä½ç¢ºèªãåºæ¥ã¾ããã
ããããããã¯ããã¾ã§åºæ¬çãªåä½ç¢ºèªã§ããå®éã¯ç°å¢ã«åããã¦recipeãç·¨éãã¦ä¸åº¦ã«é©ç¨ãããªã©ã®éç¨ã§å¹æãçºæ®ãã¾ãã
èªåã§ä¸ããrecipeã®ä½æã¯å¤§å¤ã§ããããããOpscode社ããæä¾ããã¦ãããã®ã«ä¿®æ£ãå ããªããchefã«æ
£ãã¦ããã®ãè¯ãããã§ãã