You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible剧本无法找到自定义角色问题求助

解决Ansible找不到角色的问题

核心原因

你的角色放在ansible/rules/目录下,但Ansible默认的角色搜索路径里没有这个目录,所以系统找不到basic_install和full_install角色。

三种可行解决方案

方案1:修改ansible.cfg配置角色搜索路径

在ansible/ansible.cfg文件中添加或修改roles_path配置项,把你的rules目录加入搜索路径:

[defaults]
roles_path = ./rules:./playbooks/roles:~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles

这样Ansible会自动从ansible/rules/目录下查找角色,你的原剧本不需要修改,直接保持:

---
- name: Basic install of packages on Debian
  hosts: all
  become: true
  roles:
    - basic_install

- name: Full install of packages on Debian
  hosts: all
  become: true
  roles:
    - full_install

方案2:在剧本中使用相对路径引用角色

如果不想修改配置文件,可以在剧本里直接指定角色的相对路径(从playbooks目录出发,向上一级再进入rules):

---
- name: Basic install of packages on Debian
  hosts: all
  become: true
  roles:
    - ../rules/basic_install

- name: Full install of packages on Debian
  hosts: all
  become: true
  roles:
    - ../rules/full_install

方案3:调整目录结构符合默认规则

把ansible/rules/目录改名为ansible/roles/,这样完全符合Ansible默认的角色存放路径,不需要修改配置和剧本,直接使用原剧本即可。

验证方法

修改完成后,在ansible/目录下运行剧本:

ansible-playbook playbooks/byrule.yml -i inventory

内容的提问来源于stack exchange,提问作者albdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:52:41