注册变量

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: testBremote_user: rootvars_prompt:- name: "solution"prompt: "Choose the solution you want \nA: solutionA\nB: solutionB\nC: solutionC\n"private: nodefault: Atasks:- name: output varsdebug: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中引用

ANSIBLE---变量相关推荐

  1. 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法

    [Ansible自动化运维工具]Ansible变量之lookup生成变量方法 一.lookup插件介绍 1.lookup简介 2.lookup使用场景 3.lookup获取的数据源 4.lookup的 ...

  2. 【Ansible自动化运维工具】Ansible变量之Facts变量

    [Ansible自动化运维工具]Ansible变量之Facts变量 一.Ansible facts介绍 1.facts组件简介 2.facts组件的使用场景 二.Ansible facts的基本使用 ...

  3. 面试官问:你能介绍一下Ansible变量吗?之后你噼里啪啦讲得太详细让面试官惊呆了

  4. ansible的变量和机密

    1. ansible的变量 ​ 在ansible中使用变量,能让我们的工作变得更加灵活,在ansible中,变量的使用方式有很多种我们下面一一介绍. 1.1 变量的命名 ​ 变量名应该由字母.数字.下 ...

  5. ansible 高级自动化变量及变量过滤器

    文章目录 ansible 变量 ansible变量过滤器 1. 变量类型 2. 通用变量过滤器 3. 基础变量过滤器 4. 特殊处理过滤器 5. 复杂数据格式处理 6. 万能处理插件 Lookup / ...

  6. Ansible 使用变量

    使用变量 虽然自动化的存在是为了更容易使事情可重复,但并非所有系统都完全相同.有些可能需要与其他配置略有不同的配置.在某些情况下,观察到的一个系统的行为或状态可能会影响您配置其他系统的方式.例如,您可 ...

  7. Ansible进阶变量

    Ansible变量 1.Ansible变量最常见的是以下四种: 1.1.ansible变量可以用命令行(不推荐) 1.2.在剧本中vars定义一个变量 1.3.在配置文件中做变量(推荐多个剧本都可使用 ...

  8. Ansible的管理变量、机密和事实

    文章目录 管理变量.机密和事实 1.管理变量 1.1Ansible变量简介 1.1.1 命令变量 1.12 定义变量 1.2 playbook中的变量 1.2.1在Playbook中定义变量 1.2. ...

  9. Ansible 入门指南 - ansible-playbook 命令

    上篇文章Ansible 入门指南 - 安装及 Ad-Hoc 命令使用介绍的额是 Ad-Hoc 命令方式,本文将介绍 Playbook 方式. Playbook 译为「剧本」,觉得还挺恰当的. play ...

  10. ansible基础-playbooks

    1. playbooks介绍 如果说ansible的modules是工具,inventory配置文件是原材料,那么playbook就是一封说明书,这里会记录任务是如何如何执行的,当然如果你愿意,这里也 ...

最新文章

  1. python3 多线程_图解|为什么 Python 多线程无法利用多核
  2. Hibernate 获取某个表全部记录时 奇怪现象 (重复出现某个记录)
  3. 10taskkill无法终止进程_?进程的状态转换
  4. cont::value_type相关的测试程序
  5. 生成树生成森林c语言中文网,生成树协议(STP)基本知识及实验(使用eNSP)
  6. yii之behaviors
  7. SK海力士宣布业界首次提供24Gb DDR5样品
  8. python 嵌套异常
  9. 汇编语言(王爽)第四版检测点2.2答案
  10. 关于插件toastr的学习
  11. CSS Sprite的应用【转】
  12. matlab虚拟现实之V-Realm Builder2中viewpoint节点的使用
  13. 基于jQuery的视频和音频播放器jPlayer
  14. Android 上千实例源码分析以及开源分析
  15. ie11安装程序无法继续 因为你的计算机,ie11无法安装解决方法详解
  16. 四年级计算机教学目的,四年级计算机教学计划
  17. 用户之间imp的问题
  18. 怎样在html中显示IP地址,如何通过ip查经纬度
  19. 将vue页面文本导出到word,并设置页眉页脚,分页打印相关讲解--高级版
  20. 点菜系统中的命令模式

热门文章

  1. 记录qt窗口在拖动过程中出现的问题
  2. 联想超融合平台oracle,联想AIO超融合云一体机解决方案.pdf
  3. linux 两块硬盘 分区,linux 两块硬盘分区,这个是什么/dev/mapper/VolGroup00-LogVol00
  4. java 模拟qq空间登陆_java最新完美实现模拟登录QQ登录QQ空间获取说说
  5. mysql数据库重做日志文件_mysql数据库重做日志
  6. Oracle 11g ora 15018,oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018
  7. antd新增一行页码不正确_antd-Table@4.x对rowKey属性的重构
  8. php post 微信沙箱,微信支付平台错误:获取沙箱密钥失败,确保交易密钥是
  9. Linux钩子拦截删除文件,在Linux中保存钩子文件
  10. 在前端网页设计中 align 和 valign 两种对齐方式的不同取值区分(持续补充)