设为首页 收藏本站
查看: 1040|回复: 0

[经验分享] Ansible基础一Playbook(二)

[复制链接]

尚未签到

发表于 2018-7-29 13:20:34 | 显示全部楼层 |阅读模式
  摘自:http://www.ansible.com.cn/docs/playbooks_intro.html
  Handlers: 在发生改变时执行的操作
  (当发生改动时)’notify’ actions 会在 playbook 的每一个 task 结束时被触发,而且即使有多个不同的 task 通知改动的发生, ‘notify’ actions 只会被触发一次.
  举例来说,比如多个 resources 指出因为一个配置文件被改动,所以 apache 需要重新启动,但是重新启动的操作只会被执行一次.
  - name: template configuration file
  template: src=template.j2 dest=/etc/foo.conf
  notify:
  - restart memcached
  - restart apache
  ‘notify’ 下列出的即是 handlers.
  Handlers 是由通知者进行 notify, 如果没有被 notify,handlers 不会执行.不管有多少个通知者进行了 notify,等到 play 中的所有 task 执行完成之后,handlers 也只会被执行一次.
  handlers:
  - name: restart memcached
  service:  name=memcached state=restarted
  - name: restart apache
  service: name=apache state=restarted
  Handlers 最佳的应用场景是用来重启服务,或者触发系统重启操作.
  如果你想立即执行所有的 handler 命令,在1.2及以后的版本,你可以这样做:
  tasks:
  - shell: some tasks go here
  - meta: flush_handlers
  - shell: some other tasks
  在以上的例子中,任何在排队等候的 handlers 会在执行到 ‘meta’ 部分时,优先执行.这个技巧在有些时候也能派上用场.
  执行一个playbook
  [root@localhost ~]# ansible-playbook -h
  Usage: ansible-playbook playbook.yml
  Options:
  --ask-vault-pass      ask for vault password
  -C, --check           don't make any changes; instead, try to predict some
  of the changes that may occur
  -D, --diff            when changing (small) files and templates, show the
  differences in those files; works great with --check
  -e EXTRA_VARS, --extra-vars=EXTRA_VARS
  set additional variables as key=value or YAML/JSON
  --flush-cache         clear the fact cache
  --force-handlers      run handlers even if a task fails
  -f FORKS, --forks=FORKS
  specify number of parallel processes to use
  (default=5)
  -h, --help            show this help message and exit
  -i INVENTORY, --inventory-file=INVENTORY
  specify inventory host path
  (default=/etc/ansible/hosts) or comma separated host
  list.
  -l SUBSET, --limit=SUBSET
  further limit selected hosts to an additional pattern
  --list-hosts          outputs a list of matching hosts; does not execute
  anything else
  --list-tags           list all available tags
  --list-tasks          list all tasks that would be executed
  -M MODULE_PATH, --module-path=MODULE_PATH
  specify path(s) to module library (default=None)
  --new-vault-password-file=NEW_VAULT_PASSWORD_FILE
  new vault password file for rekey
  --output=OUTPUT_FILE  output file name for encrypt or decrypt; use - for
  stdout
  --skip-tags=SKIP_TAGS
  only run plays and tasks whose tags do not match these
  values
  --start-at-task=START_AT_TASK
  start the playbook at the task matching this name
  --step                one-step-at-a-time: confirm each task before running
  --syntax-check        perform a syntax check on the playbook, but do not
  execute it
  -t TAGS, --tags=TAGS  only run plays and tasks tagged with these values
  --vault-password-file=VAULT_PASSWORD_FILE
  vault password file
  -v, --verbose         verbose mode (-vvv for more, -vvvv to enable
  connection debugging)
  --version             show program's version number and exit
  Connection Options:
  control as whom and how to connect to hosts
  -k, --ask-pass      ask for connection password
  --private-key=PRIVATE_KEY_FILE, --key-file=PRIVATE_KEY_FILE
  use this file to authenticate the connection
  -u REMOTE_USER, --user=REMOTE_USER
  connect as this user (default=None)
  -c CONNECTION, --connection=CONNECTION
  connection type to use (default=smart)
  -T TIMEOUT, --timeout=TIMEOUT
  override the connection timeout in seconds
  (default=30)
  --ssh-common-args=SSH_COMMON_ARGS
  specify common arguments to pass to sftp/scp/ssh (e.g.
  ProxyCommand)
  --sftp-extra-args=SFTP_EXTRA_ARGS
  specify extra arguments to pass to sftp only (e.g. -f,
  -l)
  --scp-extra-args=SCP_EXTRA_ARGS
  specify extra arguments to pass to scp only (e.g. -l)
  --ssh-extra-args=SSH_EXTRA_ARGS
  specify extra arguments to pass to ssh only (e.g. -R)
  Privilege Escalation Options:
  control how and which user you become as on target hosts
  -s, --sudo          run operations with sudo (nopasswd) (deprecated, use
  become)
  -U SUDO_USER, --sudo-user=SUDO_USER
  desired sudo user (default=root) (deprecated, use
  become)
  -S, --su            run operations with su (deprecated, use become)
  -R SU_USER, --su-user=SU_USER
  run operations with su as this user (default=root)
  (deprecated, use become)
  -b, --become        run operations with become (does not imply password
  prompting)
  --become-method=BECOME_METHOD
  privilege escalation method to use (default=sudo),
  valid choices: [ sudo | su | pbrun | pfexec | doas |
  dzdo | ksu ]
  --become-user=BECOME_USER
  run operations as this user (default=root)
  --ask-sudo-pass     ask for sudo password (deprecated, use become)
  --ask-su-pass       ask for su password (deprecated, use become)
  -K, --ask-become-pass
  ask for privilege escalation password
  示例:
  ansible-playbook playbook.yml -f 10

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543105-1-1.html 上篇帖子: Ansible基础一Playbook(一) 下篇帖子: Ansible基础一Playbook(三)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表