Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÀûÓà Docker ¹¹½¨¸ß¶È¼¯³É»¯µÄ Chef ¿ª·¢²âÊÔ»·¾³
 
×÷ÕߣºÕÅÒÝȺ À´Ô´£º²©¿ÍÔ°  ·¢²¼ÓÚ 2015-1-21
  2464  次浏览      27
 

±¾ÎĽéÉÜÁËÒ»ÖÖÎªÔÆ¼ÆËãÆ½Ì¨Öг£ÓõÄÅäÖùÜÀí¹¤¾ß Chef Ëù´òÔìµÄ¼¯³É¿ª·¢²âÊÔ»·¾³½â¾ö·½°¸£¬ÀûÓÃÁËÇáÁ¿¼¶ÐéÄ⻯¼¼Êõ Docker£¬½« Chef-Server¡¢Chef-Workstation ºÍ Chef-Client ²¿ÊðÔÚͬһ¸öÐéÄâ»úµ±ÖУ¬ÊµÏÖÁËϵͳ×ÊÔ´×îС»¯¼°¿ª·¢Ð§ÂÊ×î´ó»¯µÄ³¢ÊÔ¡£Í¨¹ý±¾ÎÄÄú¿ÉÒÔÈ«ÃæµØÁ˽⵽ÈçºÎÔÚÒ»¸ö×ÊÔ´ÓÐÏ޵Ļ·¾³ÏÂÃæ(±ÈÈ翪·¢ÈËÔ±µÄ±Ê¼Ç±¾µçÄÔ)½« Chef ϵͳµÄ¸÷¸öÄ£¿é°´ÕÕÇåÎúµÄÂß¼­½á¹¹²¿Êð²¢ÔËתÆðÀ´£¬´Ó¶ø¿ìËÙ¸ßЧµØ½øÐÐ Chef Cookbook µÄ¿ª·¢Óë²âÊԵĽâ¾ö·½°¸Óëʵʩϸ½Ú¡£

ǰÑÔ

Chef ÊÇ DevOps Ãô½Ý¿ª·¢ÔËά¼¼ÊõµÄÖØÒª¹¤¾ßÖ®Ò»£¬ÊÇÒ»ÖÖÖ±½ÓÃæÏò¿ª·¢ºÍÔËάµÄ¼¯ÖÐÅäÖùÜÀí¹¤¾ß¡£Chef ³£ÓõŤ×÷ģʽÊÇ Client-Server ģʽ£¬¿ª·¢²âÊÔ»·¾³ÐèÒª¶à¸öÍøÂç½Úµã¡£ÈçºÎ¸ßЧÀûÓÃÓ²¼þ×ÊԴͬʱÓÖÄܹ»Ãô½ÝÇá±ãµØ´î½¨¹¦ÄÜÍ걸µÄ¿ª·¢²âÊÔ»·¾³ÊÇÒ»¸öÓÐÒâÒåµÄÎÊÌâ¡£Docker ÊÇÒ»¸ö¹¹½¨ÔÚ LXC(Linux Container)¼¼ÊõÖ®Éϵ쬻ùÓÚ½ø³ÌÈÝÆ÷(Process Container)µÄÇáÁ¿¼¶ VM ½â¾ö·½°¸¡£±¾ÎĽéÉÜÁ˲ÉÓà VMware ÐéÄâ»úǶÌײ¿Êð Docker ÈÝÆ÷µÄ·½Ê½Ä£Äâ¶à½ÚµãµÄÍøÂç»·¾³£¬¹¹½¨Ò»Ì×¼¯³É»¯µÄ Chef ¿ª·¢²âÊÔ»·¾³£¬Ê¹ Chef µÄ¿ª·¢²âÊÔ¸ü¼Ó¸ßЧÃô½Ý¡£

ÇáÁ¿¼¶ÐéÄ⻯¼¼Êõ Docker µÄ¼ò½é¼°ÔÚÈí¼þ¿ª·¢²âÊÔÁìÓòµÄʹÓó¡¾°ÃèÊö

Docker ÊÇ PaaS ÌṩÉÌ dotCloud ¿ªÔ´µÄÒ»¸ö»ùÓÚ LXC µÄÓ¦ÓÃÈÝÆ÷ÒýÇæ£¬Èÿª·¢Õß¿ÉÒÔ´ò°üËûÃǵÄÓ¦ÓÃÒÔ¼°ÒÀÀµ°üµ½Ò»¸ö¿ÉÒÆÖ²µÄÈÝÆ÷ÖУ¬·¢²¼µ½ÈκÎÁ÷ÐÐµÄ Linux »úÆ÷ÉÏ£¬ÊµÏÖÒ»ÖÖÇáÁ¿¼¶µÄÐéÄ⻯·½°¸¡£Docker ÈÝÆ÷ÊÇÍêȫʹÓÃɳÏä»úÖÆ£¬Ï໥֮¼ä²»»áÓÐÈκνӿڣ¬¼¸ºõûÓÐÐÔÄÜ¿ªÏú£¬²»ÒÀÀµÓÚÈκÎÓïÑÔ¡¢¿ò¼Ü»ò°üװϵͳ£¬¿ÉÒÔºÜÈÝÒ×µØÔÚ»úÆ÷ºÍÊý¾ÝÖÐÐÄÖÐÔËÐС£

Docker µÄ»·¾³°üÀ¨ image ºÍ container¡£image ÊDzÙ×÷ϵͳ¾µÏñ£¬container ÊÇÔËÐоµÏñµÄÈÝÆ÷£¬ËüÃÇÖ®¼ä¾ÍÏñÊÇÃæÏò¶ÔÏó³ÌÐòÉè¼ÆÖÐÀàºÍʵÀýÖ®¼äµÄ¹ØÏµ¡£Docker Ìṩһ¸ö¾µÏñ·þÎñÆ÷µÄ¹¦ÄÜ£¬¿ÉÒÔÖ±½Ó´ÓÍøÉÏÏÂÔØ¸÷ÖÖÊÂÏÈÅäÖúõľµÏñ¡£°ÑÏÂÔØµÄ»ù´¡¾µÏñÔÚÈÝÆ÷ÖÐÔËÐÐÆðÀ´ºó£¬¿ÉÒÔ¼ÌÐøÔÚÀïÃæ°²×°²¿ÊðÓ¦Óü°·þÎñ£¬¾ÍÏñÊÇÔÚһ̨¶ÀÁ¢µÄÐéÄâ»úÖеIJÙ×÷Ò»Ñù£¬ËùÓеÄÓ¦Óð²×°¼°ÅäÖñ仯¶¼¿ÉÒÔ±£´æ»òÕß´ò°üÉú³ÉÒ»¸öÐµĶ¨ÖÆ»¯ image¡£

¶ÔÓÚÉú²ú»·¾³À´Ëµ£¬Docker ÊÇÒ»¸ö·Ç³£ÇáÁ¿¼¶µÄÈÝÆ÷£¬ËùÒÔ²»±Øµ£ÐÄÐÔÄÜÎÊÌâ¡£ÓÈÆäÔÚijЩӲ¼þ×ÊÔ´½ôÕÅÈ´ÓÖÐèÒª¶ą̀¶ÀÁ¢Ö÷»ú½øÐзֲ¼Ê½¼ÆËãµÄʹÓó¡¾°ÖУ¬ÒýÈë Docker À´ÊµÏÖÐéÄâ»úµÄǶÌײ¿ÊðÒ»·½Ãæ¿ÉÒÔÂú×ã¶ÀÁ¢Ö÷»ú×ÊÔ´µÄÄ£Ä⣬ÁíÒ»·½ÃæÓÖ¿É´ó´ó½µµÍÓ²¼þ×ÊÔ´µÄÐèÇó¡£ÏÂÎÄÖн«Òª½éÉܵÄÅäÖùÜÀí¹¤¾ß Chef µÄ¼¯³É»¯¿ª·¢²âÊÔ»·¾³¾ÍÊÇ Docker µÄÒ»¸ö±È½ÏµäÐ͵ÄÓ¦Óó¡¾°¡£

ÅäÖùÜÀí¹¤¾ß Chef ¼°Æä¸÷¸ö¹¦ÄÜÄ£¿é½éÉÜ

Chef ÊÇĿǰ±È½ÏÁ÷ÐеÄÒ»ÖÖÖ±½ÓÃæÏò¿ª·¢ºÍÔËάµÄ¼¯ÖÐÅäÖùÜÀí¹¤¾ß£¬ÓÉÒ»ÖÖ´¿ Ruby µÄÁìÓòרÓÃÓïÑÔ£¨DSL£©±£´æÏµÍ³ÅäÖá£Chef ÓÉ Opscode ¹«Ë¾¿ª·¢£¬²¢ÔÚ Apache ЭÒé°æ±¾ 2.0 Ï¿ªÔ´·¢²¼¡£

Chef ¶ÔÒªÅäÖõĶÔÏóÌṩÁË¿çÆ½Ì¨µÄ³éÏó£¬Ê¹Óà Chef ½øÐÐϵͳÅäÖõÄϵͳ¹ÜÀíÔ±Ôڴ󲿷Öʱ¼äÖ»Ðè¸úÕâЩ³éÏóµÄ×ÊÔ´´ò½»µÀ£¬¶ø²»ÓùØÐľßÌåʵÏÖ£¬ÈçÖ»Ðè¹ØÐÄÒªÌí¼ÓʲôÈí¼þ»òÓû§£¬²»ÐèÒª¹ØÐÄÕâЩÓû§»òÈí¼þÊÇÔõôÌí¼ÓÉÏÈ¥µÄ¡£

Chef Ò»°ã³£ÓõÄÓÐÁ½ÖÖ¹ÜÀíģʽ£¬·Ö±ðΪ£º

1.Chef-Solo ģʽ£¬¼´ Chef µÄ standalone ģʽ£¬Ã»ÓÐרÃÅµÄ Chef-server£¬Chef-Solo ×÷Ϊһ¸öºǫ́·þÎñÒ»ÑùÔËÐÐÔÚËù¹ÜÀíµÄ·þÎñÆ÷ÉÏ£¬Í¨¹ý cookbook À´¿ØÖƱ¾»úµÄÅäÖùÜÀí¡£

2.Client-Server ģʽ£¬¼´Ëù¹ÜÀíµÄ·þÎñÆ÷×÷Ϊ chef-client£¬Í³Ò»ÓÉ chef-server ½øÐйÜÀí£¬¹ÜÀí°üÀ¨°²×°¡¢ÅäÖõȹ¤×÷¡£Chef-client Óë Chef-server Ö®¼äÓÃÖ¤Êé½øÐÐÈÏÖ¤¡£¿ª·¢ÈËÔ±¿Éͨ¹ý¿ª·¢¹¤×÷Õ¾ Chef-workstation ÌṩµÄ¹¤¾ß¼¯½øÐоßÌåµÄÅäÖÃʵÀýµÄ¿ª·¢Óë¹ÜÀí¡£¶¨ÖƺõÄÅäÖÃʵÀýÒÔ²ËÆ×"Cookbook"µÄÐÎʽͨ¹ý Chef-workstation ÉÏ´«µ½ Chef-server ÖУ¬ÓÉ Chef-server Õë¶Ô¿Í»§¶ËÉú³É×ÊÔ´ÁÐ±í£¬È»ºóÍÆË͵½¿Í»§¶Ë£¬ÔÚ¿Í»§¶ËÉÏÔËÐнÓÊÕµ½µÄ×ÊÔ´ÁÐ±í¡£´ËÖÖģʽ¹¦Äܹ¦ÄÜ×îÈ«£¬Ò²×ÔÓ£¬ÏÂÎĵĿª·¢²âÊÔ»·¾³´î½¨¾ÍÊÇ»ùÓÚÕâÖÖģʽ¡£

ÐèÇó·ÖÎö£º¹¹½¨Ò»Ì×ÍêÕûµÄ Chef ¿ª·¢²âÊÔ»·¾³ËùÐèµÄÍøÂç¼Ü¹¹¼°ÏµÍ³×ÊÔ´

Ò»¸ö Client-Server ģʽÏ嵀 Chef µÄ¿ª·¢²âÊÔ»·¾³£¬ÐèÒª chef-server¡¢chef-workstation ÒÔ¼° chef-client µÈ¹¦Äܽڵ㣬ÔÚÍøÂç×ÊÔ´Éϱ˴˶ÀÁ¢¡£Èç¹ûÓÃʵÌåÖ÷»úÀ´Ö§³Åÿһ¸ö¹¦ÄܽڵãÄ£ÄâÉú²ú»·¾³µÄ»°£¬ÔòÓ²¼þ¿ªÏú»á±È½Ï´ó£¬ÇÒ×ÊÔ´·ÖÅäÏà¶ÔÈßÓ࣬ÐԼ۱Ⱥܵ͡£

ÔÚµ¥Ò»ÎïÀí»úÉÏÓà VMware ÐéÄâ»úÀ´Ö§³Å¸÷¹¦Äܽڵ㣬¿ÉÒÔ´ó´ó¼õÉÙÎïÀíÖ÷»úµÄÊýÁ¿£¬µ«¿¼Âǵ½ÐéÄâ»úÊǶԲÙ×÷ϵͳµÄÍêȫģÄ⣬ËùÐèÕ¼ÓõÄ×ÊÔ´ºÍÎïÀíÖ÷»ú²î²»¶à£¬¶à¸öÐéÄâ»úͬʱÔËÐеÄʱºò¶ÔËÞÖ÷ʵÌå»úµÄÐÔÄÜÊǸö¿¼Ñé¡£ÔÚ¶à¸ö chef-client ¼¯Öв¿ÊðµÄÓ¦Óó¡¾°Ï£¬ÏµÍ³×ÊÔ´ºÜ¿ì±ã»á±»ºÄ¾¡¡£Èçͼ 1 ËùʾÊÇij¸ö Chef ¿ª·¢ÈËÔ±µÄ 8G Äڴ湤×÷»ú£¬ÔÚͬʱ¿ªÆôÁËÈý̨¸÷·ÖÅäÁË 1G ÄÚ´æµÄ VMware ÐéÄâ»úÔËÐÐ Chef µÄ Server/Workstation/Client Ö®ºó£¬ÔÙ¿ªÆô Eclipse µÈ¿ª·¢¹¤¾ß£¬µ±µ÷ÊÔÔËÐÐʱϵͳ×ÊÔ´ÒѱôÁٺľ¡£¬´Ëʱ¿ª·¢Ð§ÂÊ´óÊÜÓ°Ïì¡£

ͼ 1. ֻʹÓà VMware ÐéÄâ»ú¹¹½¨ Chef »·¾³µÄ×ÊԴʹÓÃÇé¿ö

Docker µÄÈÝÆ÷¼¶ÇáÁ¿»¯ÐéÄâ¼¼ÊõÇ¡µ½ºÃ´¦µØ½â¾öÁËÕâ¸öÄÑÌ⣬ͨ¹ýÈÝÆ÷°Ñ Chef µÄ¸÷¸ö¹¦Äܽڵã±Ë´Ë¸ôÀëµÄͬʱ£¬ÓÖÌÞ³ýÁË´óÁ¿ÎÞνµÄ×ÊÔ´Õ¼Óã¬Ï൱ÓÚ°ÑÒ»¸öÔ­ÏÈÐèÒª¶àÈËÁªºÏ²Ù×÷µÄÖØÐÍÎäÆ÷±ä³ÉÁËÒ»¸öÇáÓ¯Á鶯µÄËæÉíµ¥±ø×°±¸¡£

ÒÔ±¾ÎĽÓÏÂÀ´ÒªÕ¹Ê¾µÄ²Ù×÷»·¾³ÎªÀý£¬Ó²¼þ·½ÃæÎïÀíÖ÷»ú»¹ÊÇ 8G ÄÚ´æµÄ±Ê¼Ç±¾µçÄÔ£¬´ÓÓ²ÅÌÖÐÔ¤Áô 30G ´æ´¢¿Õ¼ä¸øÐéÄâ»ú¡£Èí¼þ·½ÃæÀûÓà VMware Workstation »ò VMware Server ´´½¨Ò»Ì¨ÐéÄâ»ú£¬·ÖÅä 1G Äڴ棬°²×° 64 λµÄ Ubuntu 12.04.3£¬ÐéÄâÍøÂçÒÔ VMware µÄ NAT ģʽÓë Host Ö÷»úÏàÁ¬£¬ÒÔ·½±ãÐéÄâ»úÁ¬½ÓÍâÍø½øÐÐÈí¼þ°üµÄ»ñÈ¡ÓëÉý¼¶¡£

ͼ 2. ±¾ÎÄ»·¾³ÖÐ VMware ÐéÄâ»úµÄÅäÖÃ

ϵͳÉè¼Æ£ºÀûÓà Docker µÄÇáÁ¿¼¶ÐéÄâ»ú²¿Êð Chef µÄ¸÷¸öÄ£¿é

Ê×ÏÈÔÚ VMware Öд Ubuntu12.04.3 ÐéÄâ»ú£¬È»ºó°²×° Docker£¬ÏÞÓÚÆª·ù VMware ÐéÄâ»úºÍ Docker µÄ¾ßÌå°²×°²½Öè¾Í²»Ïêϸ½éÉÜÁË£¬ÈçÐèÒªÇë²Î¼û±¾ÏµÁÐÆäËûÏà¹ØÎÄÕ¡£ÏÂÃæÖØµã½éÉÜÒ»ÏÂΪÁ˴ Chef µÄ¼¯³É¿ª·¢²âÊÔ»·¾³ÔÚ Docker »·¾³ÖÐËù´´½¨µÄ container ºÍÏà¹ØÅäÖá£
ÔÚ Docker ÖÐÔ¤ÏÈÏÂÔØÁËÁ½ÖÖ²Ù×÷ϵͳµÄ image£¬·Ö±ðÊÇ Ubuntu ºÍ CentOS¡£ÓÉ Ubuntu image Éú³ÉÁ½¸ö Container£¬·Ö±ð±ê¼ÇΪ Container1 ºÍ Container2£¬ ÓÉ CentOS image Éú³ÉÒ»¸ö Container£¬±ê¼ÇΪ Container3¡£Chef-Server ½«±»²¿ÊðÔÚ Ubuntu Ðé»úÉÏ£¬Chef-Workstation ½«±»²¿ÊðÔÚ Docker Container1 ÉÏ£¬Container2 ºÍ Container3 ×÷ΪÁ½ÖÖ²»Í¬²Ù×÷ϵͳµÄ Chef-client¡£ÓÉÓÚ Docker ÊÇ»ùÓÚ LXC µÄ£¬¶ø LXC ÓÖÊÇ»ùÓÚ cgroup µÈ Linux kernel ¹¦Äܵģ¬ËùÒÔ Container µÄ guest ϵͳֻÄÜÊÇ Linux base µÄ£¬Ò²¾ÍÊÇ˵ Windows Ï嵀 Chef-Client ÎÞ·¨Óà Docker µÄ Container À´Ä£Ä⣬ֻÄÜÔÙ½¨Ò»¸ö Windows Ðé»ú£¬ÕâÒ²ÊÇĿǰʹÓà Docker µÄÒ»¸ö¾ÖÏÞ£¬µ«±ÈÆðÈ«²¿½Úµã¶¼Õ¼ÓÃÒ»¸öÐéÄâ»úµÄÔ­·½°¸£¬ÒýÈë Docker »¹ÊÇÖÁÉÙÊͷųöÁË Chef-Workstation ÕâÒ»¸öÐé»ú×ÊÔ´£¬ÔÚʹÓà Linux base µÄ Chef-Client µÄ³¡¾°ÏÂ×ÊÔ´µÄ½ÚÊ¡Ôò¸ü¼ÓÏÔÖø¡£ÏÂÃæÊÇÏÂÔØ image ²¢ÅäÖà Container ÔËÐеĹý³Ì£¬ÒÔ Ubuntu ¾µÏñΪÀý£º

ÔÚ VMware ÐéÄâ»úÉÏÏÂÔØ Ubuntu image ²¢²é¿´½á¹û

# docker pull ubuntu
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest 736be02b6054 4 months ago 238.4 MB

ÒÔ½»»¥Ê½´ò¿ªÒ»¸ö Ubuntu Container£¬°²×° SSH ·þÎñÆ÷£¬ÒÔ±ãºóÃæ¿ÉÒÔÈà Container ÔÚºǫ́ÔËÐУ¬È»ºóͨ¹ý SSH ¿Í»§¶ËÁ¬È룬ÕâÑùÔÚʹÓÃÉÏ¾ÍºÍÆÕͨÐé»úÒ»ÑùÁË¡£

# docker run ¨Ci ¨Ct ubuntu /bin/bash
root@24808f660519:/# apt-get update #ÔÚ ubuntu container µÄ½»»¥Ê½»·¾³ÖиüРapt Ô´
root@24808f660519:/# apt-get install openssh-server
root@24808f660519:/# mkdir /var/run/sshd
root@24808f660519:/# passwd #ÉèÖà ubuntu container µÄ root ÃÜÂ룬ÒÔ±ã SSH ¿Í»§¶ËµÇ¼
root@24808f660519:/# exit

Õâʱ¾Í¿ÉÒÔͨ¹ýºǫ́½ø³Ì·½Ê½³¤ÆÚÔËÐÐ´Ë Ubuntu Container ÁË£¬µ«Õë¶ÔÎÒÃÇÕâ¸ö Chef µÄʹÓó¡¾°»¹ÓÐÒ»¸ö²½ÖèÒª×ö£¬¾ÍÊÇÉèÖà DNS µØÖ·Ó³Éä¡£ÔÚ Client-Server ģʽµÄ Chef ϵͳÖУ¬ÒªÇó Chef-Server/Chef-Workstation/Chef-Client ±Ë´ËÖ®¼ä¶¼Äܹ»Í¨¹ý hostname »òÓòÃûÀ´Ê¶±ð£¬¶øÔÚ Docker Container ÖÐ/etc/hosts ÊÇÖ»¶ÁµÄ²»ÔÊÐíÐÞ¸ÄËùÒÔ±ØÐëʹÓÃÍⲿµÄ DNS ϵͳ½øÐеØÖ·Ó³Éä¡£ÔÚ±¾ÎĵÄʹÓó¡¾°ÖУ¬°²×° Docker µÄ VMware ÐéÄâ»ú±» Docker ·ÖÅäÁËÒ»¸öÄÚ²¿µØÖ· 172.17.42.1£¬Docker Container »á°´Æô¶¯Ë³Ðò±»ÒÀ´Î·ÖÅä 172.17.0.2,172.17.0.3¡­¡­£¬ÎªÁ˽â¾öµØÖ·Ó³ÉäÎÊÌ⣬ÔÚ°²×° Docker µÄ VMware Ubuntu Ðé»úÉϰ²×°ÁË bind9 DNS server£¬¶Ô Docker ÄÚ²¿µØÖ·×öºÃÓ³É䡣Ȼºó¾Í¿ÉÒÔͨ¹ýÒÔÏÂÃüÁîÕýʽÆô¶¯ Docker Cotainer£¬²¢Ê¹ÆäÒÔºǫ́½ø³Ì·½Ê½³¤ÆÚÔËÐУº

#docker run -d -dns=192.168.87.137 -v /home/backup:/home/backup ubuntu /usr/sbin/sshd -D

# -dns ²ÎÊýÖ¸¶¨ÁË DNS server µØÖ·£¬ÕâÀïÊÇ VMware ubuntu µÄµØÖ·¡£

# -v ²ÎÊýÖ¸¶¨ÁË Docker server ºÍ Docker container Ö®¼äµÄ¹²ÏíĿ¼£¬Ò²¾ÍÊÇ˵ÔÚ°²×° Docker µÄ VMware Ubuntu Ðé»úÉϵÄ/home/backup Ŀ¼ÀïµÄÎļþ¿ÉÒÔÔÚ container µÄ/home/backup Ŀ¼ֱ½Ó·ÃÎÊ¡£

# /usr/sbin/sshd ±íʾ container ¿ª»úÆô¶¯ SSH server

# -D ±íʾ container ÒÔºǫ́·½Ê½ÔËÐÐ

´Ëʱ¾Í¿ÉÒÔͨ¹ý ssh µÇ¼µ½ container µ±ÖУ¬Ïñ²Ù×÷Õý³£»úÆ÷Ò»Ñù¶Ô container ½øÐа²×°Ó¦Óõȸ÷ÖÖ²Ù×÷ÁË¡£È»ºó¸ù¾ÝϵͳÐèÒªÒÀ´Î¿ªÍ¨ÆäËû¼¸¸ö Container£¬ÕâÑùÎÒÃÇÕâ¸öÓ¦Óó¡¾°µÄ IT »ù´¡¼Ü¹¹±ä×¼±¸Íê±Ï¡£Í¨¹ýͼ 3 µÄ VMware ½ØÍ¼¿ÉÒÔ¿´µ½£¬VMware ÐéÄâ»úÆô¶¯ÁËһ̨£¬È»ºóÔÚÐéÄâ»úÄÚ²¿ÔËÐÐÁËÁ½¸ö docker ÈÝÆ÷¡£

ͼ 3.±¾ÎÄ»·¾³ÖеÄÐé»úÓë docker ÈÝÆ÷

ÔÚÂß¼­ÉÏ£¬±¾ÎÄ»·¾³µÄÕûÌå¼Ü¹¹¿ÉÒÔÈçͼ 4 Ëùʾ£º

ͼ 4.±¾ÎÄ»·¾³ÖеÄϵͳÂß¼­¼Ü¹¹Í¼

ϵͳʵʩ£ºChef ¸÷¸öÄ£¿éÔÚ Docker ÖеݲװÓëÔËÐÐ

ÔÚ Docker server ËùÔÚ VMware Ubuntu ÐéÄâ»úÉϰ²×° Chef-Server

°²×°¹ý³Ì¿É²Î¿¼¹Ù·½Îĵµ£¨http://docs.opscode.com/install_server.html£©£¬Êµ¼Ê²Ù×÷±È½Ï¼òµ¥£¬¾ßÌåÈçÏ£º

´Ó¹ÙÍøÏÂÔØ²¢°²×° Chef-Server µÄ deb °ü£¬±¾ÎÄʵÀýËù²ÉÓõİ汾Ϊ 11.0.11£º

# dpkg -i chef-server_11.0.11-1.ubuntu.12.04_amd64.deb

½øÐа²×°ºóÅäÖãº

# chef-server-ctl reconfigure

×îºóͨ¹ý chef ×Ô´øµÄ¼¯³É²âÊÔ¼¯À´ÑéÖ¤°²×°£º

# chef-server-ctl test

Èç¹û·µ»Ø±¨¸æÖÐûÓб¨´í£¬Ôò±íʾ Chef-Server °²×°³É¹¦¡£

ÔÚ Docker Container1 Éϰ²×° Chef-Workstation

Ö÷ÒªÊǰ²×° chef-client µÄ deb °ü£¬ÅäÖà Chef-Workstation µ½ Chef-Server µÄ·ÃÎÊ,²¢ÅäÖà knife ¹¤¾ß¼¯¡£°²×°¹ý³Ì¿É²Î¿¼¹Ù·½Îĵµ£¨http://docs.opscode.com/chef/install_workstation.html£©£¬¾ßÌå²½ÖèÈçÏ£º

´Ó¹ÙÍøÏÂÔØ²¢°²×° Chef-Client µÄ deb °ü£¬±¾ÎÄʵÀýËù²ÉÓõİ汾Ϊ 11.6.0£º

root@24808f660519:/opt/chef-repo# dpkg -i chef_11.6.0-1.ubuntu
.12.04_amd64.deb

°²×°ÅäÖà chef-repo£¨chef-repo ÊÇ´æ·Å¿ª·¢ºÃµÄ cookbooks µÄµØ·½£¬knife ÃüÁîÐй¤¾ß»á´Ó chef-repo ÉÏ´«Êý¾Ýµ½ chef-server£¬ÒÔ¹©Ëù¹ÜÀíµÄÄ¿±êÖ÷»úÒ²¾ÍÊÇ Chef-Client »ñÈ¡²¢Ö´ÐС££©:

root@24808f660519:/opt/chef-repo # git clone git://github.com/
opscode/chef-repo.git

ÔÚ chef-repo Ŀ¼Ï£¬´´½¨.chef Ŀ¼£¬²¢ÇÒÐÞ¸Ä.gitignore Îļþ£¬Ìí¼Ó .chef

ÅäÖà knife ¹¤¾ß¼¯£º

root@24808f660519:/opt/chef-repo # knife configure --initial

ÐèÒªÊäÈëÏà¹ØµÄÐÅÏ¢£¬Ö÷ÒªÊÇ server µÄ URL£¬client µÄ key£¬client ×¢²á server ËùÐèÒªµÄ validator ºÍ validator private key µÈ£¬ÐèÒª´Ó server ¶Ë copy Á½¸öÎļþµ½ workstation »úÆ÷ÉÏ£º

root@24808f660519:/opt/chef-repo # scp root@<server ip>:/etc/chef-
server/admin.pem /opt/chef-repo/.chef/
root@24808f660519:/opt/chef-repo # scp root@<server ip>:/etc/chef-
server/ chef-validator.pem /opt/chef-repo/.chef/

Óà knife ¹¤¾ßÁгöһϵ±Ç°×¢²áÔÚ Chef-Server É쵀 Chef-Client£¬Èç¹ûÄÜ¿´µ½ chef-validator ¾Í±íʾ workstation ÅäÖóɹ¦¡£

root@24808f660519:/opt/chef-repo/.chef# knife client list
chef-validator
chef-webui

Chef-Client ¹ÜÀí½ÚµãµÄ×Ô¶¯»¯°²×°

¾ÍÊÇÔÚ Chef-Workstation ÉÏÀûÓà knifebootstrap À´ÊµÏֵ쬰²×°¹ý³Ì¿É²Î¿¼¹Ù·½Îĵµ£º £¨http://docs.opscode.com/install_bootstrap.html£©¡£ÔÚ workstation ÉÏÔËÐÐ knife bootstrap ÃüÁ¸ñʽÈçÏ£º

knife bootstrap <node ip> -x <username> -P <password> --sudo

ÔÚ±¾ÎÄ»·¾³ÊµÀýÖУ¬ÎÒÃÇÏëÔÚ Docker Container2 ÉÏÃæ°²×° Chef-Client ¹ÜÀí½Úµã£¬Docker server ¸ø Container2 ·ÖÅäµÄ IP ÊÇ 172.17.0.3£¬ÎÒÃÇÔÚ֮ǰÅäÖà Container µÄʱºòÉ趨µÄ root ÃÜÂëÊÇ passw0rd£¬Ôò bootstrap ÃüÁîÖ´ÐÐÈçÏ£º

root@24808f660519:/opt/chef-repo/.chef # knife bootstrap 172.17.0.3 ¨Cx root ¨CP passw0rd

Ö´Ðйý³ÌÖÐ Chef-Server »á×Ô¶¯ÍÆËÍ PAM ÈÏÖ¤Îļþ¼°ÃüÁģ°åµ½ Chef-Client ¹ÜÀí½ÚµãÉÏ£¬È»ºó Chef-Client ×Ô¶¯Åú´¦ÀíÖ´ÐÐ client °üÏÂÔØ°²×°¡¢ÔÚ server ÉÏÈÏÖ¤²¢×¢²áµÈ¹¤×÷£¬bootstrap Ö´ÐнáÊøºóÔÙÔËÐÐ knife client list ¿ÉÒÔ¿´µ½ Chef-Client ¹ÜÀí½ÚµãµÄ FQDN ÒѳöÏÖÔÚ client ÁбíÖУº

root@24808f660519:/opt/chef-repo/.chef# knife client list
chef-validator
chef-webui
f8f99a0f4d52 #´Ë¼´Îª Docker Server ¸ø Docker Container2 ·ÖÅäµÄ hostname

ÖÁ´Ë£¬Õâ¸öÓÉ VMware ÐéÄâ»úǶÌ× Docker Container ʵÏֵɻ¯µÄ Chef ¿ª·¢²âÊÔ»·¾³¾Í´î½¨Íê³ÉÁË¡£

ϵͳ²âÊÔ£ºÔÚÕâÌ×¼¯³É»·¾³ÖнøÐÐÒ»¸öÍêÕûµÄ Chef Cookbook µÄ¿ª·¢²âÊÔ¹ý³Ì

ÏÞÓÚÆª·ù£¬±¾ÎľÍÓÃÒ»¸ö¹Ù·½ÌṩµÄ»ù±¾ÈëÃż¶ cookbook ʵÀýÀ´×öһϲâÊÔ£¬ÑéÖ¤Ò»ÏÂÕâÌ×¼¯³É»·¾³µÄÔËתÁ÷³Ì¡£¾ßÌåµÄ chef cookbook ¿ª·¢¼¼ÇÉÇë²Î¼û±¾ÏµÁÐÆäËûÏà¹ØÎÄÕ¡£

¿ÉÒԵǼµ½ Chef µÄ¹Ù·½ÉçÇø http://community.opscode.com/cookbooks£¬ËÑË÷ÊÇ·ñÒѾ­´æÔÚÓÐÏà¹ØµÄ cookbook ÌṩʹÓᣱ¾ÎÄѡȡÆäÖÐÃûΪ user µÄ cookbook À´×öÊÔÑ飬Æä¹¦ÄÜÊÇÔÚ Chef-Client ¹ÜÀí½ÚµãÉÏ´´½¨Ö¸¶¨Óû§¡£

ÏÂÔØ cookbook£¬ÔÚ Chef-Workstation ÉϲÙ×÷£º

# root@24808f660519:~# sudo knife cookbook site install user

ϵͳ»á×Ô¶¯È¥¹ÙÍøÏÂÔØ user µÄ cookbook ´úÂë°ü£¬²¢ÔÚ Chef-Workstation µÄ chef-reop Ŀ¼ÖÐ×Ô¶¯½âѹËõºÃ£¬×îºó¿ÉÒÔ¿´µ½ÈçÏÂÌáʾ±íÃ÷°²×°³É¹¦£º

Cookbook user version 0.3.0 successfully installed

user cookbook µÄĿ¼½á¹¹Îª£º

root@24808f660519:/opt/chef-repo/cookbooks/user# ls
CHANGELOG.md README.md Rakefile attributes metadata.json metadata.rb
providers recipes resources templates

user µÄ README.md ÖжÔÕâ¸ö cookbook µÄʹÓÃÓÐ˵Ã÷£¬ÐèÒª½¨Á¢Ò»¸öÃûΪ users µÄ data bag£¬½«Óû§µÄÐÅϢд³ÉÒ»¸ö JSOn Îļþ·ÅÔÚÏÂÃæ£¬ÔÙͨ¹ý override_attributes ÔÚ role µÄÅäÖÃÎļþÖÐÖ¸¶¨ÐèÒªÅäÖõÄÓû§¡£

ÉÏ´« cookbook µ½ chef-server£º

root@24808f660519:/opt/chef-repo# knife cookbook upload user
Uploading user [0.3.0]
Uploaded 1 cookbook.

´´½¨ role£º

root@24808f660519:/opt/chef-repo# cd roles
root@24808f660519:/opt/chef-repo/roles# vi testuser.rb
name "testuser"
run_list(
"recipe[user]",
"recipe[user::data_bag]"
)
override_attributes(
"users" => [ "testuser1" ]
)

ÉÏ´« role µ½ chef-server£º

root@24808f660519:/opt/chef-repo/roles# knife role from file testuser.rb
Updated Role testuser!

Ϊ user Õâ¸ö cookbook ´´½¨ data_bag£º

root@24808f660519: /opt/chef-repo# cd data_bags
root@24808f660519: /opt/chef-repo/data_bags# mkdir users; cd users
root@24808f660519:/opt/chef-repo/data_bags/users# vi testuser1.json
{
"id" : "testuser1",
"gid": "admin",
"comment" : "testuser1",
"home" : "/home/testuser1",
"create_user_group":"true",
"ssh_keygen": "false",
"ssh_keys" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+upV++0vIM2PuD2XvH+zOUF6
JsfofPCvCdqZ/Wg0GaRvcuPpKs7Ua2APSsvtvEz9ohQvexS1DO4G1ZjIO20dsc82BHTFxd3DmZyQ8g/CLoIKIdkDI
mSffQxBYM//8URvtk16HTmuYVY9poalbVhlErhg0xSbyx/DQfOChfc34T8481iWPZ0pnJLj7z5AUvYR8fcWGtbMhv
eoyKuB4VocsQvKfgVUauS1jIGGac7kC8XGVc6fEVzzTycS7dTypzHDJp3I9wHWoiMF4SD5MRb0sEhlvaOtryHGVdc
fFj4Mrdiu8NepL7yyCb9qGdB7QbT1+hNCnZukWP4Iz6yzATLzS"
}

ÉÏ´« data_bag µ½ Chef-Server

root@24808f660519:/opt/chef-repo/data_bags/users# knife data bag from file users testuser1.json
Updated data_bag_item[users::testuser1]

Ϊ½ÚµãÔö¼Ó run_list£¬¼´½« testuser Õâ¸ö½ÇÉ«¸³¸ø Chef-Client ¹ÜÀí½Úµã

root@24808f660519:/opt/chef-repo/roles# knife node run_list add f8f99a0f4d52 "role[testuser]"
f8f99a0f4d52:
run_list: role[testuser]

ÖÁ´Ë£¬¶Ô user Õâ¸ö cookbook µÄÅäÖü° server ¶Ë²¿ÊðÒÑÍê³É£¬¿ÉÒÔ¿ªÊ¼Õýʽ¹¤×÷ÁË¡£

ÔÚ Chef-Client ¹ÜÀí½ÚµãÉÏÖ´ÐÐ chef-client À­È¡ÅäÖã¬Ö´Ðнá¹ûÈçͼËùʾ£º

ͼ 5. ÔÚ Chef-Client ¹ÜÀí½ÚµãÉÏÖ´ÐÐ chef-client À­È¡ÅäÖõÄÖ´Ðнá¹û

ÎÒÃÇ¿ÉÒÔ¿´µ½ Chef-Client ¹ÜÀí½ÚµãÒѾ­³É¹¦À­È¡µ½ÁË testuser1 Õâ¸öÓû§µÄÐÅÏ¢£¬²¢×Ô¶¯µÄ½øÐÐÁËһϵÁеÄÅäÖã¬Íê³ÉÁËÕâ¸öÐÂÓû§µÄ×Ô¶¯»¯´´½¨¡£
´ËʱÔÙÀ´¿´Ò»ÏÂÖ÷»úµÄ×ÊÔ´ÏûºÄÇé¿ö£¬¿ÉÒÔ¿´µ½ºÍ֮ǰûÓÐÒýÈë docker ʱÏà±È£¬Ö÷»úÄÚ´æºÍ CPU µÄÏûºÄÇé¿ö¶¼´ó·ùºÃת£¬ÏµÍ³ÔËתÁ÷³©¡£Èçͼ 6 Ëùʾ£º

ͼ 6. ʹÓà VMware ÐéÄâ»úÄÚǶ docker Ëù¹¹½¨µÄ Chef »·¾³µÄ×ÊԴʹÓÃÇé¿ö

½áÊøÓï

ͨ¹ýÒÔÉÏʵÀý£¬ÎÒÃǾͳɹ¦µØÔÚÕâ¸ö¼¯³É»¯µÄ Chef ¿ª·¢²âÊÔ»·¾³ÖУ¬Ê¹Óà Chef µÄ user Õâ¸ö cookbook Íê³ÉÒ»´Î·þÎñÆ÷µÄ×Ô¶¯»¯²¿Êð¡£

¶ÔÓÚ Chef ¿ª·¢ÈËÔ±À´Ëµ£¬Ê¹ÓÃÕâÌ×¼¯³É»¯»·¾³¿ÉÒÔ¼õÉÙ¶ÔÓÚÓ²¼þ»·¾³µÄÒÀÀµ£¬Ê¹¿ª·¢ÈËÔ±¸ü¶àµØ¼¯ÖÐÓÚ Chef recipe µÄ¿ª·¢±¾Éí£¬Ò²·½±ã´úÂëµÄµ¼³öÓëÖØ¹¹¡£¶ÔÓÚ Chef ²âÊÔÈËÔ±À´Ëµ£¬ÓÉÓÚÕâÌ×»·¾³ÊÇ»ùÓÚ VMware µÄ£¬¿ÉÒÔÀûÓà VMware ±¾ÉíµÄÒ»Ð©ÌØÐÔ·½±ãµØ½øÐвâÊÔ»·¾³µÄ»Ø¹öÒÔ¼°µü´ú£¬Í¬Ê±ÀûÓà Docker ¿ÉÒÔÃô½ÝµØÄ£Äâ³ö¶à½ÚµãµÄÓ¦Óó¡¾°£¬ÅäºÏ VMware ÐéÄâÍøÂ绹¿ÉÒÔÓëÍⲿʵÌåÍøÂçÏàͨ£¬Ê¹²âÊÔ»·¾³µÃµ½½øÒ»²½µÄÀ©Õ¹¡£

   
2464 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ