ansible - 如何在 Ansible 剧本中将空对象转换为“空”字符串
问题描述
我开发了一本 Ansible 剧本,其中我们在 metadata.json 文件中定义了变量。使用用户提供的值,我正在调用脚本,如下所示。但是这里用户和密码字段是可选的。
- name: Run config script
shell: ./config.sh -CONFIG {{ config }} -VER {{ ver }} -URL {{ url }} -USER {{ user }} -PASSWORD {{ password }}
args:
chdir: /tmp
从 UI 我将值发送为空,因此作为空对象和脚本失败。脚本在运行时调用如下。
./config.sh -CONFIG 1 -VER 1234 -URL tcp://localhost:1234 -USER -PASSWORD
预期执行如下。
./config.sh -CONFIG 1 -VER 1234 -URL tcp://localhost:1234 -USER null -PASSWORD null
我试图在剧本中将基于空对象的变量设置为“空”字符串,如下所示,但没有运气:
- name: Print PASSWORD variable value
shell: echo "{{ password }}"
register: syspass
- name: printing variable
debug:
var: syspass
- name: Validate PASSWORD variable value
set_fact:
password: "null"
when: syspass.stdout == ""
- name: Check PASSWORD variable value
debug:
msg: "PASSWORD value is {{ password }}"
您能否帮助我如何将空对象处理为空字符串。
解决方案
推荐阅读
- r - 编织到 MS Word 后,写带有空格的标题会丢失?
- python - python可以检测快捷方式文件(.lnk)是否不再有效吗?
- python-3.x - 具有嵌套循环和用户输入的乘法表,在偶数后包括 # 符号
- ruby-on-rails - Rails 5:将外部 API 调用保存到数据库
- xamarin.forms - Xamarin.UITest iOS ENABLE_TEST_CLOUD 指令令人困惑
- c# - 在 Xamarin/Visual Studio 中构建的本机 iOS 应用程序打开然后立即关闭
- java - 用于多个配置文件的 Micronaut PropertySource
- flutter - 如何在点击检测中跳过 Flutter Widget?
- c++ - Mac 和 Linux 中 C++ 的 const auto& 中的不同行为
- python - 远程登录 APC PDU CLI 自动化