应该如何为角色依赖关系定义预处理。
我目前有一个apache角色有一个用户变量,所以在我自己的角色<角色> /Meta/main.yml我做的事情像:
我目前有一个apache角色有一个用户变量,所以在我自己的角色<角色> /Meta/main.yml我做的事情像:
--- dependencies: - { role: apache,user: proxy }
此时的问题是我还没有我指定的用户,当角色尝试在不存在的用户下启动apache服务器时,我收到一个错误。
我尝试在< role> /tasks/main.yml中创建一个任务,如:
--- - user: name=proxy
但是,只有在依赖关系(这是预期的)运行apache任务之后才能创建用户。那么,有没有办法创建一个在依赖关系中运行角色之前创建用户的任务?
简短的答案:我不认为该语言允许为角色指定pre_tasks。
您可以通过将用户的创建移动到单独的剧本中,并将包含该剧本而不是角色来作弊/解决。这样的事情
my_fake_role_playbooks / user_and_apache.yml:
- hosts: "{{p_hosts}}" pre_tasks: user: name=proxy roles: [ apache ]
actual_playbook.yml:
- include: my_fake_role_playbooks/user_and_apache.yml p_hosts=[host1,host2]
*代码未经测试。
HTH