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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
saltstackÓëansible¶Ô±È
 
×÷Õß±ÊÃû£º chao199512
  4887  次浏览      27
 2019-12-3
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª´ÓÏìÓ¦ËÙ¶È¡¢°²È«¡¢×ÔÉíÔËά¡¢Ê¹ÓÃÓï·¨µÈ·½Ãæ¶ÔAnsibleºÍSaltStackµÄ²»Í¬µã½øÐзÖÎö£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ansible vs SaltStack Ë­²ÅÊÇ×Ô¶¯»¯ÔËάºÃ°ïÊÖ£¿

1.¸ÅÊö

»¥ÁªÍø¼¼ÊõµÄ·¢Õ¹£¬»ú·¿ÀïÃæ»úÆ÷µÄÊýÁ¿ËæÖ®Ôö¼Ó£¬ÔËάµÄÄѶȺ͸´ÔÓ¶ÈÒ²ÔÚÔö¼Ó£¬ÐèҪͶÈëµÄÔËάÈËÔ±ºÍ³É±¾Ò²ÔÚÔö¼Ó£¬´Ó¶ø´ßÉúÁËһϵÁеÄ×Ô¶¯»¯ÔËά¹¤¾ß£¨Ansible¡¢SaltStack¡¢Puppet£©µÄ²úÉúÀ´¼õÉÙÔËάµÄ³É±¾¡£

Ansible¡¢SaltStack¡¢Puppet¶¼ÊÇĿǰ±È½ÏÊÜÓû§»¶Ó­µÄ×Ô¶¯»¯»¯ÔËά¹¤¾ß£¬ÆäÖÐAnsibleºÍSaltStackʹÓÃpython ±àд£¬¾ßÓÐÁ¼ºÃµÄ¿ÉÒÆÖ²ÐÔ¡£PuppetµÄʹÓýű¾Óï·¨¸´ÔÓ£¬ÇÒ¿ÉÒÆÖ²ÐԱȽϲĿǰµÄʹÓÃÕßÂýÂý±äÉÙ¡£±¾ÎĽ«¶ÔAnsible¡¢SaltStack½øÐÐ ÏêϸµÄ±È½Ï¡£

2.AnsibleºÍSaltStackµÄ±È½ÏºÍÑ¡ÐÍ

AnsibleºÍSaltStack¶¼ÊǵÄĿǰ×îÁ÷ÐеÄ×Ô¶¯»¯ÔËά¹¤¾ß£¬ÄÜÂú×ãÆóÒµITϵͳµÄ×Ô¶¯»¯ÔËά¹ÜÀí¡£ÕâÁ½¸ö¹¤¾ß¶¼ÊÇÓÃpython¿ª·¢ µÄ£¬¿ÉÒÔ²¿Êðµ½²»Í¬µÄϵͳ»·¾³Öк;ßÓÐÁ¼ºÃµÄ¶þ´Î¿ª·¢ÌØÐÔ¡£ÔÚÖ´ÐеÄÃüÁîµÄʱºò,AnsibleºÍSaltStack¶¼Ö§³ÖAd-hoc²Ù×÷ģʽ£¬Ò²¿ÉÒÔ Ö§³Ö½«ÃüÁîдÈëyaml¸ñʽÎļþÖÐÔÙÅúÁ¿Ö´ÐС£ÔÚ´¦Àí·µ»Ø½á¹û·½Ã棬AnsibleºÍSaltStackµÄ·µ»Ø½á¹û¸ñʽ¶¼ÊÇJSON¸ñʽ£¬±È½ÏÒ×¶®ºÍ·½±ã ½âÎö¡£±¾ÎÄÖ÷Òª´ÓÏìÓ¦ËÙ¶È¡¢°²È«¡¢×ÔÉíÔËά¡¢Ê¹ÓÃÓï·¨µÈ·½Ãæ¶ÔAnsibleºÍSaltStackµÄ²»Í¬µã½øÐзÖÎö£º

1.ÏìÓ¦ËÙ¶È

SaltStackµÄmasterºÍminionÖ÷»úÊÇͨ¹ýZeroMQ´«ÊäÊý¾Ý£¬¶øAnsibleÊÇͨ¹ý±ê×¼SSH½øÐÐÊý¾Ý´«Ê䣬SaltStackµÄ ÏìÓ¦ËÙ¶ÈÒª±ÈAnsible¿ìºÜ¶à¡£±ê×¼SSHÁ¬½ÓµÄʱºò±È½ÏºÄ·Ñʱ¼ä£¬ZeroMQ´«ÊäµÄËÙ¶È»á¿ìºÜ¶à£¬ËùÒÔµ¥µ¥´ÓÏìÓ¦ËÙ¶È·½Ã濼ÂÇSaltStack »áÊǸüºÃµÄÑ¡Ôñ¡£µ«ÊÇÔÚÒ»°ãµÄÔËά³¡¾°ÏÂAnsibleµÄÏìÓ¦ËÙ¶ÈÒ²¿ÉÒÔÂú×ãÐèÇó¡£

ÔÚ±í¸ñ1 AnsibleºÍSaltStackÐÔÄܲâÊÔÖУ¬²âÊÔÁËAnsibleºÍSaltStackÔÚÖ´ÐÐÃüÁî¡¢·Ö·¢Îļþ¡¢¶ÁÈ¡ÎļþºÍÅúÁ¿½Å±¾Ö´ÐеÈ×Ô¶¯»¯ÔËά³¡¾°ÏµÄÐÔÄÜ£¬ÓɺÄʱÊý¾Ý¿ÉÒÔ¿´³öAnsibleµÄÏìÓ¦ËٶȱÈSaltStackÒªÂý10±¶×óÓÒ¡£

2.°²È«

AnsibleºÍSaltStack¶¼ÐèÒªºÍÔ¶³ÌÖ÷»ú½øÐÐÁ¬½Ó£¬ËüÃǵÄ×î´óµÄ°²È«ÎÊÌâ¾ÍÊÇMITM¹¥»÷£¬Í¨¹ýαװ³ÉMasterÖ÷»úºÍÔ¶³ÌÖ÷»ú½øÐÐͨÐÅ£¬´Ó¶ø½øÐй¥»÷¡£

SaltStackʹÓÃZeroMQ½øÐÐÊý¾Ý´«Ê䣬ZeroMQ±¾ÉíÊý¾Ý´«Êä²»Ö§³Ö¼ÓÃÜ£¬SaltStack¿ÉÒÔͨ¹ýʹÓÃAESÊý¾Ý¼ÓÃÜ·½·¨À´¶ÔÊý¾Ý½øÐмÓÃÜ´«Ê䣬µ«ÊÇSaltStackµÄminionÖ÷»úÒÔÊØ»¤½ø³ÌµÄ·½Ê½ÔËÐÐÔÚÔ¶¶Ë±©Â¶Á˺ܶàÈÝÒ×±»¹¥»÷µÄµã¡£

AnsibleʹÓñê×¼SSHÁ¬½Ó´«ÊäÊý¾Ý£¬²»ÐèÒªÔÚÔ¶³ÌÖ÷»úÉÏÆô¶¯ÊØ»¤½ø³Ì£¬²¢ÇÒ±ê×¼SSHÊý¾Ý´«Êä±¾Éí¾ÍÊǼÓÃÜ´«Ê䣬ÕâÑùÔ¶³ÌÖ÷»ú²»ÈÝÒ×±»¹¥»÷¡£Ò²²»ÊÇ˵Ansible¾Í¿ÉÒÔÍêÈ«±ÜÃâ±»¹¥»÷£¬AnsibleʹÓÃparamiko¿â½øÐÐSSHÁ¬½Ó£¬paramikoÊÇÒ»¸öÓкܲ»´í¼Ç¼SSHÁ¬½ÓµÄ python¿â¡£Ansible¿ÉÒÔͨ¹ýÅäÖÃStrictHostKeyChecking²ÎÊý£¬Ê¹µÃÔ¶³ÌÖ÷»úÉϵÄkeysºÍ֮ǰÁ¬½Ó²»Ò»ÑùµÄʱºò AnsibleûÓм°Ê±¸ÐÖªºÍÌáÐÑÓû§¡£µ«ÊÇAnsible¿ÉÒÔͨ¹ýÐÞ¸ÄÅäÖÃÎļþºÍÅäÖÃÒ»¸öºÏÊʵÄknown_hostsÎļþÀ´½â¾öÕâ¸öÎÊÌ⣬Òò´Ë AnsibleÔÚ°²È«·½Ã滹ÊDZÈSaltStack×öµÄºÃ¡£

3.×ÔÉíÔËά

SaltStackÐèÒªÔÚMasterºÍMinionÖ÷»úÆô¶¯ÊØ»¤½ø³Ì£¬×ÔÉíÐèÒª¼ì²âÊØ»¤½ø³ÌµÄÔËÐÐ״̬£¬Ôö¼ÓÔËά³É±¾¡£AnsibleºÍÔ¶¶ËÖ÷»úÖ®¼äµÄ ͨÐÅÊÇͨ¹ý±ê×¼SSH½øÐУ¬Ô¶³ÌÖ÷»úÉÏÖ»ÐèÒªÔËÐÐSSH½ø³Ì¾Í¿ÉÒÔ½øÐÐÔËά²Ù×÷£¬SSHÊÇ»ú·¿Ö÷»úÖÐÒ»°ã¶¼°²×°ºÍÆô¶¯µÄ½ø³Ì£¬ËùÒÔÔÚAnsible½øÐÐÔË Î¬µÄʱºòÖ»ÐèÒª¹Ø×¢AnsibleÖ÷»úµÄÔËÐÐ״̬¡£Ansible¶Ô»ú·¿ÔËά²»»áÔö¼Ó¹ý¶àµÄÔËά³É±¾¡£´Ó¹¤¾ß±¾ÉíµÄÔËά½Ç¶ÈÀ´Ëµ£¬AnsibleÒª±È SaltStack¼òµ¥ºÜ¶à¡£

4.ʹÓÃÓï·¨

AnsibleµÄPlaybookÓï·¨Òª±ÈSaltStackµÄStateÓï·¨¾ßÓиüºÃµÄ¿É¶ÁÐÔ¡£ÔÚʹÓõĹý³ÌÖз¢ÏÖAnsibleÔÚʵÏÖloopµÄ¸ü¼ÓµÄ¼ò½à£¬Ò²¿ÉÒÔʹÓÃÏà¶Ô·¾¶¡£¾ÙÀý˵Ã÷£¬SaltStackÔÚ±¸·ÝÎļþA.txtºÍB.txtµÄStateÓ﷨Ϊ£º

# back up A.txt and B.txt
{% for remote_target %}
/backup/{{ filename}}:
file.managed:
©\ source: salt://remote-host/{{ filename }}
©\ require:
©\ cmd: A.txt
©\ cmd: B.txt
{% endfor %}

AnsibleµÄPlaybookÓ﷨ʵÏÖͬÑùµÄ¹¦ÄÜÈçÏ£º

-name: back up A.txt and B.txt
copy: src ={{item}}
Dest=/backup/{{item}}
with_items:
- A.txt
- B.txt

ͬÑùAnsibleµÄNotifyÄ£¿éºÍHandlerÄ£¿éʵÏֵŦÄܺÍSaltStackµÄwatchºÍmodule.waitµÄÄ£¿éʵÏÖ¹¦ÄÜÒ²ÀàËÆ£¬Ò²±ÈSaltStackÒª¼ò½àÃ÷ÁË¡£

×ÜÖ®£¬AnsibleµÄ°²È«ÐÔÄܱÈSaltStackºÃ£¬×ÔÉíÔËά¼òµ¥£¬Ê¹ÓÃÓï·¨¿É¶ÁÐÔ¸üÇ¿£¬ËäÈ»ÔÚÏìÓ¦ËÙ¶È·½Ãæ²»ÈçSaltStack£¬µ«ÊÇÔڴ󲿷ÖÓ¦Óó¡¾°ÏÂAnsibleµÄÏìÓ¦ËÙ¶ÈÄÜÂú×ãÐèÇó¡£Òò´Ë£¬ÔÚ½ðÈÚÐÐÒµµÄ×Ô¶¯»¯ÔËάϵͳ£¬Ansible¹¤¾ßÊÇ×îºÃµÄÑ¡Ôñ¡£

3.΢·þÎñ»¯¼Ü¹¹Éè¼Æ

×Ô¶¯»¯ÔËάϵͳµÄÖ÷ÒªÔËά²Ù×÷³¡¾°Óнű¾Ö´ÐС¢ÎļþµÄÉÏ´«ÏÂÔØ¡¢Æô¶¯Ïî¹ÜÀí¡¢Óû§ÃÜÂëÐ޸ġ¢ÏµÍ³Èí¼þ°ü¹ÜÀí¡¢¶¨Ê±ÈÎÎñ¹ÜÀíµÈ£¬ÔÚÔÆ¼ÆËãµÄ»ú·¿ÀïÃæÐè Òª¹ÜÀí1000Óą̀Ö÷»ú£¬¶øAnsibleÖ´ÐÐÈÎÎñ×î¸ß²¢·¢ÊýÔ¼200¸ö£¬ËùÒÔϵͳÖÐÐèÒª²¿Êð¶à¸öAnsible¹¤¾ßÀ´Âú×ãϵͳµÄÓ¦ÓÃÐèÇó¡£ÔËά²Ù×÷ÐèÒª ¾­ÀúÁ¬½ÓÖ÷»ú£¬Ö´Ðв¢·µ»Ø½á¹ûµÄ¹ý³Ì£¬Õâ¸ö¹ý³ÌÐèÒªÒì²½Ö´ÐÐÇÒʵʱ·µ»ØÖ´Ðнá¹û¡£

ͼ1 չʾµÄÊÇ×Ô¶¯»¯ÔËάƽ̨×ÜÌåÉè¼Æ£¬±ãÓÚ×Ô¶¯»¯ÔËάϵͳ¹ÜÀí´ó¹æÄ£Ö÷»ú¡¢ÊµÊ±·´À¡ÔËά½á¹ûµÄÒ»Ì×ϵͳ¡£

×Ô¶¯»¯ÔËάƽ̨£º×Ô¶¯»¯ÔËάƽ̨°üº¬ÓÐCMDB¡¢Í¼Ðλ¯½çÃæ¡¢È¨ÏÞ¹ÜÀíµÈºËÐŦÄÜ£¬ºó¶Ë²ÉÓÃREST APIµ÷ÓÃWorkerÄ£¿éºÍ¼àÌýÖ´Ðнá¹û¡£

·þÎñ×¢²áÖÐÐÄ£º·þÎñ×¢²áÖÐÐÄÌṩ·þÎñµÄ×¢²áºÍ·þÎñ·¢ÏֵŦÄÜ£¬ÔÚ¿ªÔ´½çÓÐEtcd¡¢Consul¡¢Apache Zookeeper¡¢EurekaµÈ×é¼þÀ´ÊµÏÖ·þÎñ×¢²áÖÐÐĵŦÄÜ¡£WorkerÄ£¿éÏòÍø¹ØÒÔIPµØÖ·ºÍ¶Ë¿ÚµÄ·½Ê½×¢²áµ½·þÎñ×¢²áÖÐÐÄÖУ¬×Ô¶¯»¯ÔËάƽ̨ ·¢ÏÖWorkerºóµ÷¶ÈÑ¡ÔñWorkerÖ´ÐÐÔËά²Ù×÷¡£

Etcd£ºÒ»¸ö¸ß¿ÉÓ㬷ֲ¼Ê½£¬Ò»ÖµÄkey-value´æ´¢£¬ÓÃÀ´¹²ÏíÅäÖúͷþÎñ·¢ÏÖ¡£KubernetesºÍCloudfoundry¶¼Ê¹ÓÃÁËetcd¡£

Consul£ºÒ»¸ö·¢ÏÖºÍÅäÖ÷þÎñµÄ¹¤¾ß¡£¿Í»§¶Ë¿ÉÒÔÀûÓÃËüÌṩµÄAPI£¬×¢²áºÍ·¢ÏÖ·þÎñ¡£Consul¿ÉÒÔÖ´ÐÐ¼à¿Ø¼ì²âÀ´ÊµÏÖ·þÎñµÄ¸ß¿ÉÓÃ

Apache Zookeeper£ºÒ»¸ö³£Óõģ¬Îª·Ö²¼Ê½Ó¦ÓÃÉè¼ÆµÄ¸ß¿ÉÓÃЭµ÷·þÎñ£¬×ʼZookeeperÊÇHadoopµÄ×ÓÏîÄ¿£¬ÏÖÔÚÒѾ­³ÉΪ¶¥¼¶ÏîÄ¿ÁË¡£

Eureka: ÊÇÒ»¸ö»ùÓÚ REST µÄ·þÎñ£¬ËüÖ÷ÒªÊÇÓÃÓÚ¶¨Î»·þÎñ£¬ÒÔʵÏÖ·þÎñ×¢²áºÍ·þÎñ·¢ÏÖ¹¦ÄÜ£¬±¾Éí¾ßÓзþÎñ½¡¿µ¼ì²âµÄ¹¦ÄÜ¡£

Worker¼¯Èº£ºWorkerÄ£¿éµÄºËÐÄÊÇAnsible£¬WorkerÄ£¿éÆô¶¯µÄʱºòʹÓÃIPµØÖ·ºÍ¶Ë¿ÚÏò·þÎñ×¢²áÖÐÐÄ×¢²áÒ»¸öµØÖ·£¬×Ô¶¯»¯ÔËάƽ̨ »áÖ÷¶¯·¢ÏÖWorkerÄ£¿é¡£Í¼2 WorkerÄ£¿éÉè¼Æ£¬Ansible±¾ÉíûÓÐÌṩREST API,ͨ¹ýʹÓÃFlask½«Ansible API·â×°¸ø×Ô¶¯»¯ÔËάƽ̨µ÷Óã¬ÔÚÆô¶¯REST APIµÄʱºò½«IPµØÖ·ºÍ¶Ë¿Ú×¢²áµ½·þÎñ×¢²áÖÐÐÄÖС£ÔËά²Ù×÷ÇëÇóµ½´ïREST APIºó£¬·¢Ë͸øÒì²½µ÷¶ÈceleryÄ£¿é£¬celeryºó¶Ë¶Ô½ÓµÄÊÇÏûÏ¢ÖÐÐÄ£¬ÊµÏÖÈÎÎñµÄÒì²½·Ö²¼Ê½µ÷¶È¡£AnsibleÄõ½Ö´ÐÐÈÎÎñ£¬Á¬½ÓÔ¶³ÌÖ÷»úÖ´ ÐÐÔËά²Ù×÷£¬È»ºó½«Ö´Ðнá¹û·¢ËÍÏûÏ¢ÖÐÐÄ¡£Õâ¸ö×Ô¶¯»¯ÔËάƽ̨ʵʱ¼àÌýÏûÏ¢ÖÐÐÄÿ̨Ö÷»úµÄÖ´Ðнá¹û£¬´ïµ½Ô¶³ÌÖ÷»úÉϵÄÔËά²Ù×÷½á¹ûÄÜʵʱµÄ·´À¡µ½×Ô¶¯»¯ÔË Î¬Æ½Ì¨ÖС£

ÏûÏ¢ÖÐÐÄ:ÏûÏ¢ÖÐÐIJÉÓõÄÊÇÏûÏ¢¶ÓÁУ¬¿ªÔ´ÏûÏ¢¶ÓÁÐÖмä¼þÓÐRabbitMQ¡¢ActiveMQ¡¢kafka¡£²ÉÓÃÏûÏ¢¶ÓÁеĺô¦¾ÍÊÇÄÜʵʱµÄ·µ»ØÖ´Ðнá¹û¡£

4.×ܽá

ÔÚ½ðÈÚÁìÓòÖУ¬°²È«ÊÇ×îÖØÒªµÄ¿¼ÂÇÒòËØ£¬ÔÚÖÚ¶à×Ô¶¯»¯ÔËά¹¤¾ßÖÖ£¬AnsibleµÄ°²È«ÐÔÄÜ×îºÃ£¬ÊÇĿǰ×îÊʺϽðÈÚÁìÓòµÄ×Ô¶¯»¯ÔËά¹¤¾ß¡£±¾ÎÄͨ¹ý½«Ansible΢·þÎñ»¯£¬¼¯³Éµ½×Ô¶¯»¯ÔËάƽ̨ÖУ¬ÊµÏÖ×Ô¶¯»¯ÔËάƽ̨¸ß²¢·¢Ö´ÐÐÔËά²Ù×÷³¡¾°ºÍʵʱÊÕ¼¯Ö´Ðнá¹û¡£

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

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

×Ô¶¯»¯ÔËά¹¤¾ß£¨»ùÓÚDevOps£©
»¥ÁªÍøÔËάÓëDevOps
MySQLÐÔÄÜÓÅ»¯¼°ÔËάÅàѵ
ITϵͳÔËά¹ÜÀí