playbook文件

hello.yml
---
- name: test_tasks 【各个任务的总描述】
hosts: webserver
remote_user: root
gather_facts: no tasks:
- name: test1 【单个任务的描述】【一个- name里只能有一个模块的任务】
command: hostname
- name: test2 【单个任务的描述】
command: ls /root
1、文件后缀名为.yml或.yaml【因为是用yaml语言编写】
2、文件开头以---标记【习惯而已,为了标准化】
在第一行也可加yaml解释器:#!/usr/bin/ansible-playbook;执行脚本时 ./test/yml;可省去ansibile-playbook test.yml
3、文件内容有严格的缩进控制
4、hosts: webserver 【后面有空格,冒号后面有空格】
5、remote_user: root 【表示执行任务的用户:root】
6、tasks:空一行,为了规范
7、gather_facts: no设置为No,表示运行playbook脚本不做采集主机的真相信息,可以更快速执行脚本
8、关键词都是冒号结尾的

  

ansible-vault

ansible-vault工具功能,管理加密解密playbook文件
1、ansible-vault [create | decrypt |encrypt| edit | rekey | view]
2、ansible-vault encrypt hello.yml 【加密】
3、ansible-vault decrypt hello.yml 【解密】
4、ansible-vault create hello.yml 【创建】
5、ansible-vault edit hello.yml 【编辑】
6、ansible-vault rekey hello.yml 【修改口令】
7、ansible-vault view hello.yml 【查看】

ansible-console

ansible-console工具,是一个交互式工具
1、直接输入ansible-console
2、root@all (2)[f:5]$ 【root表示用户,all表示主机清单的所有主机,(2)表示主机清单有2台主机,[f:5]表示可并发执行5台主机】
3、root@all (2)[f:5]$ cd webserver 【进入到webserver主机组下】;cd 192.168.1.14 【进入到指定某个主机下】
4、root@all (2)[f:5]$ command hostname 【模块名+命令,即可直接执行】

palybook介绍

playbook是由一个或多个"play"组成的列表。
play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓task无非是
调用ansible的一个module;将多个play组织在一个playbook中,可以连同所有的play执行。
playbook采用YMAL 语言编写。

palybook核心元素

1、hosts 执行的远程主机列表
2、tasks 任务集
3、variables 内置变量或自定义变量在playbook中调用
4、templates 模板,可替换模板文件中的变量并实现一些简单逻辑的文件
5、handlers 和notity 必须结合使用,由特定的条件触发操作,notity通知>handlers执行
6、tags 标签 对某条任务名个别名,用于指定某条具体的任务执行:
ansible-playbook -t tagsname fiel.yml 【指定tagsname此标签执行任务】

YAML语法简介

1、在单一脚本中,可以连续三个字号---区分
2、次行开始正常些playbook的内容,一般建议写明该playbook的功能【即标记name:】
3、使用#号注释
4、缩进必须是同一的,不能空格和tab混用
5、缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进和换行来实现的
6、YAML文件内容和linux系统大小写判断方式一致,区别大小写
7、k/v值可同一行写也可换行写,同一行使用:分隔,换行写使用-
8、v可以是一个字符串,也可是另一个列表
9、一个完整的代码块功能需最少元素包括 name 、tasks
10、一个name只能包括一个task
11、YAML文件扩展名通常为yml或yaml
- name: **
hosts: **
remote_user: ** tasks:
- name: **
module: **
注意:所有和上一行的缩进必须保持相同的缩进量,如空格两个,则所有的以下的都必须是空格两个

  

playbook基础组件

 tasks:
- name: test1
command: hostname
1、如上,任务的模块名为shell或command时,后面直接跟命令,而非key=value形式
2、如果命令或脚本退出码不为0即执行出错了,可以使用如下代替:
tasks:
- name: test1
command: command1 || command2
或者使用ignore_errors来忽略错误信息:
tasks:
- name: test1
command: command1
ignore_errors: True

  

运行playbook

1、运行方式:
ansible-playbook [filename.yml] [options]
常见options:
--check 只检测脚本语法,但不真正执行操作, -C 代替别名ansible-playbook [filename.yml] -C
--list-hosts 列出运行任务的主机
--limit hosts 只针对主机列表中的主机执行
-v 显示过程 -vv -vvv更详细过程 2、举例:
ansible-playbook file.yml --check [或-C]
ansible-playbook file.yml --list-hosts
ansible-playbook file.yml --limit webserver
ansible-playbook file.yml -v [或-vv] [或-vvv] 3、ansible-playbook的新增功能参数:
--ask-vault-pass: 加密playbook文件时提示输入密码
-D : 即--diff:当更新的文件数及内容较少时,该选项可显示这些文件不同的地方,该选项结合-C用会有较好的效果
-e : -e var1=value1 在Playbook中引入外部变量
--flush-cache: 将清除fact到的远程主机缓存
--force-handlers: 强制运行handlers的任务,即使在任务失败的情况下
-i : -i inventory/init 指定要读取的主机清单文件init
--list-tags: 列出所有可用的tags
--list-tasks: 列出所有即将被执行的任务。
--skip-tags: 跳过指定的tags任务。
--start-at-task: 从第几条任务开始执行。
--step: 逐步执行Playbook定义的任务,并经人工确认后继续执行下一步任务。
--syntax-check: 检查Playbook中的语法书写。
-t TAGS, --tags=TAGS:指定执行该tags的任务

Ansible用法playbook的更多相关文章

  1. Ansible进阶--playbook的使用

    一.什么是playbooksplaybooks是ansible的脚本.如同shell脚本一样,它是控制远程主机的一系列命令的集合,通过YAML语言编写.执行一些简单的任务,我们可以使用ad-hoc命令 ...

  2. ansible基础-playbook剧本的使用

    ansible基础-playbook剧本的使用 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.YAML概述 1>.YAML的诞生 YAML是一个可读性高,用来表达数据序 ...

  3. Ansible之playbook的使用总结 - 运维笔记

    之前详细介绍了Ansible的安装, 配置, 以及Ansible常用模块的使用. 下面对Ansible的playbook用法做一小结. 为什么引入playbook?一般运维人员完成一个任务, 比如安装 ...

  4. ansible学习-playbook的YAML语法

    [一篇非常好的ansible参考博文] 初识Ansible http://liumissyou.blog.51cto.com/4828343/1616462 --------------------- ...

  5. 自动化运维工具——ansible剧本playbook(三)

    一.Playbook--Ansible剧本 playbook是由一个或多个 "play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的ta ...

  6. Ansible基于playbook批量修改主机名实战

    Ansible基于playbook批量修改主机名 安装Ansible,相信这里也不用多说,大家都知道 说一下环境:这里的主机名是修改之后的,我先把其他两台的主机名改为别的 192.168.30.21 ...

  7. 利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群

    首先在华为云上购买搭建ceph集群所需云主机: 然后购买ceph所需存储磁盘 将购买的磁盘挂载到用来搭建ceph的云主机上 在跳板机上安装ansible 查看ansible版本,检验ansible是否 ...

  8. 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续

    ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...

  9. Ansible 和 Playbook 暂存

    Ansible  和  Playbook 暂存 , 也是一个批量管理工具 自动化的批量管理工具 主机清单  HOST Inventory 模块插件  Playbooks 查看ansible的目录结构 ...

随机推荐

  1. js执行上下文与执行上下文栈

    一.什么是执行上下文 简单说就是代码运行时的执行环境,必须是在函数调用的时候才会产生,如果不调用就不会产生这个执行上下文.在这个环境中,所有变量会被事先提出来(变量提升),有的直接赋值,有的为默认值 ...

  2. Reporting Services 配置工具

    使用 Reporting Services 配置管理器可配置 Reporting Services 安装.如果使用“仅文件”选项安装报表服务器,则必须使用此工具来配置服务器,才能使用该服务器.如果使用 ...

  3. 170819-关于EL表达式的知识点

    1 .EL表达式 [1] 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > ...

  4. scrapy之Request对象

    我们在使用scrapy框架的时候,会经常疑惑,数据流是怎么样在各个组件中间传递的.最近经常用scrapy+selenium爬取淘宝,又因为今天周五心情好,本宝宝决定梳理一下这方面知识. scrapy中 ...

  5. CodeForces - 587E[线段树+线性基+差分] ->(线段树维护区间合并线性基)

    题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 做法一:对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线树上维护区间线 ...

  6. Java-package import关键字

    package包关键字,在java中,有包的概念,主要是用来归类 分类作用: 便于项目的开发和维护: 通过分包,可以很清晰的来管理类: 上述 一个类Animal: 在开头有个 package com. ...

  7. Vagrant - 打造跨平台的一致开发环境

    官网 参考资料 借助 Vagrant ,可以使用 Vagrantfile 文件自动化虚拟机的安装和配置流程,方便快速的打造跨平台的统一开发环境. 1. Vagrant 是啥 Vagrant 用于构建及 ...

  8. Altium Designer chapter4总结

    原理图设计进阶中需要注意如下: (1)多电路原理图的设计:图纸连接符是连接各个电路图的电器连接:VCC GND属于特殊的网络标号,在多电路原理图中不需要添加. (2)层次式电路原理图设计:注意自上而下 ...

  9. MAC-安装套件管理工具Homebrew

    前言 Homebrew是一款Mac OS下的套件管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能. Homebrew安装 1,Homebrew官网获取安装指令,官网地址:https://br ...

  10. C#的一般处理程序中Cookie的写入、读取、清除

    1.写入Cookie值 string userName = context.Request.Form["u_Name"].ToString().Trim(); string pwd ...