我创建了两个非常简单的 Ansible 角色,称为base
和web
。web
是依赖的base
,这个依赖定义在web/meta/main.yml
.
base
在 中定义了以下任务base/tasks/main.yml
:
- name: install required packages
apt:
name: "{{ install_packages }}"
update_cache: "{{ apt_update_cache }}"
cache_valid_time: "{{ apt_cache_valid_time }}"
中的变量base
定义在base/defaults/main.yml
:
apt_update_cache: yes
apt_cache_valid_time: 3600
install_packages:
- ufw
- sshguard
中的变量web
定义在web/defaults/main.yml
:
install_packages:
- nginx
我想做的是:
- 使用变量from和from调用
install required packages
from 。base
install_packages
base
apt_update_cache
apt_cache_valid_time
base
- 调用
install required packages
from ,web
使用install_packages
变量 fromweb
和from (因为我没有覆盖这两个中的任何一个)。apt_update_cache
apt_cache_valid_time
base
web
这可能吗,如果可以,我将如何去做?或者,是否有一种“更好”的方法来实现相同的结果,而无需在每个依赖角色中复制任务(我可能会创建其他几个依赖于 的base
任务,它们也都有自己的角色特定任务)?