Inventory清单文件中[all:vars]
部分定义的变量为全局变量,可以在同一级目录下的roles中的所有playbook中直接使用。使用的格式为{
{全局变量名}}
。
在Inventory中定义全局变量:
[all:vars]
# variables related to versions
version_major_tencentKona=8.0.8
version_minor_tencentKona=312
arch_tencentKona=x86_64
#arch_tencentKona=aarch64
在playbook中使用自定义的全局变量:
- name: unarchive TencentKona JDK
unarchive:
remote_src: no
src: "/root/TencentKona{
{version_major_tencentKona}}.b1_jdk_linux-{
{arch_tencentKona}}_8u{
{version_minor_tencentKona}}.tar.gz"
dest: /usr/local
Ansible内置了许多系统变量,可以直接在ad-hoc命令或者playbook中使用。这些内置变量包括但不限于:
ansible_architecture
:操作系统架构,arm或者x86;ansible_distribution
:操作系统发行版本;ansible_distribution_major_version
:操作系统大版本号;ansible_processor_vcpus
:CPU核数;ansible_memtotal_mb
:内存总量;ansible_hostname
:主机名;ansible_devices.vdb.size
:vdb盘的容量(如果磁盘vdb存在);ansible_devices.sdb.size
:sdb盘的容量(如果磁盘sdb存在);ansible_devices.nvme0n1.size
:nvme0n1盘的容量(如果磁盘nvme0n1存在)。在playbook中使用内置变量:
- name: check arm OR x86
debug:
msg: "{
{ansible_architecture}}"
- name: check OS version
debug:
msg: "{
{ansible_distribution}}: {
{ansible_distribution_major_version}}"
- name: