Ansible Molecule 测试无法通过始终创建/删除锁定文件的 bash 命令

问题描述 投票:0回答:1

我有 Ansible 角色来安装/激活 Trendmicro。在任务中,有一个操作通过调用 bash 命令来完成该激活 --

- name: Execute /opt/imal/bin/dsupdstat.sh
  ansible.builtin.command: /opt/imal/bin/dsupdstat.sh
  changed_when: true
  failed_when: false

但是由于这个 dsupdstat.sh 总是需要在开始时创建一个锁定文件并在最后删除它。因此,Ansible Molecule 测试不断失败,并出现“幂等”错误……但是锁定文件的创建/删除是不可避免的。所以看起来即使我用

changed_when: true
标记该动作也没有希望通过这个分子测试...

现在我必须使用它来忽略在分子测试中运行该操作--

- name: Execute /opt/imal/bin/dsupdstat.sh
  ansible.builtin.command: /opt/imal/bin/dsupdstat.sh
  when: not lookup('env', 'MOLECULE_SCENARIO') is defined
  changed_when: true
  failed_when: false

但我想——有没有更好的方法让分子理解这个动作必须做系统改变并让它通过?

ansible molecule
1个回答
0
投票

尝试以下操作,但首先确保 .sh 脚本可执行。

- name: Execute /opt/imal/bin/dsupdstat.sh
  ansible.builtin.command: 
    cmd: /opt/imal/bin/dsupdstat.sh
  when: lookup('env', 'MOLECULE_SCENARIO') is not defined
  changed_when: true
  failed_when: false
© www.soinside.com 2019 - 2024. All rights reserved.