playbookÊÇÓÉÒ»¸ö»ò¶à¸ö¡°play¡±×é³ÉµÄÁÐ±í¡£
playµÄÖ÷Òª¹¦ÄÜÔÚÓÚ½«ÊÂÏȹ鲢Ϊһ×éµÄÖ÷»ú×°
°ç³ÉÊÂÏÈͨ¹ýansibleÖеÄtask¶¨ÒåºÃµÄ½ÇÉ«¡£
´Ó¸ù±¾ÉÏÀ´½²ËùνtaskÎÞ·ÇÊǵ÷ÓÃansibleµÄÒ»¸ö
module¡£½«¶à¸öplay×éÖ¯ÔÚÒ»¸öplaybookÖм´¿ÉÒÔ
ÈÃËüÃÇÁªÍ¬ÆðÀ´°´ÊÂÏȱàÅŵĻúÖÆÍ¬³ªÒ»Ì¨´óÏ·¡£
###########################playbook»ù´¡×é¼þ
1¡¢HostsºÍUsers
playbookÖеÄÿһ¸öplayµÄÄ¿µÄ¶¼ÊÇΪÁËÈÃij¸ö
»òijЩÖ÷»úÒÔij¸öÖ¸¶¨µÄÓû§Éí·ÝÖ´ÐÐÈÎÎñ¡£
hostsÓÃÓÚÖ¸¶¨ÒªÖ´ÐÐÖ¸¶¨ÈÎÎñµÄÖ÷»úÆä¿ÉÒÔÊÇÒ»¸ö
»ò¶à¸öÓÉðºÅ·Ö¸ôÖ÷»ú×é¡£
remote_userÔòÓÃÓÚÖ¸¶¨Ô¶³ÌÖ÷»úÉϵÄÖ´ÐÐÈÎÎñµÄÓû§¡£
²»¹ýremote_userÒ²¿ÉÓÃÓÚ¸÷taskÖС£Ò²¿ÉÒÔͨ¹ýÖ¸¶¨
Æäͨ¹ýsudoµÄ·½Ê½ÔÚÔ¶³ÌÖ÷»úÉÏÖ´ÐÐÈÎÎñÆä¿ÉÓÃÓÚplay
È«¾Ö»òijÈÎÎñ¡£
´ËÍâÉõÖÁ¿ÉÒÔÔÚsudoʱʹÓÃsudo_userÖ¸¶¨sudoʱÇл»µÄÓû§¡£
- hosts: webnodes
remote_user: mageedu
tasks:
- name: test connection ping:
remote_user: mageedu sudo: yes
2¡¢ÈÎÎñÁбíºÍaction
playµÄÖ÷Ì岿·ÖÊÇtask list¡£task listÖеĸ÷ÈÎÎñ°´´Î
ÐòÖð¸öÔÚhostsÖÐÖ¸¶¨µÄËùÓÐÖ÷»úÉÏÖ´Ðм´ÔÚËùÓÐÖ÷»úÉÏÍê³É
µÚÒ»¸öÈÎÎñºóÔÙ¿ªÊ¼µÚ¶þ¸ö¡£
ÔÚÔËÐÐ×Ô϶øÏÂijplaybookʱÈç¹ûÖÐ;·¢Éú´íÎóËùÓÐÒÑÖ´ÐÐ
ÈÎÎñ¶¼½«»Ø¹öÒò´ËÔÚ¸üÕýplaybookºóÖØÐÂÖ´ÐÐÒ»´Î¼´¿É¡£
taskµÄÄ¿µÄÊÇʹÓÃÖ¸¶¨µÄ²ÎÊýÖ´ÐÐÄ£¿é¶øÔÚÄ£¿é²ÎÊýÖпÉÒÔ
ʹÓñäÁ¿¡£Ä£¿éÖ´ÐÐÊÇÃݵȵÄÕâÒâζ×Ŷà´ÎÖ´ÐÐÊǰ²È«µÄ
ÒòΪÆä½á¹û¾ùÒ»Ö¡£
ÿ¸ötask¶¼Ó¦¸ÃÓÐÆänameÓÃÓÚplaybookµÄÖ´Ðнá¹ûÊä³ö½¨Òé
ÆäÄÚÈݾ¡¿ÉÄÜÇåÎúµØÃèÊöÈÎÎñÖ´Ðв½Öè¡£Èç¹ûδÌṩnameÔò
actionµÄ½á¹û½«ÓÃÓÚÊä³ö¡£
¶¨ÒåtaskµÄ¿ÉÒÔʹÓá°action: module options¡±»ò¡°module:
options¡±µÄ¸ñÊ½ÍÆ¼öʹÓúóÕßÒÔʵÏÖÏòºó¼æÈÝ¡£
Èç¹ûactionÒ»ÐеÄÄÚÈݹý¶àÒ²ÖÐʹÓÃÔÚÐÐÊ×ʹÓü¸¸ö¿Õ°×
×Ö·û½øÐл»ÐС£
tasks:
- name: make sure apache is running
service: name=httpd state=running
ÔÚÖÚ¶àÄ£¿éÖÐÖ»ÓÐcommandºÍshellÄ£¿é½öÐèÒª¸ø¶¨Ò»¸ö
ÁÐ±í¶øÎÞÐèʹÓá°key=value¡±¸ñʽÀýÈç
tasks:
- name: disable selinux
command: /sbin/setenforce 0Èç¹ûÃüÁî»ò½Å±¾µÄÍ˳öÂë
²»ÎªÁã¿ÉÒÔʹÓÃÈçÏ·½Ê½Ìæ´ú
tasks:
- name: run this command and ignore the result
shell: /usr/bin/somecommand || /bin/true
»òÕßʹÓÃignore_errorsÀ´ºöÂÔ´íÎóÐÅÏ¢
tasks:
- name: run this command and ignore the result
shell: /usr/bin/somecommand
ignore_errors: True
3¡¢handlers
ÓÃÓÚµ±¹Ø×¢µÄ×ÊÔ´·¢Éú±ä»¯Ê±²Éȡһ¶¨µÄ²Ù×÷¡£
¡°notify¡±Õâ¸öaction¿ÉÓÃÓÚÔÚÿ¸öplayµÄ×îºó±»´¥·¢ÕâÑù
¿ÉÒÔ±ÜÃâ¶à´ÎÓиı䷢Éúʱÿ´Î¶¼Ö´ÐÐÖ¸¶¨µÄ²Ù×÷È¡¶ø´úÖ®
½öÔÚËùÓеı仯·¢ÉúÍê³ÉºóÒ»´ÎÐÔµØÖ´ÐÐÖ¸¶¨²Ù×÷¡£
ÔÚnotifyÖÐÁгöµÄ²Ù×÷³ÆÎªhandlerÒ²¼´notifyÖе÷ÓÃ
handlerÖж¨ÒåµÄ²Ù×÷¡£
- name: template configuration file
template: src=template.j2 dest=/etc/foo.conf
notify:
- restart memcached
- restart apache
handlerÊÇtaskÁбíÕâЩtaskÓëǰÊöµÄtask²¢Ã»Óб¾ÖÊÉϵIJ»Í¬¡£
handlers:
- name: restart memcached
service: name=memcached state=restarted
- name: restart apache
service: name=apache state=restarted |