一、变量(运行命令ansible-playbook -i hosts 文件名)
| 变更了分类 | 说明 | 应用场景 |
|---|---|---|
| 剧本中使用 vars | 最简单直观 | 剧本就就1个play,变量无法在多个play之间共享 |
| 变量文件 vars_files | 使用变量文件存放变量,通过vars_files调用 | 多个paly,多个剧本公用变量文件 |
| 分组变量 group_vars | 变量存放在独立的文件,根据使用的play分组 进行匹配和使用对应的变量 | 推荐使用 |
| 命令行 | 不推荐使用,除非临时修改变量-e选项 | |
| 主机清单中 | 主机规划的时候,设置主机名 | 初始化的时候设置主机名 |
| facts变量 | 运行剧本的时候收集主机基本信息创建facts变量 | 直接使用主机基本信息 |
| 注册变量register变量 | 类似于shell中的“反引号功能 | 代替facts变量,更加灵活 |
1.1vars_files

1.2group_vars-主要使用


1.3主机清单清理


1.4 facts变量
- 剧本运行的时候,默认任务(Gathering Facts),收集主机的信息并创建变量
- 优势:直接使用这些变量获取主机基本信息,不需要再去创建变量执行命令。
- 缺点:减速剧本运行速度
- 应用场景:
- 需要使用facts变量(ans内置变量),开启facts功能即可
- 不需要使用则关闭facts功能,提高剧本执行速度


root@m01 /server/ans/playbook]# cat 07.facts.yml
hosts: web tasks: name: debug
debug:
msg: |
cpu架:{{ansible_architecture}}
ip地址:{{ ansible_default_ipv4.address }}
发行版本:{{ansible_distribution}}
具体的版本{{ansible_distribution_major_version}}
主机名{{ansible_hostname}}
主机名 带有域名形式{{ansible_fqdn}}
内存可用{{ansible_memfree_mb}}
总大小{{ansible_memtotal_mb}}
cpu核心数{{ansible_processor_cores}}
name: file
lineinfile:
path: /tmp/facts.txt
create: true
line: |
cpu架:{{ansible_architecture}}
ip地址:{{ ansible_default_ipv4.address }}
发行版本:{{ansible_distribution}}
具体的版本{{ansible_distribution_major_version}}
主机名{{ansible_hostname}}
主机名 带有域名形式{{ansible_fqdn}}
内存可用{{ansible_memfree_mb}}
总大小{{ansible_memtotal_mb}}
cpu核心数{{ansible_processor_cores}}
##注意:要对照上面格式填写
hosts: web tasks: name: debug
debug:
msg: |
cpu架:{{ansible_architecture}}
ip地址:{{ ansible_default_ipv4.address }}
发行版本:{{ansible_distribution}}
具体的版本{{ansible_distribution_major_version}}
主机名{{ansible_hostname}}
主机名 带有域名形式{{ansible_fqdn}}
内存可用{{ansible_memfree_mb}}
总大小{{ansible_memtotal_mb}}
cpu核心数{{ansible_processor_cores}}
name: file
lineinfile:
path: /tmp/facts.txt
create: true
line: |
cpu架:{{ansible_architecture}}
ip地址:{{ ansible_default_ipv4.address }}
发行版本:{{ansible_distribution}}
具体的版本{{ansible_distribution_major_version}}
主机名{{ansible_hostname}}
主机名 带有域名形式{{ansible_fqdn}}
内存可用{{ansible_memfree_mb}}
总大小{{ansible_memtotal_mb}}
cpu核心数{{ansible_processor_cores}}
##注意:要对照上面格式填写
- 关闭facts变量,使用的临时开启
修改/etc/ansible/ansible.cfg
defaults部分增加
gathering = explicit
临时启动,在剧本中增加gathe_facts: true
defaults部分增加
gathering = explicit
临时启动,在剧本中增加gathe_facts: true
1.5register变量
- reg变量使用

- 输出结果

二、循环
2.1单个变量的循环
- 批量创建目录
- /backup/ /data/ /nfsdata/ /ans/ /lidao

2.2多个变量
| 添加用户 | uid | gid |
|---|---|---|
| ans-lidao | 5090 | 5090 |
| ans-oldboy | 5080 | 5080 |
| ans-lidao996 | 5070 | 5070 |

三、重新认识变量
3.1字典
- 存放相关内容
- 存放服务相关的变量

3.2列表
- 清单

- 创建列表变量存放目录,用户,服务

3.3字典列表组合
