Ansible_变量定义与引用

Ansible_变量定义与引用

    • inventory定义主机及主机组(自定义变量)
    • 通过/etc/ansible/ 定义文件表示变量
    • 使用ansible-playbook命令行传入:
    • playbook中写入:
    • playbook中引用vars_file:
    • vars_prompt传入
    • register变量:
    • setup模块获取变量传入

inventory定义主机及主机组(自定义变量)

$?cat?hosts
localhost?ansible_ssh_host=192.168.38.104?key=104client_105?ansible_ssh_host=192.168.38.105?key=105sour_106?ansible_ssh_host=192.168.38.106?key=106

通过/etc/ansible/ 定义文件表示变量

创建:/etc/ansible/host_vars/
创建:/etc/ansible/group_vars/

目录下文件名与host?&?group名一致,并未yml格式
例:
????$?cat?/etc/ansible/host_vars/client_105.yml
????
---
client_105_key:?105

使用ansible-playbook命令行传入:

-?为全局变量:-?-e?"name=duanyifei"-?--extra-vars=EXTRA_VARS-?-e?"@var.json"?/?"@var.yaml"?(通过文件传入)???-?cat?var.json:????????-?{"key":?"json"}???-?cat?var.yaml:????????-?key:?yaml

playbook中写入:

---
-?host:?client_105
??vars:
????key:?ansible

playbook中引用vars_file:

vars_files:
????-?var.yaml

vars_prompt传入

---
-?hosts:?client_105
??gather_facts:?False
??vars_prompt:
????-?name:?‘client_105_key‘
??????prompt:?‘Input?key‘??#交互时提示信息
??????private:?no??????????#输入数据是否显示
??tasks:
????-?name:?print?105_key
??????debug:?msg="{{?client_105_key?}}"

register变量:

两个tasks之前传递变量:

????tasks:
??-?name:?test1
????shell:?hostname
????register:?info
??-?name:?test2
????debug:?msg="the?varibale?is?{{?info?}}"

setup模块获取变量传入

#?获取remote_ip变量,并传给对端

$?cat?variable.yml
---
-?hosts:?client_105
??tasks:
????-?name:?print?105_key
??????template:?src=1.txt?dest=/tmp

$?cat?1.txt
{{?ansible_all_ipv4_addresses?}}

结果:
[[email protected]_105?~]#?cat?/tmp/1.txt
[u‘192.168.38.105‘]
时间: 2024-10-13 09:00:17

Ansible_变量定义与引用的相关文章

1. ansible-playbook 变量定义与引用

简单的playbook playbook 是ansible的核心组件,使用的是YAML语法. 下面请看简单的playbook代码 [[email protected] playb]# cat nginx.yaml - hosts: all tasks: - name: Install Nginx Package apt: name=nginx state=present - name: Copy Nginx.conf template: src=./nginx.conf.j2 dest=/etc

C++---类成员变量定义为引用

摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法 note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必须在初始化列表中进行初始化) #include <iostream> using namespace std; class A { public: A(int k):a(n){ // 必须要在初始化列表中进行初始化 n = k; cout << a <<endl; } int get() const { r

ansible 变量定义和引用

cat /etc/ansible/hosts [nodes]10.2.1.232 key=23210.2.1.43 key=43 cat debug.yaml ---- name: test how to use command module hosts: nodes remote_user: root gather_facts: false vars: - content: '20181104' tasks: - name: create a file shell: "echo {{key}}

Ansible系列(六):各种变量定义方式和变量引用

本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设置本地facts1.4 输出和引用变量1.5 注册和定义变量的各种方式 1.5.1 register注册变量 1.5.2 set_fact定义变量 1.5.3 vars定义变量 1.5.4 vars_files定义变量 1.5.5 roles中的变量 1.5.6 命令行传递变量 1.5.7 inve

php-环境、变量定义与输出、变量用法

1.php环境 1.1lawp 1.2wamp l: linux  w: windows //系统 a: apache  a: apache //阿帕奇 m: mysql  m: mysql //数据库 p: php p: php //php 2.变量定义与输出 2.1定义与输出都得带$ 2.2 定义:$name="xxx"; 输出: echo $name; //输出变量 var_dump($name); //输出数组,并打印类型与长度 print_r($name); //输出数组 3

实验十——一维数组的定义及引用

1.本次课学习到的知识点: (1)本次课学习数组,一种最基本的构造类型,它是一组相同类型数据的有序集合. (2)数组中的元素在内存中连续存放,每个元素都属于同一种数据类型,用数组名和下标可以唯一地确定数组元素.(3)一维数组的定义与引用:定义一个数组,需要明确数组变量名,数组元素的类型和数组的大小. 一维数组定义的一般形式为:类型名    数组名[数组长度]: (4)类型名指定数组中每个元素的类型:数组名是数组变量的名称,是一个合法的标识符:数组长度是一个整型常量表达式,设定数组的大小.数组长度

c++ 变量 定义 声明

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1.一种是需要建立存储空间的.例如:int a 在声明的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的. 例如:extern int a 其中变量a是在别的文件中定义的. 前者是“定义性声明(defining declaration)”或者称为“定义(definition

编程题:指针变量,直接引用和间接引用的区别。

#include<stdio.h> void main() { int a,b; int *p;   /*定义指针变量p*/ p=&b;     /*将变量b的地址放在变量p中*/ a=3;      /*直接引用变量a*/ *p=5;     /* 间接引用变量b*/ printf("a=%d,b=%d\n",a,b); } 编程题:指针变量,直接引用和间接引用的区别.,布布扣,bubuko.com

java 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块

①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为成员变量 ②通俗点说: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享.静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期. 而实例变量取决于类的实例.每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期. 注意点: 1.JAVA中初始化