ANSIBLE---变量

注册变量

ansible的模块在运行之后,其实都会返回一些”返回值”,只是默认情况下,这些”返回值”并不会显示而已,我们可以把这些返回值写入到某个变量中,这样我们就能够通过引用对应的变量从而获取到这些返回值了,这种将模块的返回值写入到变量中的方法被称为”注册变量”。

提示用户输入信息并写入变量

在运行某些脚本时,有时候脚本会提示用户输入一些信息,脚本需要根据用户输入的信息决定下一步的动作,这种”交互”有时候是必须的,那么,在playbook中该怎样实现这种交互呢?我们可以这样做,提示用户输入信息,然后将用户输入的信息存入到指定的变量中,当我们需要使用这些”输入的信息”时,只要引用对应的变量即可
使用”vars_prompt”关键字创建了两个变量,在定义” vars_prompt”中的变量时,使用private关键字,将变量的private属性设置为no即可, “private: no”表示变量值为非私有的,可见的,默认情况下 private值为yes,表示不可见。我们还能为提示信息设置默认值,即如果用户不输入任何信息,则将默认值赋予变量

[root@server4 ~]# vim bl_test4.yml
[root@server4 ~]# cat bl_test4.yml 
---
- hosts: testB
  remote_user: root
  vars_prompt:
    - name: "solution"
      prompt: "Choose the solution you want \n
      A: solutionA\n
      B: solutionB\n
      C: solutionC\n"
      private: no
      default: A
  tasks:
   - name: output vars
     debug:
      msg: The final solution is {{solution}}.

我们使用了default关键字设置了”solution”变量的默认值,如果用户没有输入任何值(直接回车),则将”solution”变量的值设置为A,如果用户输入了值,则”solution”变量值为用户输入的值

encrypt关键字表示对用户输入的信息进行哈希,encrypt: “sha512_crypt”表示使用sha512算法对用户输入的信息进行哈希,当使用”encrypt”关键字对字符串进行哈希时,ansible需要依赖passlib库完成哈希操作,如果未安装passlib库(一个用于哈希明文密码的python库),执行playbook时会报错。

除了能够使用”encrypt”关键字对字符串进行哈希加密,还能够使用”confirm”关键字实现类似确认密码的功能,我们在为用户设置密码时,通常需要输入两次完全相同的密码,才能够设置成功,通过”confirm”关键字就能实现类似的效果

通过命令行传入变量

在调用playbook时使用 –extra-vars选项可以传递对应的变量与变量值, –extra-vars是长选项,对应的短选项是-e,我们也可以一次性传入多个变量,变量之间用空格隔开。在playbook中定义好变量,然后在执行playbook时,再次传入相同名称的变量,最终还是以传入的变量值为准。命令行传入的变量的优先级要高于playbook中的变量,传入相同名称的变量,除了使用”key=value”的方式传递变量,ansible还支持通过json的格式传入变量。

使用”@”符号加上变量文件的路径,即可在命令行中传入对应的变量文件,变量文件中的所有变量都可以在playbook中引用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值