首页 > 其他分享 >A-Ansible-Playbook参数

A-Ansible-Playbook参数

时间:2023-02-23 12:31:59浏览次数:30  
标签:task sudo YAML 任务 Ansible 参数 Playbook 执行 PlayBook

Playbook核心元素

Hosts #执行的远程主机列表 Tasks #任务集 Variables #内置变量或自定义变量在playbook中调用 Templates #模板,可替换模板文件中的变量并实现一些简单逻辑的文件 Handlers 和 notity #结合使用,由特定条件触发的操作,满足条件方才执行,否则不执行 tags #标签 指定某条任务执行,用于选择运行playbook中的部分代码。 ansible具有幂等性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长。此时,如果确信其没有变化,就可以通过tags跳过此些代码片断

remote_user: #可用于Host和task中。也可以通过指定其通过sudo的方式在远程主机上执行任务,其可用于play全局或某任务;此外,甚至可以在sudo时使用sudo_user指定sudo时切换的用户

task列表和action play的主体部分是task list, task list中的各任务按次序逐个在hosts中指定 的所有主机上执行,即在所有主机上完成第一个任务后,再开始第二个任务 task的目的是使用指定的参数执行模块,而在模块参数中可以使用变量。模 块执行是幂等的,这意味着多次执行是安全的,因为其结果均一致 每个task都应该有其name,用于playbook的执行结果输出,建议其内容能 清晰地描述任务执行步骤。如果未提供name,则action的结果将用于输出

Handlers 是task列表,这些task与前述的task并没有本质上的不同,用于当关注的资源发 生变化时,才会采取一定的操作 Notify此action可用于在每个play的最后被触发,这样可避免多次有改变发生 时每次都执行指定的操作,仅在所有的变化发生完成后一次性地执行指定操作。 在notify中列出的操作称为handler,也即notify中调用handler中定义的操作


Ansible PlayBook应用.

PlayBook是由一个或多个“play"组成的列表,play的主要功能是为ansible中的task定义好的角色,指定剧本对应的服务器组。

Task是一个任务,task调用ansible各种模块module,将多个play组织在一个PlayBook剧本中,然后组成一个非常完整的流程控制集合。

基于Ansible PlayBook还可以收集命令,创建任务集,大大降低管理工作的复杂程度,PlayBook采用YAML语法结构,易于阅读,方便配置。

YAML(yet another markup language)是一种直观的能被 电脑识别的数据序列化格式,是一具容易阅读,容易和脚本语言交互,用来表达资料序列的编程语言。这参考了其它多种语言,包括XML、C语言、Python、Perl以及电子邮件格式FRC2822,是类似于标准通用标记语言的子集XML的数据描述语言,但语法比XML简单。YAML使用空白字符和分行来分隔资料,适用于grep、Python、Perl、Ruby操作。

YAML语言特性

A. 可读性强

B. 和脚本语言的交互性好

C. 使用实理语言的数据类型

D. 一致的信息模型

E. 易于实现

F. 可以基于流来处理

G. 可扩展性强

PlayBooks组件包括内容如下:

A. target:定义PlayBook使用的远程主机组。

\1. hosts:定义远程主机组

\2. user:执行该任务的用户

\3. sudo:设置为yes的时候,执行任务的时候使用root权限

\4. sudo_user:指定sudo普通用户

\5. connection:默认基于SSH连接客户端

\6. gather_facks:获取远程主机facts基础信息

B. variable:定义PlayBook使用的变量。

\1. vars:定义格式,变量名:变量值

\2. vars_files:指定变量文件

\3. vars_prompt:用户交互模式自定义变量

\4. setup:模块获取远程主机的值

C. task:定义远程主机上执行的任务列表。

\1. name:任务显示名称也即屏幕显示信息

\2. action:定义执行的动作

\3. copy:复制本地文件到远程主机

\4. template:复制本地文件到远程主机,可以引用本地变量

\5. service:定义服务的状态

D. handler:定义task执行完成以后需要调用的任务,例如配置文件被改动,则启用handler任务重启相关联的服务。

YAML语法简介

 在单一档案中,可用连续三个连字号(——)区分多个档案。另外,还有选择性的连续三 个点号( ... )用来表示档案结尾

 次行开始正常写Playbook的内容,一般建议写明该Playbook的功能

 使用#号注释代码

 缩进必须是统一的,不能空格和tab混用

 缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过 缩进结合换行来实现的

 YAML文件内容是区别大小写的, k/v的值均需大小写敏感

 多个k/v可同行写也可换行写,同行使用,分隔

 v可是个字符串,也可是另一个列表

 一个完整的代码块功能需最少元素需包括 name 和 task

 一个name只能包括一个task

 YAML文件扩展名通常为yml或yaml


标签:task,sudo,YAML,任务,Ansible,参数,Playbook,执行,PlayBook
From: https://blog.51cto.com/u_13688209/6081029

相关文章

  • 前端学习之------事件对象和参数
    经常忘记,在此记录一下~如果想在一个事件函数中既传递事件对象,又传递所需参数,则事件对象使用$event来传结果: ......
  • Jmeter递增参数
    1、前言在最近压测接口的时候,有一个需要不同参数进行测试。从网上看了几篇文章,有一些解决办法:Jmeter连接数据库,循环获取数据准备Navicat写sql准备数据,对于有规律的数据......
  • python 可变参数和lambda
    deffunc(*args):printlen(args)printargs[1]printargsif__name__=='__main__':mylist=[1,7200,3]func(*mylist)func(1,2,3,4)#传参cl......
  • json.dumps()使用indent参数 格式化输出json数据格式
    json.dumps() 方法 将一个Python数据结构转换为JSON字符串data=[{"name":"小王","sex":'男'},{"name":"小明","sex":'女'}]json_str=json.dum......
  • 启动docker时候怎么向内部程序传入参数
    启动docker时候怎么向内部程序传入参数 启动docker的命令是dockerrun******************他有好多的参数,具体看https://www.runoob.com/docker/docker-run-command......
  • Ansible 多机自动化工具 初学笔记
    此文档仅张聪明同学个人笔记;新负责KTH-RPLClusterGPU的漫漫学习长路EnglishDocs:https://docs.ansible.com/ansible/latest/index.htmlhttps://gits-15.sys.kth.se/......
  • Ansible 快速入门到放弃
    Ansible快速入门到放弃最是人间留不住,朱颜辞镜花辞树。1-Ansible简介Ansible是一个配置管理和配置工具,它使用SSH连接到服务器并运行配置好的任务,服务器上只......
  • golang WEB框架Hertz --- 获取参数
    安装Hertz命令行工具请确保您的Go版本在1.15及以上版本,笔者用的版本是1.18配置好GO的环境后,按照Hertz的命名行工具goinstallgithub.com/cloudwego/hertz/cmd/hz@lates......
  • ansible中map
    一、简介ansible中的filter:map,其实是jinja2中的filterpython中map(func,iter)返回func与每个元素计算后的迭代器,iter是个可迭代对象ansible中的map和python中的基......
  • ASEMI低压MOS管ASE50N03参数,ASE50N03封装
    编辑-ZASEMI低压MOS管ASE50N03参数:型号:ASE50N03漏极-源极电压(VDS):30V栅源电压(VGS):20V漏极电流(ID):50A功耗(PD):60W储存温度(Tstg):-55to150℃静态漏源导通电阻(RDS(ON)):5.8m......