1.host facts---直接调用ansible收集的信息
---
- hosts: test1
tasks:
- name: 使用facts信息
copy:
#ansible 中setup中包含多个收集的信息,ansible_hostname就是借用收集的信息。
content: "{{ansible_hostname}}:{{ansible_bios_version}}"
dest: /tmp/facts.txt
2.register---将某个变量的执行结果保存到变量中
#register 将某个命令的执行结果保存到变量中
---
- hosts: test1
tasks:
- name: 保存shell执行返回的数据
shell: ifconfig
register: myvar #随机定义的变量
- name: 打印结果通过debug展示
debug:
msg: "{{myvar}"
3.vars---直接定义变量
---
- hosts: test1
vars:
iname: test
ipass: '123456'
tasks:
- name: Create a user
user:
name: "{{iname}}"
password: "{{ipass | password_hash('sha512')}}"
4.prompt提示变量----根据提示输入变量的值
---
- hosts: test1
vars_prompt:
- name: iname
prompt: "请输入用户名"
private: no #回显用户名
- name: ipasswd
prompt: "请输入密码"
private: yes #不显示密码
tasks:
- name: Create a user
user:
name: "{{iname}}"
password: "{{ipasswd | password_hash('sha512')}}"
5.vars_files---单独定义变量文件
1.#先定义一个变量文件variables.yml
---
iname: ice #变量名称是自定义的
ipass: '123456'
2.#引用定义文件
---
- host: test1
var_files: variables.yml
tasks:
- name: create user
user:
name: "{{iname}}"
password: "{{ipass | password_hash('sha512')}}"
6.-e------定义变量
在yml文件里编辑了定量后,执行剧本的时候加-e参数定义一下yml文件中的变量即可
本文介绍了Ansible中变量的六种使用方式:host facts获取主机信息,register存储任务执行结果,vars直接定义变量,prompt交互式输入变量,vars_files从外部文件导入变量,以及通过-e命令行参数定义变量。掌握这些方法能帮助你更好地管理和使用Ansible剧本中的变量。
427

被折叠的 条评论
为什么被折叠?



