Ansible Playbook核心元素以及组件
Playbook核心元素
- Hosts 执行的远程主机列表
- Tasks 任务集
- Variables 内置变量或自定义变量在playbook中调用
- Templates 模板,可替换模板文件中的变量并实现一些简单逻辑的文件
- Handlers 和 notify 结合使用,由特定条件触发的操作,满足条件方才执行,否则不执行
- tags 标签 指定某条任务执行,用于选择运行playbook中的部分代码。ansible具有幂等性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长。此时,如果确信其没有变化,就可以通过tags跳过此些代码片断
hosts 组件
Hosts:playbook中的每一个play的目的都是为了让特定主机以某个指定的用户身份执行任务。hosts用于指定要执行指定任务的主机,须事先定义在主机清单中
one.example.com
one.example.com:two.example.com
192.168.1.50
192.168.1.*
Websrvs:dbsrvs #或者,两个组的并集
Websrvs:&dbsrvs #与,两个组的交集
webservers:!phoenix #在websrvs组,但不在dbsrvs组
案例:
- hosts: websrvs:appsrvs
remote_user 组件
remote_user: 可用于Host和task中。也可以通过指定其通过sudo的方式在远程主机上执行任务,其可用于play全局或某任务;此外,甚至可以在sudo时使用sudo_user指定sudo时切换的用户
- hosts: websrvsremote_user: roottasks:- name: test connectionping:remote_user: magedusudo: yes #默认sudo为rootsudo_user:wang #sudo为wang
task列表和action组件
play的主体部分是task list,task list中有一个或多个task,各个task 按次序逐个在hosts中指定的所有主机上执行,即在所有主机上完成第一个task后,再开始第二个task
task的目的是使用指定的参数执行模块,而在模块参数中可以使用变量。模块执行是幂等的,这意味着多次执行是安全的,因为其结果均一致
每个task都应该有其name,用于playbook的执行结果输出,建议其内容能清晰地描述任务执行步骤。如果未提供name,则action的结果将用于输出
task两种格式:
(1) action: module arguments
(2) module: arguments 建议使用
注意:shell和command模块后面跟命令,而非key=value
范例:
---
- hosts: websrvsremote_user: roottasks:- name: install httpdyum: name=httpd - name: start httpdservice: name=httpd state=started enabled=yes
其它组件
某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers
任务可以通过"tags“打标签,可在ansible-playbook命令上使用-t指定进行调用
ShellScripts VS Playbook 案例
#SHELL脚本实现
#!/bin/bash
# 安装Apache
yum install --quiet -y httpd
# 复制配置文件
cp /tmp/httpd.conf /etc/httpd/conf/httpd.conf
cp/tmp/vhosts.conf /etc/httpd/conf.d/
# 启动Apache,并设置开机启动
systemctl enable --now httpd #Playbook实现
---
- hosts: websrvsremote_user: roottasks:- name: "安装Apache"yum: name=httpd- name: "复制配置文件"copy: src=/tmp/httpd.conf dest=/etc/httpd/conf/- name: "复制配置文件"copy: src=/tmp/vhosts.conf dest=/etc/httpd/conf.d/- name: "启动Apache,并设置开机启动"service: name=httpd state=started enabled=yes
本文链接:http://www.yunweipai.com/34656.html
Ansible Playbook核心元素以及组件相关推荐
- playbook核心元素之 -- 角色role(9)
playbook核心元素之 --> 角色role 角色: 以特定的层级目录结构进行组织的tasks.variables.handlers.templates.files等: role_name/ ...
- playbook核心元素之 模板template 介绍(7)
playbook核心元素之 --> 模板template 介绍 templates:文件文件,内部嵌套有模板语言脚本(使用模板语言编写) [root@ansible ~]# ansible-do ...
- 自动化运维工具-----Ansible playbook详解
目录 一.Ansible playbook简介 二.Ansible playbook使用场景 三.Ansible playbook格式 格式简介 核心元素 基本组件 variables变量 模板tem ...
- Ansible 学习总结(2)—— Ansible playbook 入门详解
一.Ansible playbook 简单概述 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本.通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远 ...
- Ansible playbook
一.Ansible playbook 简介和使用场景 1.简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本. 通过 playbook 的详细描述,执行其中的一系列 ta ...
- Ansible playbook 详解
一.playbook流程介绍 playbook是由一个或者多个"play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角 ...
- ansible——playbook剧本的讲解与应用
目录 一.playbook 概述 1.1 playbook 介绍 1.2 Ansible playbook 使用场景 1.3 yaml基本语法规则 1.4 yaml支持的数据结构 1.3 示 ...
- 学习 UML 核心元素
按照描述事物的三种观点:结构(事物的客观存在).功能(事物可利用的价值).使用(对于使用者的意义)来描述<thinking in UML>中的核心元素. 1.版型: 结构:UML中的最基本 ...
- ansible playbook详细教程(笔记)
ctrl F 执行playbook命令 ansible playbook -i "inventory文件名" playbook.yml f 10 (并行级别10) 加参 ...
最新文章
- 解决阿里云无法正常使用samba的问题【转】
- ssm上传文件获取路径_SSM文件上传
- iptables 定义规则
- debuggap 调试html,DebugGap-官方版-DebugGap(移动端调试工具)4.2.2-独木成林
- SQLite 创建表(http://www.w3cschool.cc/sqlite/sqlite-create-table.html)
- DIV层+CSS实现锁屏
- PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测
- 用户画像_什么是“用户画像”?如何利用用户画像进行精准营销?
- 使用Python发送电子邮件
- 一键回到页面顶部_微信上线新功能!长期不看的公众号,帮你一键拒收
- ASP.NET的CreateUserWizard
- php云标签,php 创建标签云的代码示例
- 【原创】Mapped Statements collection does not contain value for DaoImpl.method
- ESP32-SPI接口bl0942驱动
- Python学习笔记(5)-集成开发环境IDLE的使用与调试
- linux下flock函数,flock()函数 Unix/Linux
- mysql ping命令_Ping命令详解
- 转:网络带宽测量工具之iperf
- 13、DA数模转换(PWM输出)
- 好气色“吃”出来 7条守则缔造美肌—多喝水、喝对水
热门文章
- find与grep命令简介及正则表达式(转)
- html游戏禁止微信浏览器下拉,如何用电脑模拟微信浏览器浏览禁止PC打开的微网站...
- 的计时器设置_【教程】PPT课件中常见的计时器效果(2)——沙漏式计时器 | 源文件提供下载...
- PyQt5 笔记6 -- 对话框(QDialog)
- 第四范式获2021德国红点设计奖,继iF奖后再获设计界最高奖项
- 如何成为一名合格的推荐系统工程师?
- 【NLP】Transformer模型深度解读
- BERT源码分析(PART II)
- CVPR2019最全整理:全部论文下载,Github源码汇总、直播视频、论文解读等
- Scrapy介绍及入门