±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË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ȨÏÞ
£¡£¡ËùÓеÄÖ÷»úÉ϶¼Òª¸³Ó裬ÒòΪÏÖÔÚÎÒÃǶ¼ÊÇÔÚÆÕͨÓû§Ï¡£ÕâÒ²Êǽ«ËùÓÐÓû§½¨Á¢³ÉÒ»ÑùµÄÓû§ÃûµÄºÃ´¦£¬·½±ã¹ÜÀí¡£

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

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¼òµ¥Ê¹ÓõÄһЩ¹ý³ÌÁË¡£ |