自动化运维---playbook(应用变量)
自动化运维—playbook(应用变量)
文章目录
- 自动化运维---playbook(应用变量)
- 1.定义变量
- 2.在playbook中使用变量
- 3.定义多个变量
- 4.定义变量参数
- 5.文件变量分离
1.定义变量
变量名应该由字母、数字、下划线组成,变量名需要以字母开头,ansible内的关键字不能作为变量名。
2.在playbook中使用变量
如果我们想要在某个play中定义变量,可以借助vars关键字
除了能够在playbook中直接定义变量:我们还可以在某个文件中定义变量,然后再在playbook中引入对应的文件,引入文件后,playbook即可使用文件中定义的变量
vim var1.yml
---
- hosts: testBvars:testvar1: testfileremote_user: roottasks:- name: task1file:path=/testdir/{{ testvar1 }}state=directory
执行:
ansible-playbook var1.yml
语法2(YAML块序列语法):
vars:- testvar1: testfile
3.定义多个变量
定义多个变量:
vars:testvar1: testfile1testvar2: testfile2
除了使用上述语法,使用YAML的块序列语法也可以定义变量, 示例如下:
vars:
- testvar1: testfile1- testvar2: testfile2
vim var1.yml
---
- hosts: testBvars:- testvar1: testfile- testvar2: testfile2remote_user: roottasks:- name: task1file:path=/testdir/{{ testvar1 }}state=directory- name: task2file:path=/testdir/{{ testvar2 }}state=directory
执行:
ansible-playbook var1.yml
4.定义变量参数
当我们需要引用这两个变量时,有两种语法可用语法:
语法一
"{{httpd.conf80}}"语法二"{{nginx['conf8080']}}"
语法一应用:
vim var2.yml
---
- hosts: testBremote_user: rootvars:httpd:conf80: /etc/httpd/conf.d/80.confconf8000: /etc/httpd/conf.d/8000.conftasks:- name: task1file:path: "{{httpd.conf80}}"state: touch- name: task2file:path: "{{httpd.conf8000}}"state: touch
语法2:
---
- hosts: testBremote_user: rootvars:httpd:conf80: /etc/httpd/conf.d/80.confconf8000: /etc/httpd/conf.d/8000.conftasks:- name: task1file:path: "{{httpd['conf80']}}"state: touch- name: task2file:path: "{{httpd['conf8000']}}"state: touch
还可以使用=(不需要引号):
---
- hosts: testBremote_user: rootvars:httpd:conf80: /etc/httpd/conf.d/80.confconf8000: /etc/httpd/conf.d/8000.conftasks:- name: task1file:path={{httpd['conf80']}}state=touch- name: task2file:path={{httpd['conf8000']}}state=touch
5.文件变量分离
如果我们定义了变量,但又不想把变量的值直接写在剧本里,可以采用这种方法:将变量的值写在文件中
注意:文件名也是要以.yml结尾,而文件中的语法也要使用YAML语法
vars_ files关键字也可以引入多个变量文件,每个被引入的文件都需要以"- "开头
vars files:- /testdir/ansible/nginx_vars.yml- /testdir/ansible/other_vars.yml
vars关键字和vars_ files关键字可以同时使用,如下:
vars:
- conf90: /etc/nginx/conf.d/90.confvars_files:- /testdir/ansible/nginx_vars.yml
vim var2.yml
---
- hosts: testBremote_user: rootvars_files:- httpd_vars.ymltasks:- name: task1file:path={{httpd['conf80']}}state=touch- name: task2file:path={{httpd['conf8000']}}state=touch
vim httpd_vars.yml
httpd:conf80: /etc/httpd/conf.d/80.confconf8000: /etc/httpd/conf.d/8000.conf
ansible-playbook var2.yml
自动化运维---playbook(应用变量)相关推荐
- 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法
[Ansible自动化运维工具]Ansible变量之lookup生成变量方法 一.lookup插件介绍 1.lookup简介 2.lookup使用场景 3.lookup获取的数据源 4.lookup的 ...
- 自动化运维工具-Ansible的Playbook的使用
Playbook的使用 前言 一.Playbook是什么? 二.playbook使用场景 三.Playbook格式说明 四.Play book变量的使用 1 在主机列表定义变量 2 在playbook ...
- Python+Django+Ansible Playbook自动化运维项目实战(二)
Python+Django+Ansible Playbook自动化运维项目实战 一.资产管理,自动化发现.扫描 1.服务端资产探测.扫描发现 1)资产管理的资产: 2)抽象与约定: 2.探测协议和模块 ...
- Python+Django+Ansible Playbook自动化运维项目实战:资产管理
Python+Django+Ansible Playbook自动化运维项目实战 一.资产管理,自动化发现.扫描 1.服务端资产探测.扫描发现 1)资产管理的资产: 2)抽象与约定: 2.探测协议和模块 ...
- 【Ansible自动化运维工具】Ansible变量之Facts变量
[Ansible自动化运维工具]Ansible变量之Facts变量 一.Ansible facts介绍 1.facts组件简介 2.facts组件的使用场景 二.Ansible facts的基本使用 ...
- 自动化运维工具----ansible
自动化运维工具----ansible ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 主要模块以及功能 ...
- ansible自动化运维(一)——基本架构简介
1.介绍 ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台. 它是基于python语言, ...
- 一些小团队的自动化运维实践经验
作者:翟志军 来源:http://showme.codes/2018-06-07/devops-in-action/ 注:本文要求读者对Ansible和 Jenkins有一定的认识. 题记: 幸福的家 ...
- 基于 Bitbucket Pipeline + Amazon S3 的自动化运维体系
1 前言介绍 随着自动化运维水平的提高,一个基础的运维人员维护成百上千台节点已经不是太难的事情,当然,这需要依靠于稳定.高效的自动化运维体系.本篇文章即是阐述如何利用 bitbucket pipeli ...
- 自动化运维工具Ansible详细部署
一.基础介绍 ================================================================================= 1.简介 ansibl ...
最新文章
- This is A PostXing Test
- 字符串操作与正则表达式
- connect SAP Hybris Enterprise Commerce Platform to SAP Kyma
- assign复制对象_JavaScript标准对象:assign,values,hasOwnProperty和getOwnPropertyNames方法介绍...
- 实话!程序员大都不喜欢拉帮结派
- 写给人类的机器学习 四、神经网络和深度学习
- Sqlserver 中 CrossApply 和 inner join 的区别
- matplotlib绘图跳过时间段的处理方案
- git21天打卡-day8 本地分支push到远程服务器
- Unity3D基础35:五彩砖块
- JS PopupAlert
- GARFIELD@01-04-2005
- babelua for vs 2015
- 4:3比例 android 平板,分辨率与屏幕比例 决定你实际应用_平板电脑_平板电脑评测-中关村在线...
- iOS中需要避免的内存泄漏总结
- uiuc的计算机工程硕士学费标准,美国计算机硕士留学费用全都在这了!
- oracle付款汇兑损益怎么产生,月末汇兑损益怎么算调整分录如何做
- freemarker生成word不显示图片
- 《KVM虚拟化技术实战和原理解析》读书笔记(三)
- 基于C51单片机的DA方波可控制发生器
热门文章
- jena 查询 java_Jena搭建SPARQL查询RDF数据
- 8月第4周基金排行榜 | TokenInsight
- 哪个软件能代替斐讯路由_斐讯路由器最新版本|好用的路由器管理软件_最火手机站...
- Oracle 11.2.0.4.0 安装包校验
- 如何查找office安装路径
- 小米2/2S刷基于Android 5.1.1的CM12.1系统教程
- 台湾大学 李宏毅教授的个人主页
- 什么是OBD及组成和作用、工作原理
- widows终端远程连接Linux服务器
- 2029年会实现通用人工智能吗?Gary Marcus「叫板」马斯克:赌十万美元如何?