惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Simon Willison's Weblog
Simon Willison's Weblog
H
Help Net Security
F
Fortinet All Blogs
H
Heimdal Security Blog
S
Schneier on Security
L
LangChain Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
NISL@THU
NISL@THU
P
Palo Alto Networks Blog
J
Java Code Geeks
博客园 - 【当耐特】
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
I
InfoQ
Recorded Future
Recorded Future
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CERT Recently Published Vulnerability Notes
T
Tenable Blog
腾讯CDC
C
Check Point Blog
量子位
M
MIT News - Artificial intelligence
GbyAI
GbyAI
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
小众软件
小众软件
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
V2EX - 技术
V2EX - 技术
T
Threatpost
Engineering at Meta
Engineering at Meta
Attack and Defense Labs
Attack and Defense Labs
T
Tailwind CSS Blog
S
Securelist
The Cloudflare Blog
博客园 - 叶小钗
L
LINUX DO - 最新话题
T
Troy Hunt's Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Nginx反向代理下载传输超过1G大文件时断开问题 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 Centos8配置 chrony NTP服务端及客户端 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Ansible 调整连接数 Splunk数据搜索和报表 Ansible 常用模块 Ansible 任务控制 Ansible Playbook Ansible 基础概念 42Team-Flask框架-HTTP协议快速了解 42Team-Flask框架-路由和视图 42Team-Flask框架-请求与响应 42Team-Flask框架 42Team-Flask框架-Flask介绍 42Team-Flask框架-使用Pycharm来构建一个全新的Flask项目 How to install RHEL8(Centos) on Dell R710/R610 server Centos8安装Docker报错解决方案 Centos8安装Docker后容器内无法访问网络 Docker或Podman容器内无法解析DNS问题多种解决方案 使用NetworkManager来管理树莓派Ubuntu系统网络以及个人的体验优化 Linux 存储设备的挂载及识别 Firewalld 防火墙常用指令教程-常用规则(禁止Ping | 放行端口) Linux 查找系统中的文件 Linux 守护进程和控制服务 Linux SSH远程访问 42Team小组_Linux基础培训课件 如何在AmazeUI中当改变select标签后触发Vue方法的问题 使用Docker部署安装WordPress博客平台 在Raspberry树莓派中搭建NFS存储服务器 在 树莓派 Linux 中搭建匿名 danted socks5 代理服务器 HTTP与HTTPS区别随笔 Bash/Shell学习笔记
Ansible 变量和事实
本文作者: YeeFire · 2020-06-09 · via Yee's Blog

变量和事实

如何定义变量、在Playbook中使用使用变量、加密敏感变量、Fact事实、魔法变量。

变量的定义

变量可以在很多地方定义,他们的作用域也是不同的。

1、playbook中定义:vars
2、playbook中使用变量文件
3、在当前目录的host_vars/group_vars目录下定义变量文件(针对灵活、大型的playbook适用)
4、运行playbook时,在命令行中使用-e选项来使用变量,这种方式的优先级最高,会覆盖以上所有相同名字的变量属性。

变量的使用

在playbook中,使用"{{ var_name }}"来引用变量。

register寄存器

使用寄存器可以将上一次的执行结果存储到新的变量中,用于下一次使用。

使用vault加密变量

当有一些敏感变量,比如密码等信息你应该是不想使用明文存储到变量文件。

ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]

使用ansible-vault可以对变量文件进行加密,在执行playbook的时候通过输入密码或者使用密钥文件来对加密好的变量进行解密。

如何运行引用了加密变量的playbook

ansible-playbook --ask-vault-pass/--valut-password-file=vault-pass playbook.yml

使用Fact事实

Fact事实是在我们运行ansible-playbook时自动收集对应主机的基本信息的变量。

常用的fact事实

ansible_facts.hostname
ansible_facts.fqdn
ansible_facts.default_ipv4.address
ansible_facts.interfaces

禁用收集Fact事实

在Play中添加gather_facts:no

收集目标主机中自定义的Fact

在目标主机的/etc/ansible/facts.d/目录下创建xxxxx.fact文件,在文件中使用json格式自定义目标主机的Fact。

使用魔法变量

一些变量并非事实或通过setup模块配置,但也能由Ansible自动设置。这些魔法变量也可以用于获取与特定受管主机相关的信息。

groups

列出清单中的所有组和主机。

group_names

列出当前受控主机所属的所有组。

inventory_hostname

包含清单中配置的当前受管主机的主机名称。

hostvars

引用其他主机的变量,前提是要引用的主机已经执行过获取Fact操作。

$ ansible all -m debug -a 'var=inventory_hostname'

servera.lab.example.com | SUCCESS => {
"inventory_hostname": "servera.lab.example.com"
}
serverb.lab.example.com | SUCCESS => {
"inventory_hostname": "serverb.lab.example.com"
}