Ansible变量
作者:互联网
Ansible变量
变量的概述
避免重复的代码,方便维护,减少维护的成本
ansible变量定义
1.通过命令行进行变量定义
2.在play文件中进行变量定义
- vars
- vars_files
3.通过inventory主机信息文件中进行变量
- host文件
- host_vars目录
- group_vars目录
优先级
命令行>play>inventory
命令行>vars_files(play)>vars(play)>host_vars(inventory)>group_vars(inventory)>hosts文件(inventory)
定义ansible变量位置
在play中定义变量
vars变量
# 在play中用vars定义变量
- hosts: webs
vars:
user_group: zh
id: '888'
pkg:
- nginx
- php
- mariadb-server
tasks:
- name: 创建{{ user_group }}组
group:
name: "{{ user_group }}"
gid: "{{ id }}"
- name: 创建{{ user_group }}用户
user:
name: "{{ user_group }}"
uid: "{{ id }}"
group: "{{ id }}"
shell: /sbin/nologin
create_home: False
- name: 安装nginx php mysql
yum:
name: "{{ pkg }}"
state: present
vars_files变量
- hosts: webs
vars_files: ./zh_var.yml
tasks:
- name: 创建{{ user_group }}组
group:
name: "{{ user_group }}"
gid: "{{ id }}"
- name: 创建{{ user_group }}用户
user:
name: "{{ user_group }}"
uid: "{{ id }}"
group: "{{ id }}"
shell: /sbin/nologin
create_home: False
- name: 安装nginx php mysql
yum:
name: "{{ pkg }}"
state: present
# zh_var.yum
user_group: zh2
id: '250'
pkg:
- nginx
- php
- mariadb-server
在inventory中定义变量
在inventory文件中定义变量(几乎不用)
[root@m01 ~]# vim /etc/ansible/hosts
[webs:vars]
user_group=zh3
id='789'
pkg='nginx,php,mariadb-server'
host_vars
# 和yaml文件同级别下创建目录
[root@m01 ~]# mkdir host_vars
# 针对主机定义变量
[root@m01 ~]# vim host_vars/web01
user_group: web01
id: '444'
pkg: nginx,php,mysql
[root@m01 ~]# vim host_vars/web02
user_group: web01
id: '444'
pkg: nginx,php,mysql
group_vars
# 和yaml文件同级下创建目录
[root@m01 ~]# mkdir group_vars
# 针对主机定义变量
[root@m01 ~]# vim group_vars/webs
user_group: webs
id: '555'
pkg: nginx,php,mysql
标签:group,变量,vars,Ansible,user,id,name 来源: https://www.cnblogs.com/ghjhkj/p/16424807.html