可以在将角色本身作为目标的 ansible 角色上解析模板文件



我试图用Ansible解析模板文件,但我不希望这个文件在任何远程主机中创建,而是我只想在我的role_path中创建。

我的角色中有以下内容:

---
- name: Create configuration.yml on ansible role
ansible.builtin.template:
src: configuration.j2
dest: "{{role_path | default('')}}{{stack_name | mandatory}}/configuration.yml"
vars:
stack_env: "dev"
app_network: "my_network"
- name: Run tasks/main.yml from compose role
ansible.builtin.include_role:
name: compose
vars:
stack_name: "logging"
stack_path: "{{ ansible_base_path }}/"

当我运行时,我的管道显示该目录不存在,这是正确的,因为该目录存在于我的主机外部,而不是主机内部。我基本上想把这个模板文件解析成我的角色,以供另一个角色依赖使用。

有人知道这是可能的吗?

我自己找到了解决办法。可以使用local_action.

这是我最后的剧本。

- name: Create configuration.yml parsing variables
local_action:
module: template
src: configuration.j2
dest: "{{ role_path }}/logging/configuration.yml"
- name: Run tasks/main.yml from compose role
ansible.builtin.include_role:
name: compose
vars:
stack_name: "logging"
stack_path: "{{ ansible_base_path }}/"

最新更新