Ansible基础四——变量、机密、事实

news2024/11/27 8:46:30

文章目录

  • 一、变量
  • 二、机密
    • 2.1 创建加密文件
    • 2.2 查看加密文件
    • 2.3 编辑加密文件内容
    • 2.4 加密现有文件
    • 2.5 解密文件
    • 2.6 更改加密密码
  • 三、事实
    • 3.1 收集展示事实
    • 3.2 展示某个结果
    • 3.3 新旧事实命令
    • 3.4 关闭事实
    • 3.5 魔法变量

一、变量

常设置的变量:

  • 要创建的用户
  • 要安装的软件包
  • 要重新启动的服务
  • 要删除的文件
  • 要从互联网检索的存档

命名变量:

  • 变量的名称必须以字母开头,并且只能包含字母、数字和下划线。

变量优先级:

  • 全局范围:从命令行或Ansible配置设置的变量。
  • playbook范围:在play和相关结构中设置的变量。
  • 主机范围:由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量。
  • 命令行 > playbook变量 > 清单文件变量

1.playbook中定义变量。

[root@localhost playbook]# cat baimu.yml 
---
- name: 服务安装
  hosts: all
  vars:                             ##添加变量。
    service_name: httpd
  tasks:
    - name: 安装httpd
      yum:
        name: "{{ service_name }}"      ##引用变量名。
        state: present

在这里插入图片描述
2.使用变量文件定义。
在这里插入图片描述
在这里插入图片描述

二、机密

命令释义
create创建一个vault加密文件
decrypt解密保险库加密文件
edit编辑保险库加密文件
view查看保险库加密文件
encrypt加密YAML文件
encrypt_string加密字符串
rekey重新加密保险库加密文件

2.1 创建加密文件

1.输出密码创建加密文件qingjun,内容为“我在学习”。
在这里插入图片描述
2.指定密码文件创建加密文件baimu,内容为"热爱祖国"。
在这里插入图片描述

2.2 查看加密文件

1.查看加密文件qingjun内容。
在这里插入图片描述
2.查看加密文件baimu内容。
在这里插入图片描述

2.3 编辑加密文件内容

1.对现有的加密文件baimu内容进行编辑,添加一行“华夏九州”,输入密码查看验证。
在这里插入图片描述

2.4 加密现有文件

1.将普通文件qingjun1加密,变成加密文件,只能使用密码查看。
在这里插入图片描述

2.5 解密文件

1.将加密文件变成普通文件。
在这里插入图片描述

2.6 更改加密密码

1.更改加密文件baimu的密码,有原来的123456变成citms。
在这里插入图片描述

三、事实

基本了解:

  • 通过setup模块获取受控机上的变量称为事实,将变量信息输出展示到主控机上,可以方便主控机对受控机的操控使用。
  • 事实中包含与受控机相关的信息,可以配合playbook中的变量、条件和循环来使用。
  • 每个play在执行第一个任务之前会先自动运行setup模块来收集事实,但不会展示出来,可以在playbook中使用debug模块来收集事实并展示出来。

常用事实:

  • 主机名称
  • 内核版本
  • 网络接口
  • IP地址
  • 操作系统版本
  • 各种环境变量
  • CPU数量
  • 提供的或可用的内存
  • 可用磁盘空间

3.1 收集展示事实

1.使用setup模块获取对受控机收集的事实。

ansible all -m setup -i inventory.ini |less

在这里插入图片描述
2.使用debug模块收集展示事实。

[root@localhost playbook]# cat qingjun.yml 
---

- name: 系统初始化
  hosts: 192.168.130.161
  tasks:
    - name: 执行setup模块,取变量
      debug:
        var: ansible_facts

在这里插入图片描述

3.2 展示某个结果

1.只展示事实中的某个参数。
在这里插入图片描述
在这里插入图片描述
2.作为变量被其他模块使用。

[root@localhost playbook]# cat qingjun.yml 
---

- name: 获取变量
  hosts: 192.168.130.161
  tasks:
    - name: 获取变量1
      shell: |
        echo 这台受控机的ip是:{{ ansible_facts['all_ipv4_addresses'] }}    ##双括号代表引用变量。
      register: qingjun         ##register捕获命令输出,写在哪个任务下面打印哪个任务下的信息。
    - debug: var=qingjun             ##使用debug模块打印一个变量值,这里就打印qingjun变量。
 
    - name: 获取变量2
      shell: |    
        echo 版本号为:{{ ansible_facts['bios_version'] }}
      register: qingjun
    - debug: var=qingjun

在这里插入图片描述

3.3 新旧事实命令

ansible_facts形式旧事实变量形式
ansible_facts[‘hostname’]ansible_hostname
ansible_facts[‘fqdn’]ansible_fqdn
ansible_facts[‘default_ipv4’][‘address’]ansible_default_ipv4[‘address’]
ansible_facts[‘interfaces’]ansible_interfaces
ansible_facts[‘devices’][‘vda’][‘partitions’][‘vda1’][‘size’]ansible_devices[‘vda’][‘partitions’][‘vda1’][‘size’]
ansible_facts[‘dns’][‘nameservers’]ansible_dns[‘nameservers’]
ansible_facts[‘kernel’]ansible_kernel

1.使用旧语法展示事实结果。

[root@localhost playbook]# cat qingjun.yml 
---

- name: 获取变量
  hosts: 192.168.130.161
  tasks:
    - name: 获取变量1
      shell: |
        echo 这台受控机的ip是:{{ ansible_all_ipv4_addresses }}     ##使用就语法,去掉facts。
      register: qingjun
    - debug: var=qingjun

在这里插入图片描述
2.关闭就语法使用。修改ansible配置文件参数“ inject_facts_as_vars = True ”,它默认是开启的,将注释取消,改为False即可。
在这里插入图片描述

3.4 关闭事实

1.添加参数“gather_facts: no”,可关闭事实收集功能。
在这里插入图片描述

在这里插入图片描述

2.此时可以添加setup模块,临时收集事实。

[root@localhost playbook]# cat qingjun.yml 
---

- name: 获取变量
  hosts: 192.168.130.161
  tasks:
    - name: 获取变量1
      shell: |
        echo 这台受控机的ip是:{{ ansible_facts['all_ipv4_addresses'] }}
      register: qingjun
    - debug: var=qingjun

在这里插入图片描述

3.5 魔法变量

  • 除了从事实中展示出来的变量,也还有一些其他变量由Ansible自动设置,这种变量成为魔法变量。这些魔法变量也可用于获取与特定受管主机相关的信息。
  • 官网连接
常用魔法变量释义
hostvars包含受管主机的变量,可以用于获取另一台受管主机的变量的值。
若还没有为受管主机收集事实,则它不会包含该主机的事实。
group_names列出当前受管主机所属的所有组
groups列出清单中的所有组和主机
inventory_hostname包含清单中配置的当前受管主机的主机名称,也有可能与事实报告的主机名称不同

1.查看受控机的变量信息,setup模块查不到的这部分信息。
在这里插入图片描述
2.查看清单中的所有组和主机。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式之~中介者模式

简述: 中介者模式又叫做调停者模式。其实就是中间人或者调停者的意思。 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互调用,从而式其耦合松散,而且可以独立…

hive实战案例讲解

系列文章目录 hive进阶——在centos7里面配置mysql,将原来hive的客户端扩展 centos集群上安装hive客户端的操作步骤以及hive介绍 文章目录 Hive 实战 1、需求描述 2、数据结构 1)视频表 2)用户表 3、准备工作 3.1、准备表 3.2、创…

基于ATMEGA16单片机的空调控制器

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87853101 源码获取 主要内容: 本系统采用AVR单片机实现汽车空调的自动控制(双位控制),具有电路结构简单、分立元件…

【大数据基石】Hadoop环境搭建

文章目录 前言配置hosts关闭防火墙配置SSH免密下载Hadoop解压Hadoop到指定目录添加环境变量修改Hadoop配置文件core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkershadoop-env.sh 其他2台服务器也这样配置初始化NameNode启动hdfs启动Yarn启动历史记录服务器 ✨这里…

[中间件漏洞]tomcat漏洞复现

目录 Tomcat 远程代码执行漏洞(CVE-2017-12615) 漏洞描述 漏洞原理 漏洞复现 漏洞修复 tomcat弱口令&war远程部署 漏洞原理 漏洞复现 漏洞修复 Apache Tomcat文件包含漏洞(CVE-2020-1938) 漏洞复现 漏洞修复 Tomcat 远程代码执行漏洞…

ffmpeg之AVFormatContext详细解释

AVFormatContext 作用 AVFormatContext主要起到了管理和存储媒体文件相关信息的作用。它是一个比较重要的结构体,在FFmpeg中用于表示媒体文件的格式上下文,其中包含了已经打开的媒体文件的详细信息,包括媒体文件的格式、媒体流的信息、各个媒…

1 行代码开启「密钥检测」,给敏感数据加上防护锁

💡 近日,在「DevSecOps 软件安全开发实践」课程上,极狐(GitLab) 高级专业服务交付工程师韩飞、极狐(GitLab) 前端工程师任治桐,分享了密钥检测的背景、应用及处理,并演示了极狐GitLab 密钥检测功能,快用 1 …

视频文件损坏无需再苦恼!快速修复方法分享!

如今录制视频或者从互联网下载视频都很简单,这些视频可以从笔记本电脑、电视甚至智能手机上用于观看或上传到自媒体平台/社交平台。 但视频有时会出现损坏的问题,导致视频无法正常播放,出现这种情况怎么办? 导致视频文件损坏的原…

家居购项目 1.分页导航 2.购物车 3.订单生成

文章目录 🐀Java后端经典三层架构🐇MVC模型🐇开发环境搭建🐇会员注册🌳前端验证用户注册信息🌳思路分析🍉创建表🍉创建实体类🍉DAO🍌MemberDAOImpl &#x1f…

怎么编辑pdf里面的文字?好用工具分享

PDF文件是一种非常常见的电子文档格式,它具有通用性、易分享、易打印的特点,因此广泛应用于各个领域中。然而,PDF文件通常是只读的,如果需要修改其中的文字,就需要使用专业的PDF编辑软件或者在线编辑工具。 市场上有很…

cuda编程学习——原子函数(十)

前言 参考资料: 高升博客 《CUDA C编程权威指南》 以及 CUDA官方文档 CUDA编程:基础与实践 樊哲勇 文章所有代码可在我的GitHub获得,后续会慢慢更新 文章、讲解视频同步更新公众《AI知识物语》,B站:出门吃三碗饭 …

文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题

三、假设你希望以1/2的概率输出0与 1。你可以自由使用一个输出0或1的过程 BIASED-RANDOM。它以某概率 p 输出1&#xff0c;概率 1-p 输出0&#xff0c;其中 0<p<1 &#xff0c;但是 p 的值未知。请给出一个利用 BIASED-RANDOM 作为子程序的算法&#xff0c;返回一个无偏的…

pwm led

PWM Dimming (脉冲宽度调制) 调光——是一种利用简单的数字脉冲&#xff0c;反复开关灯光LED驱动器的调光技术。通过程序控制输出宽、窄不同的数字式脉冲&#xff0c;即可简单地实现改变输出电流&#xff08;电压&#xff09;&#xff0c;从而调节LED灯的亮度。 当PWM不是满占空…

真无线蓝牙耳机哪个牌子好用?六款真无线蓝牙耳机品牌推荐

无论我们是看视频还是在路上听音乐&#xff0c;真无线蓝牙耳机可以丰富我们的一天。然而&#xff0c;问题是有太多的选择&#xff0c;许多人不知道哪一款的性价比高音质好&#xff0c;下面小编特意整理了一期性价比高音质好的蓝牙耳机。 第一款&#xff1a;南卡小音舱lite2 蓝…

运维小白必学篇之基础篇第一集:Linux相关命令实验

Linux相关命令实验 实验者&#xff1a;胡 阳 命令提示符 【rootlocalhost ~】# 【当前登录系统的用户主机名 当前工作目录】提示符 &#xff08;# 表示 管理员&#xff09; &#xff08;&#xff04; 表示 普通用户&#xff09; 基本格式&#xff1a;命令 【选项】 【…

一文带你学习前端 - 自动化测试

theme: devui-blue 前端自动化测试 1. 自动化测试基本概念介绍 前言 一般我们实现功能&#xff0c;基本都是两部分写代码&#xff0c;调试/测试。写代码和测试的时间&#xff0c;基本都是55分。如果是测试逻辑&#xff0c;可能要打一下log&#xff0c;或者打断点去调试。测…

行业报告 | 工业机器视觉深度报告——兼具高成长和成熟技术的AI应用赛道

原创 | 文 BFT机器人 01 核心要点 核心观点: 工业机器视觉是高技术壁垒、商业模式成熟、国产替代迅速、行业快速发展的优秀赛道。行业端&#xff1a;3C电子是最主要的行业&#xff0c;新能源行业增速最快&#xff0c;受益于质量管控政策和行业高增速。技术端&#xff1a;大模型…

让工作效率提升10倍:十大AIGC工具评测

AI技术的普及已经在近年来不断增长。这种技术已经改变了我们与电脑的互动方式&#xff0c;让我们能够更高效、更自然地完成任务。本文将展示10个基于ChatGPT和GPT-3 AI模型构建的最强大的资源&#xff0c;使您更容易充分利用它们的潜力。因此&#xff0c;如果您想利用AI技术改进…

DiscoTOC - 自动内容表格

示例 桌面 移动终端 特性 toc table of contents&#xff08;内容列表&#xff09; 通过菜单上面的设置按钮&#xff0c;根据当前内容的状况一键生成 toc 列表Toc 将会一直在页面中尽显显示 —— 滚动内容与 topic 的链接是同步的当你滚动过当前页面中中的主题的时候&#…

Python numpy - 数组的创建与访问

目录 一 数组array的创建途径 1 列表list 2 函数array 3 函数arange 4 函数zeros 5 函数eyes 6 随机函数randn/ randint 二 数组array的访问 1 访问形状/元素个数/数据类型 2 访问一维数组的位置/范围 3 访问二维数组的位置/范围 4 用&#xff1a;访问二维数组的…