ansible 环境变量优先级
ansible 变量优先级
命令行指定变量 > yaml文件中的变量> 主机清单中的变量
ansible变量具体使用方法
- ansible命令行中指定变量
ansible-playbook -e 'pkgname=httpd' file.yaml
- yml文件中指定变量
---
- hosts: k8s
remote_user: root
vars:
- pkgname1: httpd
- pkgname2: vsftpd
tasks:
- name: install {{ pkgname1 }}
yum: name={{ pkgname1 }}
- name: install {{ pkgname2 }}
yum: name={{ pkgname2 }}
- 在ansible清单文件中定义变量
- 针对单个主机定义变量
[k8s]
172.16.6.190 host_name=master
172.16.6.191 host_name=node1
172.16.6.192 host_name=node2
172.16.6.193 host_name=node3
172.16.6.195 host_name=harbor
- 针对组定义变量
[k8s]
172.16.6.190 host_name=master
172.16.6.191 host_name=node1
172.16.6.192 host_name=node2
172.16.6.193 host_name=node3
172.16.6.195 host_name=harbor
[k8s:vars]
nodename=www
domainname=123.com
tasks:
- name
hostname: name={{nodename}}{{host_name}}.{{domainname}}
- 定义单独存放变量的文件
~] cat var1.yml
var1:httpd
var2:vsftpd
---
- hosts: all
remote_user: root
vars_file:
- var1.yml
tasks:
- name: install pkg
yum: name={{ var1 }}
- name: create file
file: name=/tmp/{{ var2 }} state=touch
网友评论