最好不要在Ansible的角色依赖中写入Galaxy角色
我认为应该对每个任务或角色进行单独设置「become」,我打算在另一篇文章中写这个问题。在元依赖中有一些Galaxy角色的项目,这些项目在角色中需要root权限的任务通常没有设置为become: true,这导致了一些问题,所以我们应该停止这种做法。
譬如,使用geerlingguy.redis套件模块的任务里没有become: true,所以需要采用以下的用法。
# とある playbook で
- hosts: redis
become: true
roles:
- role: geerlingguy.redis
# とある playbook で
- hosts: redis
roles:
- role: geerlingguy.redis
become: true
# とある tasks で
- name: "Install Redis"
become: true
import_role:
- name: geerlingguy.redis
然而,在meta文件中无法以以下方式编写。
# とある meta で
- dependencies
- role: geerlingguy.redis
become: true # ← 無視される