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

Ansible运行剧本提示Juniper.junos角色未找到,安装后仍报错如何解决

问题根因
  • 安装路径与运行用户不匹配:执行安装命令时添加了sudo,会把角色、集合安装到root用户的Ansible资源目录下,而你是用普通用户pagdas运行playbook的,Ansible只会在报错提示的/home/pagdas/相关路径下搜索资源,无法读取root用户目录下的安装内容。
  • 新旧资源调用逻辑不兼容:你安装的juniper.device是Juniper官方推出的新版Ansible集合,不需要通过roles字段调用旧的Juniper.junos角色,原有playbook的调用方式只适配已经停止维护的旧版角色。
解决方案

推荐使用官方维护的新版juniper.device集合,操作步骤如下:

  1. 卸载之前用root身份安装的冲突资源:
sudo ansible-galaxy remove Juniper.junos
sudo ansible-galaxy collection remove juniper.device
  1. 切换为普通用户执行安装命令,不要加sudo:
ansible-galaxy collection install juniper.device
  1. 修改/home/pagdas/aja2/uptime.yaml内容,删除roles段的旧角色调用,调整模块名适配新集合,修改后完整内容如下:
---
- name: Get device uptime
  hosts:
    - all
  connection: local
  gather_facts: no

  vars_prompt:
    - name: username
      prompt: Junos Username
      private: no

    - name: password
      prompt: Junos Password
      private: yes

  tasks:
    - name: get uptime using galaxy module
      juniper.device.command:
        commands:
          - show system uptime
        provider:
          host: "{{ ansible_host }}"
          port: 22
          user: "{{ username }}"
          passwd: "{{ password }}"

可选方案(无需调整playbook,继续使用旧版角色):
如果你坚持使用原有写法,直接执行普通用户的旧角色安装命令即可:

ansible-galaxy install Juniper.junos

安装完成后直接运行原有playbook即可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:57:03