我正在尝试使用 Ansible 角色调用 installCognosBI 安装 Cognos Analytics 软件。在我的角色 /tasks 下,我有一个调用文件 installCognos.yml 的 main.yml。此文件 installCognos.yml 有 3 个任务,它们使用命令模块使用 /opt/IBM/cognos 文件夹。为了保持幂等性,我在整个路径中使用了 creates 。 /vars 下定义的所有脚本路径都具有在 shell 脚本本身中定义的相同安装路径。
下面是包含在 role/tasks/installCognos.yml 下的示例代码,它由同一任务文件夹中的 main.yml 调用。
- name: Install CognosBI
command:
cmd: "bash -e {{ COGNOSBI_SCRIPT }}"
creates: "/opt/IBM/cognos"
environment:
PATH: "{{ ansible_env.PATH }}:/sbin:/usr/sbin"
- name: Install CognosBI FP01
command:
cmd: "bash -e {{ COGNOSBIFP01_SCRIPT }}"
environment:
PATH: "{{ ansible_env.PATH }}:/sbin:/usr/sbin"
- name: Install CognosBI InterimFP09
command:
cmd: "bash -e {{ COGNOSBIFP01_SCRIPT }}"
environment:
PATH: "{{ ansible_env.PATH }}:/sbin:/usr/sbin"
我只在第一个任务下维护创建,以便执行接下来的 2 个任务并保持幂等性。我尝试使用这种方法,但只执行了第一个任务。接下来的 2 个任务根本没有被执行。我不确定这种方法是否正确。 有人可以建议我吗!