Ansbile-变量

文章目录

  • 一、Ansible的常量(内置的变量)有哪些
  • ???????????????????????????
  • 二、Ansible的变量的使用
    • 在主机清单文件中定义变量(不推荐)
    • 在bash中之间定义变量(不推荐)
    • 在剧本中定义变量(不推荐)
      • `vars`方式
      • `vars_files`方式
    • bash中定义变量、`vars`和`vars_files`同时定义相同变量谁的优先级高?
    • 在/etc/ansible/host_vars目录和/etc/ansible/group_vars目录中定义变量(!!推荐!!)
      • 简述:
        • 为什么推荐使用这两种方式
        • 内容:
      • 在/etc/ansible/host_vars目录中定义变量
      • 在/etc/ansbile/group_vars目录中定义变量
      • 两种方式定义相同变量时,谁的优先级高
    • 以上所有的定义变量的方式谁的优先级高?
  • Ansible变量注册`register`
    • 什么是`register`为什么使用`register`
    • 如何使用`register`

一、Ansible的常量(内置的变量)有哪些

???????????????????????????

二、Ansible的变量的使用

在Ansible中,变量可以分为多个类别,主要包括:

  1. 主机变量(Host Variables):特定于主机的变量,可以在 inventory 文件中定义。

  2. 组变量(Group Variables):针对主机组定义的变量,通常在 group_vars 目录中。

  3. Playbook 变量:在 playbook 中定义的变量,可以在 vars 部分声明。

  4. Facts:通过 Ansible 收集的关于主机的信息,使用 setup 模块自动收集。

  5. 临时变量:在任务中定义的临时变量,使用 set_fact 模块。

  6. 环境变量:可以通过 env 变量获取。

  7. 注册变量:通过任务的结果注册的变量,可以使用 register 关键字。

  8. Jinja2 变量:使用 Jinja2 模板语法定义和处理的变量。

  9. Playbook 参数:通过命令行传递给 playbook 的变量,使用 --extra-vars

  10. 默认变量:角色中的 defaults/main.yml 文件中定义的变量。

这些变量可以在任务、模板和其他地方使用,提供灵活的配置选项。

在主机清单文件中定义变量(不推荐)

[rsync:children]
web_servers
nfs_servers
backup_servers[web_servers]
...
[web_servers:vars]
id=777
user=ooo[nfs_servsers]
...
[backup_servers]
...

调用测试:

  • 错误调用:
---
- name: the play to test the inventory variableshosts: web_serversbecome: notasks:- name: task1debug:# 下面的msg的内容是错误书写:msg: "web_servers conent: id:{{web_servers.id}}, user:{{web_servsers.user}}"

会报错:
在这里插入图片描述

  • 正确调用:
---
- name: the play to test the inventory variableshosts: web_serversbecome: notasks:- name: task1debug:# 下面的msg的内容是正确书写:msg: "vars defined in web_servers have: id:{{id}}, user:{{user}}"

在这里插入图片描述

在bash中之间定义变量(不推荐)

ansible-playbook -e 'user=kk' -e 'id=888'

在剧本中定义变量(不推荐)

vars方式

---
- name: the play1hosts: xxxbecome: novars:packages1:- redis- tomcattasks:- name: task1yum:name: {{packages1}}# name: "{{packages}}"不加引号可以吗??????????state: present

vars_files方式

# 创建含有变量的文件
vim ansbile_vars.txt
# vim中写入以下内容:
vars:packages1:- redis- tomcat

调用测试:

---

bash中定义变量、varsvars_files同时定义相同变量谁的优先级高?

bash方式 > vars _files > vars
测试:

---
- name: the play1hosts: web_serversbecome: no# 定义一个user变量tasks:

在/etc/ansible/host_vars目录和/etc/ansible/group_vars目录中定义变量(!!推荐!!)

简述:

为什么推荐使用这两种方式
内容:
  • host_vars目录:
    定义单个主机的变量

  • group_vars目录:
    定义主机组的变量

在/etc/ansible/host_vars目录中定义变量

# 单独为web01主机定义变量,文件名必须和DNS解析的主机名(这里是web01)相同
vim /etc/ansbile/host_vars/web01# 进入vim写入:
user:web01_user
id:4443# 单独为web02主机定义变量,文件名必须和DNS解析的主机名(这里是web02)相同
vim /etc/ansible/host_vars/web02# 进入vim写入:
user:web02_user
id:4444

测试调用:

---
- name: the play1hosts: web_serversbecome: notasks:- name: the task1user:name: "{{user}}"uid: "{{id}}"state: present# 尽管变量名相同,但效果是会为web01和web02各自创建不同的user

在/etc/ansbile/group_vars目录中定义变量

# 为主机组创建统一的变量,文件名必须与定义的主机组名相同
vim /etc/ansible/group_vars/web_servers# vim写入:
user:group_uni_user
id: 4449

两种方式定义相同变量时,谁的优先级高

host_vars > group_vars
测试:

以上所有的定义变量的方式谁的优先级高?

1、命令行方式
2、host_vars方式
3、group_vars方式
4、playbook中vars_files方式
5、playbook中vars方式
6、主机清单方式

Ansible变量注册register

什么是register为什么使用register

如何使用register

---
- name: the play1hosts: xxxbecome: notasks:- name: task1shell: 'date'- name: task2debug:msg: "{{date.stdout}}"

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/428077.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vulnhub(11):derpnstink(hydra爆破用户名和密码、验证的文件上传)

端口 nmap主机发现 nmap -sn 192.168.159.120/24 ​ Nmap scan report for 192.168.159.120 Host is up (0.00020s latency). ​ 120是新出现的机器,他就是靶机 nmap端口扫描 nmap -Pn 192.168.159.120 -p- --min-rate 10000 -oA nmap/scan 扫描开放端口保存到 nma…

【论文笔记】Are Large Kernels Better Teacheres than Transformers for ConvNets

Abstract 本文提出蒸馏中小核ConvNet做学生时,与Transformer相比,大核ConvNet因其高效的卷积操作和紧凑的权重共享,使得其做教师效果更好,更适合资源受限的应用。 用蒸馏从Transformers蒸到小核ConvNet的效果并不好,原…

图的应用(关键路径)

基于你设计的带权有向无环图,写出所有合法的关键路径,并算出关键路径总长度 文字描述:关键路径总长度的现实意义是什么? 1.关键路径 总长度454316 2.现实意义 从源点到汇点的所有路径中,具有最大路径长度的路径称…

好的头戴式降噪耳机一定很贵吗?四款热门头戴耳机盘点及推荐!

在快节奏的现代生活中,噪音无处不在,它常常干扰着我们的工作、学习与休闲时光。而一款高性价比的降噪蓝牙耳机,就如同一个贴心的伙伴,能为我们营造出一片宁静的听觉空间。如今,耳机市场蓬勃发展,想要好的头…

Broadcast:Android中实现组件及进程间通信

目录 一,Broadcast和BroadcastReceiver 1,简介 2,广播使用 二,静态注册和动态注册 三,无序广播和有序广播 1,有序广播的使用 2,有序广播的截断 3,有序广播的信息传递 四&am…

如何在GitHub上克隆仓库:HTTPS、SSH和GitHub CLI的区别

GitHub是开发者的天堂,提供了丰富的工具和功能来管理代码和项目。在克隆GitHub仓库时,你可能会遇到三种常见的方法:HTTPS、SSH和GitHub CLI。每种方法都有其独特的优势和适用场景。本文将深入探讨这三种克隆方式的区别,帮助你选择…

C++--类的实例化

一、实例化的概念 用类类型在屋里内存中创建对象的过程,称为类实例化出对象 类是对对象进行一种抽象描述,是一个模型一样的东西,限定了类有哪些成员变量,这些成员变量只是声明,没有分配空间,用类实例化出…

java项目之编程训练系统源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的编程训练系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 编程训练系统的主要使用者管…

【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上)

文章目录 前言一、ArkTS基本介绍1、 ArkTS组成2、组件参数和属性2.1、区分参数和属性的含义2.2、父子组件嵌套 二、装饰器语法1.State2.Prop3.Link4.Watch5.Provide和Consume6.Observed和ObjectLink代码示例:示例1:(不使用Observed和ObjectLi…

未来通信抢先看!遨游通讯2024年中国国际信息通信展亮点剧透

2024年中国国际信息通信展览会将于9月25日-27日在北京国家会议中心举行,本届展会以“推动数实深度融合,共筑新质生产力”为主题。在通信技术日新月异的今天,卫星通信、人工智能、低碳节能等技术理念正引领着通信行业迈向新的高度。遨游通讯作…

【漏洞复现】Casbin casdoor static 任意文件读取漏洞

漏洞描述 Casdoor 是 Casbin 开源社区推出的基于 OAuth 2.0 / OIDC 的中心化的单点登录(SSO)身份验证平台。 Casdoor static 存在任意文件读取漏洞,攻击者通过发送特殊的请求包可以获取服务器中的敏感文件。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵…

Linux C# DAY3

作业 1、 #!/bin/bash mkdir -p ~/dir/dir1 mkdir ~/dir/dir2 cp ./* ~/dir/dir1 cp ./*.sh ~/dir/dir2 cd ~/dir/ tar -cvJf dir2.tar.xz ./dir2 mv dir2.tar.xz ~/dir/dir1/ cd ~/dir/dir1/ tar -xvf dir2.tar.xz 2、 #!/bin/bash head -5 /etc/group | tail -1 sudo mkdi…

CORS漏洞及其防御措施:保护Web应用免受攻击

1. 背景- 什么是CORS? 在当今互联网时代,Web 应用程序的架构日益复杂。一个后端服务可能对应一个前端,也可能与多个前端进行交互。跨站资源共享(CORS)机制在这种复杂的架构中起着关键作用,但如果配置不当&…

Redis Key的过期策略

Redis 的过期策略主要是指管理和删除那些设定了过期时间的键,以确保内存的有效使用和数据的及时清理。 具体来说,Redis 有三种主要的过期策略:定期删除(Scheduled Deletion)、惰性删除(Lazy Deletion&#…

鸿蒙Harmony-Next 徒手撸一个日历控件

本文将介绍如何使用鸿蒙Harmony-Next框架实现一个自定义的日历控件。我们将创建一个名为CalendarView的组件(注意,这里不能叫 Calendar因为系统的日历叫这个),它具有以下功能: 显示当前月份的日历支持选择日期显示农历日期可以切换上一月和下一月 组件…

情感类智能体——你的微信女神

智能体名称:你的微信女神 链接:文心智能体平台AgentBuilder | 想象即现实 (baidu.com)https://agents.baidu.com/agent/preview/RulbsUjIGj4wsinydlBH7AR3NQKFungt 简介 “你的微信女神”是一个直率的智能体,她用犀利而真实的言辞帮助用户…

C++第十一节课 new和delete

一、new和delete操作自定义类型 new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数&#xff08;new会自动调用构造函数&#xff1b;delete会调用析构函数&#xff09; class A { public:A(int a 0): _a(a){cout <&l…

JAVAWeb--前端工程化

一、前端工程化开篇 1.1 什么是前端工程化 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。 1.2 前端工程化实现技术栈 前端工程化实现的技术栈有很多,我们采用ES6nodejsnpmViteVUE3route…

【C++ Primer Plus习题】16.10

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <string> #include <…

CefSharp_Vue交互(Element UI)_WinFormWeb应用(2)---置顶和取消置顶(含示例代码)

一、预览 获取winform的置顶参数,和设置置顶参数 1.1 置顶(默认不置顶) 1.2 示例代码