ansible-playbook剧本基础(一)

ansible的剧本是使用yaml语言进行编写的,基本语法如下:

基本语法:
1、大小写
2、同级别要对齐,缩进表示层级
3、缩进不允许使用Tab键
4、缩进空格数不规定,相同元素区分即可


支持的数据结构:
1、对象:键值对集合,又称映射/哈希/字典
例如:name:example 键:值
2、数组:一组按次序排列的值,又称序列/列表/
例如:-apple
3、纯量:单个的、不再分的值
例如:number:12.30
sure:true


play-book剧本
通过tasks调用ansible的模板将多个play组织在一个playbook中运行。
palybook构成部分:
(1)tasks:任务,相当于执行事务
(2)variables:变量(定义场景:hosts文件;剧本中;命令中)
(3)templates:模板
(4)handlers:处理器,满足条件,触发执行操作
(5)roles:角色



一个简单的playbook小示例:
实验环境:两台centos7,一台ansible服务器,一台测试机。
ansible服务器地址:192.168.71.128
测试机服务器地址:192.168.71.129

vim /opt/book.yml      #首先创建一个以.yml为结尾的文件
- hosts: webserver           #hosts定义了配置文件中的组名
  remote_user: root          #剧本中的演员:root用户,也可以是你推送秘钥的任意用户
  tasks:                              #任务,以下是执行什么任务
   - name: download apache          #自行定义的名称
     yum: name=httpd                        #指定模块,模块后跟相对应的操作
   - name: stopped firewalld
     service: name=firewalld state=stopped
   - name: stopped selinux
     command: ‘/usr/sbin/setenforce 0‘
   - name: copy index.html
     template: src=/opt/index.html dest=/var/www/html/index.html          #这里的模板要注意,需要创建推送的文件并写入你指定的内容。
   - name: started apache
     service: name=httpd state=started
检查yml文件中语法的正确性

ansible-playbook book.yml --syntax-check #检查yaml语法
ansible-playbook book.yml --list-tasks #检查tasks任务
ansible-playbook book.yml --syntax-hosts #检查生效的主机
ansible-playbook book.yml --start-at-task=‘Copy Nginx.conf

执行过程如下:

效果图如下:


playbook剧本一些常用的操作

1、触发器调用

- hosts: webserver            #定义主机组
  vars:                       #定义变量
    http_port: 80
    max_clients: 200
  users:root
  tasks:                      #执行的任务
    - name: write the apache config file
    template: src=/srv/httpd,j2 dest=/etc/httpd.conf
    notify:                    #调用触发以下操作
    - restart apache
  - name: ensure apache is running
    service: name=httpd state=started
  handlers:                    #处理器,给notify调用的命令,不调用不进行任何操作。
    - name: restart apache
      service: name=httpd state=restarted

2、执行错误,跳过改操作继续执行

- hosts: webserver
  remote_user: root
  tasks:
  - name: create mysql
    user:                      #这里不添加任何的实质性操作,会报错
    ignore_errors: true       #添加该行后出错跳过,继续执行
  - name: apache status
    command: ‘systemctl status httpd‘

原文地址:http://blog.51cto.com/13760226/2307643

时间: 2024-08-30 12:27:17

ansible-playbook剧本基础(一)的相关文章

2.Ansible Playbook剧本

1.playbook?playbook翻译过来就是"剧本",那playbook组成如下 play: 定义的是主机的角色 task: 定义的是具体执行的任务 playbook: 由一个或多个play组成,一个play可以包含多个task任务 简单理解为: 使用不同的模块完成一件事情 通俗理解playbook? - playbook 剧本 <---文件 YAML - play 找谁 明星 找那个主机 web01 - task 做什么 干什么事情 yum copy service -

ansible安装应用及playbook剧本的定义

在配置集群时,每个节点上有很多相同的配置,如启动服务相同.安装程序.提供相同的配置文件,甚至定制相同的任务计划来定期执行某些操作等.如果你管理的只是三两个节点配置起来还是相当简单的,但是有三五十台,甚至上百台你还要自已一个一个手动来配置,那就太痛苦了.因些我们就需要能实现批量管理的一套组件,ansible就是实现这样管理的工具. ansible以它强大功能和简单上手的应用,在2012年获OSS(Open Source Software,开源软件 开放源代码软件)一项大奖,评为前十名,评为最有用的

自动化运维Ansible之Playbook剧本(持续更新)

附上前两篇关于Ansible的博客地址,以供查阅,欢迎学习交流!自动化运维之Ansible概述及Ansible部署Ansible命令应用之常用模块 Playbook简介 playbook是ansible用于配置,部署,和管理被控节点的剧本. 通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态.playbook就像Ansible控制器给被控节点列出的的一系列to-do-list,而被控节点必须要完成. 也可以这么理解,playbook 字面意思,即剧本,现实中

【Ansible之playbook剧本】 &#434412;

目录 基本用法 传参使用 条件判断 when 标签 tags 模板 template 循环 with_item handlers 原文: http://blog.gqylpy.com/gqy/374 @(Ansible之playbook剧本) ymal: 列表:- 字典:key-value 文件后缀名:yml ansible-playbook 命令格式: -C:--check 干跑,不会执行 -f:FORKS 并发执行 --syntax-check:语法检查 --list-hosts:列出主机列

自动化运维工具ansible playbook和roles的使用

ansible的结构: Inventory 用来定义被控制端 Modules 定义被控制端可用的操作 Ad Hoc Commands 定义被控制端可以执行命令的 Playbook 批量运行的方式 Tasks: 任务:由各模块所支持执行的特定操作:可以通过ansible-doc module_name来查看帮助文档,非常详细 -m  user -a 'name= password=' Variables: 变量 Templates: 模板:(如执行httpd服务时,各节点上httpd的配置文件内容

Ansible PlayBook语法(4)

title: Ansible PlayBook语法(4) date: 2018-12-02 10:53:24 tags: Ansible categories: Ansible copyright: true --- Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署

ansible playbook使用总结

Ansible playbook的使用 playbooks概念 task: 任务:使用各模块所执行的特性操作任务,比如:-m user -a 'name= password=' Variables: 变量: Templates: 模板 在定义模板后可以实现各节点对应的变量来取代,表达式自身会根据当前节点所赋值做运算,之后生成的值则赋予这个参数,用于生产不同配置的配置文件,所以模板主要实现配置不同场景文本文件 而且这种使用模板语言来定义 模板语言中可以根据定义替换成特定主机的某些值 handler

运维自动化之ansible playbook结合docker安装smokeping

本次介绍ansible的paly book结合docker进行虚拟机里安装2.6.8版本smokeping(apache版本是2.4.7). docker版本 09:26:53 # docker version Client version: 0.11.1 Client API version: 1.11 Go version (client): go1.2.1 Git commit (client): fb99f99/0.11.1 Server version: 0.11.1 Server A

Python+Django+Ansible Playbook自动化运维项目实战

Python+Django+Ansible Playbook自动化运维项目实战网盘地址:https://pan.baidu.com/s/1bZ1Ju0mld3KLZawdxZ7m6Q 密码: 5k9x备用地址(腾讯微云):https://share.weiyun.com/5E7aUWv 密码:wzfdrn 本课程将带你从项目实践角度出发,围绕自动化资产扫描和发现.Ansible自动化任务执行的内容展开,让运维更简单.更高效,Hold住高薪! 适合人群:如果你是一位运维党,对Python运维自动化