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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ansible£º×Ô¶¯»¯ÔËά±ØÐë¼¼ÊõÖ®Ò»
 
×÷Õߣº ÕÅС·²
  1527  次浏览      27
 2019-11-22
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËAnsible¼òµ¥Ê¹ÓõÄһЩ¹ý³ÌÒÔ¼°AnsibleµÄ°²×°ÓëÅäÖã¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ansible½éÉÜ£º

ansibleÊÇÒ»¸öÇáÁ¿¼¶µÄÔËά×Ô¶¯»¯ÅäÖùÜÀíºÍÅäÖù¤¾ß£¬»ùÓÚPythonÑз¢¡£¼¯ºÏÁËÖÚ¶àÀÏÅÆÔËά¹¤¾ß£¨puppet¡¢cfengine¡¢chef¡¢func¡¢fabric£©µÄÓŵ㣬ʵÏÖÁËÅúÁ¿ÏµÍ³ÅäÖá¢ÅúÁ¿³ÌÐò²¿Êð¡¢ÅúÁ¿ÔËÐÐÃüÁîµÈ¹¦ÄÜ¡£

AnsibleÔ­Àí£º

ÕâÊÇÒ»¿îºÜ¼òµ¥Ò²ºÜÈÝÒ×ÈëÃŵIJ¿Ê𹤾ߣ¬ËüʹÓÃSSHÁ¬½Óµ½·þÎñÆ÷²¢ÔËÐÐÅäÖúõÄÈÎÎñ£¬·þÎñÆ÷Éϲ»Óð²×°ÈκζàÓàµÄÈí¼þ£¬Ö»ÐèÒª¿ªÆôssh£¬ËùÓй¤×÷¶¼½»¸øclient¶ËµÄansible¸ºÔð¡£ÒòΪ»ùÓÚSSH£¬ËùÒÔ²»ÐèÒªÏñSaltÕâЩͬÀ๤¾ßÒ»ÑùÐèÒªÔÚÿ̨»úÆ÷Éϰ²×°agent£¬Òò´ËÌí¼Ó»úÆ÷¼¸ºõ²»ÐèÒª½øÐжîÍâµÄ²Ù×÷¡£½öÐèÔÚ¹ÜÀí¹¤×÷Õ¾Éϰ²×°ansible³ÌÐòÅäÖñ»¹Ü¿ØÖ÷»úµÄIPÐÅÏ¢£¬±»¹Ü¿ØµÄÖ÷»úÎÞ¿Í»§¶Ë¡£ansibleÓ¦ÓóÌÐò´æÔÚÓÚepel(µÚÈý·½ÉçÇø)Ô´£¬ÒÀÀµÓںܶàpython×é¼þ¡£ansible»ùÓÚ paramiko ¿ª·¢µÄ,ËüÊÇÒ»¸ö´¿PythonʵÏÖµÄsshЭÒé¿â¡£Ö÷Òª°üÀ¨£º

(1)¡¢Á¬½Ó²å¼þconnection plugins£º¸ºÔðºÍ±»¼à¿Ø¶ËʵÏÖͨÐÅ£»

(2)¡¢host inventory£ºÖ¸¶¨²Ù×÷µÄÖ÷»ú£¬ÊÇÒ»¸öÅäÖÃÎļþÀïÃæ¶¨Òå¼à¿ØµÄÖ÷»ú£»

(3)¡¢¸÷ÖÖÄ£¿éºËÐÄÄ£¿é¡¢commandÄ£¿é¡¢×Ô¶¨ÒåÄ£¿é£»

(4)¡¢½èÖúÓÚ²å¼þÍê³É¼Ç¼ÈÕÖ¾ÓʼþµÈ¹¦ÄÜ£»

(5)¡¢playbook£º¾ç±¾Ö´Ðжà¸öÈÎÎñʱ£¬·Ç±ØÐè¿ÉÒÔÈýڵãÒ»´ÎÐÔÔËÐжà¸öÈÎÎñ¡£

Ansible¼Ü¹¹¼°×é¼þ£º

Host Inventory

¶¨Òåansible¹ÜÀíµÄÖ÷»ú£¬¿ÉÒÔ½øÐзÖ×é¹ÜÀí¡£

Core Modules

AnsibleºËÐÄÄ£¿é£¬ansibleÖÐÄ£¿é¾ÍÊÇÓÃÀ´Ö¸¶¨¶ÔÔ¶³ÌÖ÷»ú¾ßÌåµÄ²Ù×÷£¬±ÈÈçÖ´ÐÐÃüÁîÄ£¿écommand¡¢´´½¨ÎļþÄ£¿éfileµÈ£¨ansible×Ô´øµÄÄ£¿é£©¡£

Custom Modules

×Ô¶¨ÒåÄ£¿é£¬Èç¹ûºËÐÄÄ£¿é²»×ãÒÔÍê³ÉijÖÖ¹¦ÄܾͿÉÒÔʹÓÃÈκÎÓïÑÔ×Ô¶¨ÒåÄ£¿é¡£

Connection Plugins

Á¬½Ó²å¼þÊÇAnsibleÓÃÀ´Á¬½Ó±»¹ÜÀí¶ËµÄÒ»ÖÖ·½Ê½£¬±ÈÈç¿Í»§¶ËÔËÐÐÁËSSH·þÎñ£¬AnsibleÀûÓÃSSH·þÎñ¸ú¿Í»§¶Ë½øÐÐͨÐÅ£¬AnsibleÊÇͨ¹ýPython±àдµÄ£¬¶øPythonÓÐÒ»¸öÄ£¿éparamikoÖ§³Ö²¢ÐÐÁ¬½ÓSSH¡£AnsibleÊÂʵÉϾÍÊÇʹÓÃparamiko½øÐÐÁ¬½Ó±»¹ÜÀí¶Ë¡£µ«ÊÇËü»¹Ö§³ÖÆäËûµÄÁ¬½Ó·½·¨ÐèÒª²å¼þ£¨ÈçzeroMQ¾ÍÊÇC/Sģʽ¹¤×÷£©¡£

Plugins

µÚÈý·½²å¼þÖ§³Ö£¬Èçemail¡¢loggingÄ£¿é£¬Ö»ÒªÓÐPython±àдÄÜÁ¦¾Í¿ÉÒÔ×ÔÐбàд²å¼þ¡£

Playbooks

¾ç±¾»ò±à¼­ÊÇAnsibleµÄÈÎÎñÅäÖÃÎļþ¡¢½«¶à¸öÈÎÎñ¶¨ÒåÔھ籾ÖÐÓÉAnsible×Ô¶¯Ö´ÐУ¬Playbooks×î´óµÄºÃ´¦¾ÍÊÇÖ§³ÖÃݵȣ¬Ò²¾ÍÊÇ˵ÏàͬµÄÈÎÎñ²»¹ÜÖ´ÐжàÉÙ´ÎÆä½á¹ûÊDz»±äµÄ£¬´øÀ´µÄºÃ´¦Ò²¾ÍÊdzÖÐø¿Éά»¤ÐÔ¡£

Ñ¡ÔñAnsibleµÄÔ­Òò¡¾Óŵ㡿£º

1.»ùÓÚSSH£¬ÎÞ¿Í»§¶Ë£¬²¿Êð±ã½Ý¡£

2.ÍêÈ«»ùÓÚpython¿ª·¢£¬pythonÃż÷½ÏµÍ£¬·½±ã¶ÔAnsible¶þ´Î¿ª·¢

3.AnsibleÄÚº¬·á¸»µÄÄÚÖÃÄ£¿é£¬ÉõÖÁ»¹ÓÐרÃÅΪÉÌҵƽ̨¿ª·¢µÄ¹¦ÄÜÄ£¿é£¬ÍêÈ«¿ÉÒÔÂú×ãÈÕ³£¹¦ÄܵÄÐèÇó¡£

4.AnsibleÎÞÖÐÐĽڵ㣬¼òµ¥µÄ¸´ÖƲÙ×÷¼´¿ÉÍê³ÉÖÐÐĽڵãÇ¨ÒÆ¡£

Ansible°²×°ÓëÅäÖãº

¹ÜÀíÖ÷»úÐèÒª°²×°python2.6/2.7¼°ÒÔÉϰ汾¡£

ÒÔ¼°ansible£¬ÔÚrhelϵͳÖУ¬pythonÊDZ»¼¯³É×Ô´øµÄ£¬ËùÒÔÕâÀïÎÒÖ»Êǰ²×°ÁËAnsible¡£ÏÂÃæÊǰ²×°ÒÔ¼°½â¾öÒÀÀµÐÔËùÓõ½µÄ°ü¡£

°²×°Íê³Éºó¿ÉÒÔÖ´ÐУºansible --versionÀ´²é¿´Æä°æ±¾

ΪÁ˹ÜÀíµÄ·½±ã£¬ÒÔ¼°È¨Ï޵ݲȫ£¬ÔÚʹÓÃansibleʱ£¬½¨ÒéÔÚÆÕͨÓû§ÏÂȥʹÓá£ËùÒÔÏÂÃæÎÒ½«½¨Á¢ÆÕͨÓû§devops,À´½øÐÐansibleµÄʹÓá£Í¬Ê±ÎªÁËsshÁ¬½ÓʱµÄÃâÃÜ·½±ã£¬ÎÒÔÚserver2Óëserver3ÉÏͬÑù½¨Á¢ÁËdevopsÓû§£¬²¢¸ÄÁËÃÜÂë¡£

useradd devops #½¨Á¢Óû§
passwd devops #¸ÄÃÜÂë
su - devops #Çл»µ½ÆÕͨÓû§ #ĬÈϽøÈëÆä¼ÒĿ¼
mkdir ansible #½¨Á¢ÐµÄĿ¼£¬½«ÔÚ¸ÃĿ¼ÏÂдansibleÎļþ
cd ansible #½øÈë¸Õ½¨Á¢µÄĿ¼
vim ansible.cfg #дÖ÷ÅäÖÃÎļþ
vim inventory #½âÎöÎļþ

ÆÕͨÓû§ÔÚ¶ÔһЩrootȨÏÞµÄĿ¼½øÐвÙ×÷ʱ£¬ÊDz»ÄÜÖ±½Ó²Ù×÷µÄ£¬ËùÒÔÕâÀïÎÒÔÙ¸³ÓèdevopsÃâÃÜrootȨÏÞ

£¡£¡ËùÓеÄÖ÷»úÉ϶¼Òª¸³Ó裬ÒòΪÏÖÔÚÎÒÃǶ¼ÊÇÔÚÆÕͨÓû§Ï¡£ÕâÒ²Êǽ«ËùÓÐÓû§½¨Á¢³ÉÒ»ÑùµÄÓû§ÃûµÄºÃ´¦£¬·½±ã¹ÜÀí¡£

vim /etc/sudoers

¿ÉÒÔÔÚÅäÖÃÎļþÖÐÌáǰ×öºÃȨÏÞ¹¤×÷£¬ÔÚÖ÷ÅäÖÃÎļþÖÐдÈë-b²ÎÊýµÄ¹¦ÄÜ

vim ansible.cfg

1SSH̉̆

ssh-keygen ÃÜÔ¿Éú³É
ssh-copy-id server2
#½«¹«Ô¿·¢Ë͸øserver2
#ĬÈÏ·¢Ë͸øserver2µÄÆÕͨÓû§£¬ÎÒÃÇÖ»½¨Á¢ÁËdevops£¬Ôò»á·¢¸øidevops¡£
#ÕâÀïÐèÒªÎÒÃÇÊäÈëserver2µÄdevopsÓû§ÃÜÂ룬ËùÒÔÉÏÃæÒ»¶¨Òª¸ÄÃÜÂë
ssh-copy-id server3

ÔÚÃâÃÜÒÔ¼°ÉÏÃæµÄinventoryÎļþºÍÖ÷ÅäÖÃÎļþÍê³Éºó£¬¾Í¿ÉÒÔ¼òµ¥²âÊÔansibleµÄͨÐÅÊÇ·ñÕý³£ÁË¡£

ansible all -m ping #»ápingËùÓÐÔÚinventoryÎÄ
¼þÖÐдÈëµÄÖ÷»ú #-mÖ¸¶¨Ä£¿é¡¾pingÄ£¿é¡¿

ÕâÀï¿ÉÒÔ¿´Ò»ÏÂdevopsÓû§¶ÔansibleÏÖÔÚµÄÓ°Ï죺-uÖ¸¶¨Óû§£¬ÒòΪÃÜÔ¿ÊÇÔÚdevopsÓû§Ï£¬ËùÒÔÁ¬½ÓÊÇÖ»ÓÐdevopsÓû§ÃâÃÜ

¼òµ¥µÄAnsibleÖ¸Áî

AnsibleÌṩÁËÁ½ÖÖ·½Ê½È¥Íê³ÉÈÎÎñ£¬Ò»ÊÇad-hocÃüÁ¶þÊÇplaybook¡£

ad-hoc×¢ÖØÓÚÓüòµ¥µÄÖ¸ÁîÍê³É¼òµ¥µÄ²Ù×÷¡£

playbookÔòÊʺϽâ¾ö¸´ÔÓ»òÕßÐèÒª¹Ì»¯µÄÈËÎÀàËÆÓڽű¾¡£

Ansible-docµÄ˵Ã÷¹¤¾ß£ºansible-doc

ansible-doc -l #ÏÔʾËùÓпÉÓÃÄ£¿é
ansible-doc yum #»ñÈ¡yumÄ£¿éµÄʹÓðïÖú
ansible-doc copy #»ñÈ¡copyÄ£¿éµÄ°ïÖú
ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd"
# ĬÈÏ»á¶ÔinventoryÎļþÖеĵÚÒ»¸öÖ÷»úÖ´ÐвÙ×÷

ansible test -m command -a "ls /tmp"
# ʹÓÃcommandÄ£¿é£¬¿ÉÒÔÖ±½ÓÖ´ÐÐshellÃüÁî
ansible test -a "ls /tmp"
# ĬÈÏ-aºó½ÓÒªÖ´Ðе͝×÷

!!!Ò»¶¨Òª×¢ÒâȨÏÞÎÊÌ⣬Èç¹ûÉÏÃæÃ»ÓиødevopsÕâ¸öÆÕͨÓû§sudoÃâÃܵϰ£¬ÔÚÖ´ÐÐ-b²Ù×÷ʱ£¬¿ÉÄÜ»á³ö´í¡£

ϸÐĵÄÈËÒ»¶¨×¢Òâµ½ÁË£¬ÉÏÃæÖ´Ðйý³ÌÖгöÏÖÁËÈýÖÖÑÕÉ«£¬ºìÉ«´ú±í´íÎó£»ÂÌÉ«´ú±íÕý³££¬Ã»Óиı䣻»Æ×ØÉ«´ú±íÕý³££¬µ«ÊÇÓб仯¡£

ÒÔÉϾÍÊÇAnsible¼òµ¥Ê¹ÓõÄһЩ¹ý³ÌÁË¡£

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

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

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

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