注意:
在使用 Ansible 自定义变量之前,要先安装 Ansible、添加被 Ansible 管理的主机,并且需要 root 权限
正文:
内容一:Ansible 全局变量的使用
# ansible dev -m shell -a whoami -e ansible_user=root -e ansible_password=redhat
(补充:这里以 root 是管理被管理服务器所使用的用户,redhat 是这个用户的密码为例)
内容二:Ansible 服务器列表变量的设置
2.1 给某台服务器设置变量的案例
# vim host
创建以下内容:
[web]
192.168.1.1 ansible_password=root
(
补充:这里以
1) 在 host 文件里
2) 设置 192.168.1.1 的 Ansible 密码是 root(当它被 Ansible 操作时需要输入此密码)
为例
)
2.2 给某 1 个组设置变量的案例
# vim host
创建以下内容:
[web]
192.168.1.1
192.168.1.2
192.168.1.3
[web:vars]
ansible_user=root
ansible_password=root
......
(
补充:这里以
1) 在 host 文件里
2) 设置 web 组的 Ansible 用户是 root,密码是 root(当它们被 Ansible 操作时需要输入此密码)
为例
)
2.3 给所有服务器设置变量的案例
# vim host
创建以下内容:
[web]
192.168.1.1
192.168.1.2
192.168.1.3
[db]
192.168.1.4
192.168.1.5
192.168.1.6
[all:vars]
ansible_user=root
ansible_password=root
......
(
补充:这里以
1) 在 host 文件里
2) 设置所有服务器的 Ansible 用户是 root,密码是 root(当它们被 Ansible 操作时需要输入此密码)
为例
)
内容三:Ansible Playbook 变量的设置
3.1 Ansible Playbook 直接设置变量的案例
# vim test.yaml
创建以下内容:
---
- name: test
hosts: all
vars:
user: tom
home: /home/joe
tasks:
- name: Add a user
user:
name: "{{ user }}"
comment: name is {{ user }}
......
(
补充:这里以
1) 在 test.yml 中
2) 创建一个名为 test
3) 在所有服务器上执行
4) 设置 user 变量为 tom
5) home 变量为 /home/joe
6) 创建名为 user 注释内容为 user 的用户
的 playbook 为例
)
3.2 Ansible Playbook 直接设置数组变量的案例
# vim test.yaml
创建以下内容:
---
- name: test
hosts: all
vars:
- user1:
a_name: zhang
b_name: san
- user2:
a_name: li
b_name: si
tasks:
- name: Add a user
user:
name: "{{ users.user1.a_name }}{{ users.user1.b_name }}"
......
(
补充:这里以
1) 在 test.yml 中
2) 创建 1 个名为 test
3) 在所有服务器上执行
4) 导入了变量文件 vars.yaml
5) 使用其中的变量 users.user1.a_name 和 users.user1.b_name
的 playbook 为例
)
3.3 Ansible Playbook 设置变量文件的案例
3.3.1 创建变量文件
# vim vars.yaml
创建以下内容:
user: tom
home: /home/joe
(补充:这里以在 vars.ymal 中添加变量 user 值为 tom,变量 home 值为 /home/joe 为例)
3.3.2 导入变量文件
# vim test.yaml
创建以下内容:
---
- name: test
hosts: all
vars_files:
- vars.yaml
tasks:
- name: Add a user
user:
name: "{{ user }}"
comment: name is {{ user }}
......
(
补充:这里以
1) 在 test.yml 中
2) 创建 1 个名为 test
3) 在所有服务器上执行
4) 导入了变量文件 vars.yaml
5) 使用其中的变量 user 和 home
的 playbook 为例
)
3.4 Ansible Playbook 设置数组变量文件的案例
3.4.1 创建变量文件
# vim vars.yaml
创建以下内容:
users:
user1:
a_name: san
b_name: zhang
c_name: /home/zhangsan
user2:
a_name: si
b_name: li
c_name: /home/lisi
(补充:这里以在 vars.ymal 中添加 user1 和 user2 两组数组变量为例)
3.4.2 导入变量文件
# vim test.yaml
创建以下内容:
---
- name:
hosts:
vars_files:
- vars.yaml
tasks:
- name: Add a user
user:
name: "{{ users.user1.a_name }}{{ users.user1.b_name }}"
......
(
补充:这里以
1) 在 test.yml 中
2) 创建 1 个名为 test
3) 在所有服务器上执行
4) 导入了变量文件 vars.yaml
5) 使用其中的变量 users.user1.a_name 和 users.user1.b_name
的 playbook 为例
)