卫生监督 网站建设方案,建一个素材网站多少钱,去除wordpress版本号,网站建设的服务器注册变量
ansible的模块在运行之后#xff0c;其实都会返回一些”返回值”#xff0c;只是默认情况下#xff0c;这些”返回值”并不会显示而已#xff0c;我们可以把这些返回值写入到某个变量中#xff0c;这样我们就能够通过引用对应的变量从而获取到这些返回值了…注册变量
ansible的模块在运行之后其实都会返回一些”返回值”只是默认情况下这些”返回值”并不会显示而已我们可以把这些返回值写入到某个变量中这样我们就能够通过引用对应的变量从而获取到这些返回值了这种将模块的返回值写入到变量中的方法被称为”注册变量”。
提示用户输入信息并写入变量
在运行某些脚本时有时候脚本会提示用户输入一些信息脚本需要根据用户输入的信息决定下一步的动作这种”交互”有时候是必须的那么在playbook中该怎样实现这种交互呢我们可以这样做提示用户输入信息然后将用户输入的信息存入到指定的变量中当我们需要使用这些”输入的信息”时只要引用对应的变量即可 使用”vars_prompt”关键字创建了两个变量在定义” vars_prompt”中的变量时使用private关键字将变量的private属性设置为no即可 “private: no”表示变量值为非私有的可见的默认情况下 private值为yes表示不可见。我们还能为提示信息设置默认值即如果用户不输入任何信息则将默认值赋予变量
[rootserver4 ~]# vim bl_test4.yml
[rootserver4 ~]# cat bl_test4.yml
---
- hosts: testBremote_user: rootvars_prompt:- name: solutionprompt: Choose the solution you want \nA: solutionA\nB: solutionB\nC: solutionC\nprivate: 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中的变量传入相同名称的变量除了使用”keyvalue”的方式传递变量ansible还支持通过json的格式传入变量。
使用””符号加上变量文件的路径即可在命令行中传入对应的变量文件变量文件中的所有变量都可以在playbook中引用