ansible组件playbook

组件 - playbook Playbook是Ansible的配置,部署,编排语言。他们可以被描述为一个需要希望远程主机执 行命令的方案,或者一组IT程序运行的命令集合。 当执行一些简单的改动时ansible命令是非常有用的,然而它真的作用在于它的脚本能力。 当对一台机器做环境初始化的时候往往需要不止做一件事情,这时使用playbook会更加适 合。通过playbook你可以一次在多台机器执行多个指令。通过这种预先设计的配置保持了机 器的配置统一,并很简单的执行日常任务。

YAML介绍 是一种标记语言 Ansible使用标准的YAML解析器,使用YAML文件语法即可书写playbook。 YAML是一个可读性高的用来表达资料序列的格式,YAML参考了其他多种语言,包括: XML、C语言、Python、Perl以及电子邮件格式RFC2822等。Clark Evans在2001首次发表了 这种语言。 YAML Ain’t Makup Language,即YAML不是XML。不过,在开发这种语言时,YAML的意思 是:Yet Another Makrup Language(仍是一种标记语言),其特性:YAML的可读性好、 YAML和脚本的交互性好、YAML有一个一致的信息模型、YAML易于实现、 YAML可以基于 流来处理、YAML表达能力强,扩展性好。更多的内容及规范参见www.yaml.org。

Playbooks 核心元素: Variables #变量元素,可传递给Tasks/Templates使用; { {}} Tasks #任务元素,由模块定义的操作的列表,即调用模块完成任务; Templates#模板元素,使用了模板语法的文本文件,可根据变量动态生成配置文 件; 有源文件,目标文件可设变量 Handlers #处理器元素,通常指在某事件满足时触发的操作; Roles #角色元素 把playbooks里的东西模块化

playbook的基础组件:

---
- hosts: test  //要执行改剧本的主机
  vars:   //变量
    http_port: 80
    max_clients: 200
  remote_user: root   //指定以什么用户执行
  tasks:     // 下面的内容是tasks的列表
  - name: ensure apache is at the latest version  // 自定义的任务名
    yum: name=httpd state=latest     //任务执行的模块和动作
  - name: write the apache config file
    template: src=/srv/httpd.j2 dest=/etc/httpd.conf
    notify:     //定义角色执行完后下一步进行的操作,与下方组件handlers关联
    - restart apache
  - name: ensure apache is running
    service: name=httpd state=started
  handlers:
    - name: restart apache
      service: name=httpd state=restarted
name 描述信息 每个剧本有很多play,每一个play都有一个name,每一个play都可以完成 一个任务, play相当于剧本里的剧情,每个tasks也是由name定义
hosts playbook中的每一个paly的目的都是为了让某个或某些以某个指定用户的身份执行任 务。hosts用于指定要执行指定任务的主机,其可以是一个或多个由冒号分割主机组。与命 令模式下的ansible匹配规则一样
user remote_user则用于指定远程主机上的执行任务的用户,也可以使用user
tasks 任务列表 play的主体部分是task list. task list中的各任务按次序逐个在hosts中所有指定的主机上执 行,即在所有主机上完成第一个任务后再开始第二个。
vars 有了这个标记才能定义变量 定义变量
vars_files 定义变量文件
notify 如果使用handler处理程序必须使用notify //触发器 任务执行结果如果是发生更改了的,则触发定义在handler的任务执行
handlers 用于当前关注的资源发生变化时采取一定指定的操作

语法检测:
#ansible-playbook --syntax-check apache.yam
查询;play参数
ansible-playbook --list-tasks apache.xml
ansible-playbook --list-hosts apache.xml
ansible-playbook --list-tags apache.xml

主机(hosts)和用户(users)
Playbook中的每一个paly的目的都是为了让某个或某些主机以某个指定的用户的身份执行任务,hosts用于指定要执行任务的主机,其可以是一个或多个由冒号分隔主机组,这和前面章节ansible命令提到的的hosts使用一样的语法。remote_user则用于指定远程主机上的执行任务的用户,如上面示例中:

- hosts: test
  remote_user: root

不过,remote_user也可用于各task中:

- hosts: test
  remote_user: root
  tasks:
    - name:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值