博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ansible自动化运维之Playbook详解及体验(一)
阅读量:7099 次
发布时间:2019-06-28

本文共 1831 字,大约阅读时间需要 6 分钟。

playbook-介绍:

playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是playbook是通过YAML格式来进行描述定义的。

Playbooks结构:

1.Tasks:任务,由模板定义的操作列表2.Variables:变量3.Templates:模板,即使用模板语法的文件4.Handlers:处理器 ,当某条件满足时,触发执行的操作5.Roles:角色

hosts和users介绍:

*  playbookd 的设计目的是为了让某个或某些主机以某个用户的身份去执行相应的任务。hosts一行可以是一个主机组、主机、多个主机,中间以冒号分隔,可使用通配模式。其中remote_user表示执行的用户账号。* vim /opt/abc.yml- hosts: webserver       #指定主机组,可以是一个或多个组。  remote_user: root     #指定远程主机执行的用户名

Ansible自动化运维之Playbook详解及体验(一)

*  remote_user也可以定义指定用户通过sudo的方法在被管理主机上运行命令,甚至可以在使用sudo时用sudo_user指定sudo切换的用户。*  vim /opt/sudo.yml     - hosts: webserver    remote_user: root                become: yes                #2.6版本以后的参数,之前是sudo,意思为切换用户运行    become_user: yang          #指定sudo用户为yang*ansible-playbook sudo.yml -K      #执行playbook

Ansible自动化运维之Playbook详解及体验(一)

Tasks list任务列表 和action介绍:

  • play的主体部分是task list。task list中的各任务按次序逐个在hosts中指定的所有主机上执行,即在所有主机上完成第一个任务后再开始第二个。在运行自下而下某playbook时,如果中途发生错误,所有已执行任务都可能回滚,因此,在更正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
  • 如果命令或脚本的退出码不为0,可能会阻止playbook继续往下执行可以使用如下方式替代:
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

转载于:https://blog.51cto.com/13721050/2310755

你可能感兴趣的文章
Error:flask_sqlalchemy
查看>>
算法3-排序-简单选择排序
查看>>
poj 1743 Musical Theme (后缀数组)
查看>>
XACML学习
查看>>
Java中文乱码问题研究(二)
查看>>
easyui图标大全
查看>>
Emmet:HTML/CSS代码快速编写神器
查看>>
webpack实战
查看>>
虚幻4游戏开发_3_创建与继承材质
查看>>
win2003域控主备(热备)搭建
查看>>
浪潮之巅读后感
查看>>
Mathematica 函数调用发生异常时停止计算
查看>>
Linux service命令
查看>>
TCP发送源码学习(2)--tcp_write_xmit
查看>>
Android第三方开源图片裁剪截取:cropper
查看>>
C# 中英文符号互转
查看>>
ACM HDU 1219 AC me(简单题,但是花了很长时间才AC)
查看>>
Ethernet LEDs
查看>>
row_number()over函数的使用(转)
查看>>
怎样在Delphi中屏蔽Flash控件的右键弹出菜单
查看>>