Ansible 和 Jenkins

Ansible 和 Jenkins

这是我的问题

我在詹金斯上运行了一个带有额外变量的剧本,我想在我的剧本中测试变量是否定义

ansible [核心 2.12.1],jenkins 插件 1.1

这是来自詹金斯的命令:

ansible-playbook create_user.yml -i hosts -e Site=UK -e BU=Test -e date_exp=

我的测试代码如下

- name: Set expiration date 
  when : not date_exp
  set_fact:
   date_exp: "01/01/2024"

- name: Expiration date
  debug:
   msg:
    - "{{ date_exp}}"

尝试了很多东西:不是,是未定义的,==“”都没有用

答案1

测试字符串的长度

  when: date_exp|length == 0

完整测试剧本的示例

shell> cat pb.yml
- hosts: localhost
  gather_facts: false
  tasks:
    - debug:
        var: date_exp
    - debug:
        var: date_exp|type_debug
    - debug:
        msg: var is empty
      when: date_exp|length == 0
shell> ansible-playbook pb.yml -e date_exp=

PLAY [localhost] ******************************************************************************

TASK [debug] **********************************************************************************
ok: [localhost] => 
  date_exp: ''

TASK [debug] **********************************************************************************
ok: [localhost] => 
  date_exp|type_debug: str

TASK [debug] **********************************************************************************
ok: [localhost] => 
  msg: var is empty

PLAY RECAP ************************************************************************************
localhost: ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
shell> ansible-playbook pb.yml -e date_exp=xxx

PLAY [localhost] ******************************************************************************

TASK [debug] **********************************************************************************
ok: [localhost] => 
  date_exp: xxx

TASK [debug] **********************************************************************************
ok: [localhost] => 
  date_exp|type_debug: str

TASK [debug] **********************************************************************************
skipping: [localhost]

PLAY RECAP ************************************************************************************
localhost: ok=2    changed=0    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0

相关内容