首页 > 解决方案 > 如何在 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 }}"

您能否帮助我如何将空对象处理为空字符串。

标签: ansible

解决方案


推荐阅读