ansible中的变量

本文介绍了Ansible中变量的六种使用方式:host facts获取主机信息,register存储任务执行结果,vars直接定义变量,prompt交互式输入变量,vars_files从外部文件导入变量,以及通过-e命令行参数定义变量。掌握这些方法能帮助你更好地管理和使用Ansible剧本中的变量。

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文件中的变量即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值