Ansible-playbook之定义变量
1.引用变量
# 变量引用方式
"{{ }}"
2.定义变量 (vars)
- hosts: web
# 定义变量
vars:
- play_var: This_is_play_vars
tasks:
- name: touch new files
file:
# 引用变量
path: "/tmp/{{ play_var }}"
state: touch
3.定义变量文件 (vars_files)
# 定义变量文件 var.yml
# cat var.yml
play_var1: play_var1_sb1
play_var2: play_var2_sb2
# 测试剧本: cat web_test.yml
- hosts: web
#引用变量文件
vars_files:
- ./var.yml
tasks:
- name: touch new files
# 引用变量
file:
name: "/tmp/{{ play_var1 }}"
state: touch
4.主机清单中定义变量 (inventory)
# cat hosts
[web]
172.16.1.7
172.16.1.8
172.16.1.9
# 定义web组的变量,仅web组可使用
[web:vars]
inventory_var=inventory_variables
# 测试剧本: cat web_test.yml
- hosts: web
tasks:
- name: touch new files
file:
path: "/tmp/{{ inventory_var }}"
state: touch
5.定义主机变量 (host_vars)
# 创建主机变量目录
mkdir host_vars
# 创建主机变量文件
touch host_vars/172.16.1.7
# cat host_vars/172.16.1.7
host_var: host_var172.16.1.7
# cat host_vars/172.16.1.8
host_var: host_var172.16.1.8
6.定义主机组变量 (group_vars)
# 创建组变量目录
mkdir group_vars
# 创建组变量文件
touch group_vars/web
# cat group_vars/web
group_vars: group_vars_web
# cat web_test.yml
- hosts:
tasks:
- name: touch new files
file:
path: "/tmp/{{ group_vars }}"
state: touch
# 创建所有主机组变量文件
touch group_vars/all
# cat group_vars/all
group_all: group_all_test
# cat web_test.yml
- hosts:
tasks:
- name: touch new files
file:
path: "/tmp/{{ group_all }}"
state: touch
7.命令行传参 (extra)
# cat web_test.yml
- hosts: all
tasks:
- name: touch new files
file:
path: "/tmp/{{ extra_vars }}"
state: touch
# 命令行传参
ansible-playbook web_test.yml -e "extra_vars=123"
8.定义变量的优先级
# 命令行
1. extra
# playbook
2. vars
3. vars_files
# inventory
4. host_vars
5. group_vars
6. group_all
# 可通过debug模块测试
- hosts: web
tasks:
- name: touch new files
debug:
msg: "{{ extra_vars }}"
9.变量注册register
- hosts: web
tasks:
- name: Output Nginx Process
shell: ps aux| grep nginx
# 注册变量
register: nginx_process
- name:
debug:
msg: "{{ nginx_process.stdout_lines }}"
10.核心变量 facts
# 查看ansible可调用系统变量
ansible localhost -m setup
# 调用系统变量,查看系统IP
- hosts: web
tasks:
- name:
debug:
msg: "{{ ansible_eth1.ipv4.address }}"
Ansible-playbook之定义变量的更多相关文章
- Ansible Playbook 变量与 register 详解
ansible 定义变量方式与[多层]变量引用,以及 register 详解 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录 ...
- ansible中定义变量的若干方法
Ansible支持十几种定义变量的方式 根据优先级排序的定义方式: Inventory变量 Host Facts变量 Playbook变量 Playbook提示变量 变量文件 命令行变量 1.Inve ...
- ansible官方文档翻译之变量
Ansible变量 在使用ansible变量的时候,主要是因为各个系统的不同,从而需要使用不同的变量来进行设置,例如在设置一些配置文件的时候,有大部分内容是相同的,但是一部分内容是和主机的ip地址或者 ...
- ansible playbook详解
ansible playbook是由yml语法书写,结构清晰,可读性强,所以必须掌握yml基础语法 语法 描述 缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tabs键 ...
- ansible-playbook定义变量与使用
1. ansible-playbook变量定义与使用 命令行 在Inventory中定义 在Playbook中定义 在Role中定义 注册变量(register) 系统信息变量(facts) 2. 在 ...
- Ansible Playbook概览
Ansible playbook 执行需要三步路执行: 1.编写playbook 2.定义主机清单文件 3.设置运行环境,写入配置文件 1.编写playbook Playbook使用YAML语法格式进 ...
- ansible playbook 变量
变量优先级 在命令中定义的变量(-e参数指定的) 在inventory中定义的变量(ansible_ssh_user等) 其他变量(role中.play中) 系统通过father_facts定义的变量 ...
- Ansible Playbook 使用变量
如何在 Playbook 中定义并使用变量: vars: - user: "test" # 定义变量 tasks: - name: create user user: name=& ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- 写Ansible playbook添加zabbix被监控的对象
本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...
随机推荐
- e = e || window.event的区别及用法
本文链接:https://blog.csdn.net/qq_41348029/article/details/81288481 e = e || window.event 在做事件处理时,用于区分IE ...
- Redis系列(五):Redis的RESP协议详解
一.什么是RESP Redis是Redis序列化协议,Redis客户端RESP协议与Redis服务器通信.Redis协议在以下几点之间做出了折衷: 简单的实现 快速地被计算机解析 简单得可以能被人工解 ...
- 解决mysql java.sql.SQLException: The server time zone value‘XXXXXX' is unrecognized or represents...
解决 java.sql.SQLException: The server time zone value 'XXXXXX' is unrecognized or represents more tha ...
- 代码自动机(攻 ACwing 限时题)
#include<bits/stdc++.h> #include<windows.h> using namespace std; int tot=0; void an(int ...
- ThinkPHP5——模型关联(一对多关联)
关联定义 一对多关联的情况也比较常见,使用hasMany方法定义,参数包括: hasMany('关联模型名','外键名','主键名',['模型别名定义']); 例如租客表和宿舍表,一个宿舍有多个租客, ...
- Flink入门(二)——Flink架构介绍
1.基本组件栈 了解Spark的朋友会发现Flink的架构和Spark是非常类似的,在整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富 ...
- vue 各种打包坑
1,报错 Refused to load the image 'http://localhost:8080/favicon.ico' because it violates the following ...
- AutoLayout的那些事儿
转自:http://www.cocoachina.com/ios/20160530/16522.html 本文投稿文章,作者:MangoMade(简书) AutoLayout非常强大也非常易用,可读性 ...
- HYSBZ 1036树链剖分
一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从 ...
- HDU-6114
車是中国象棋中的一种棋子,它能攻击同一行或同一列中没有其他棋子阻隔的棋子.一天,小度在棋盘上摆起了许多車--他想知道,在一共N×M个点的矩形棋盘中摆最多个数的車使其互不攻击的方案数.他经过思考,得出了 ...