跳转到主要内容

NTC Ansible模块的依赖项

项目描述

多厂商Ansible模块用于网络自动化

要开始使用这些模块,您需要执行 两个 步骤。

  1. 确保此存储库在您的Ansible模块搜索路径中
  2. 安装依赖项

确保模块在您的搜索路径中

首先,了解您的搜索路径是什么

ntc@ntc:~/projects$ ansible --version
ansible 2.1.1.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ???

如果您已经配置了搜索路径,在您的搜索路径中时,请克隆存储库(以下有选项)。

如果您显示“默认”或无搜索路径,请打开上面显示的配置文件,此处为 /etc/ansible/ansible.cfg。在该文件中,您将看到以下几行

[defaults]

# some basic default values...

inventory      = /etc/ansible/hosts
library        = /home/ntc/projects/

library 添加路径——这将成为您的搜索路径。在更改后,使用 ansible --version 验证它。

在克隆时,不要忘记使用 --recursive

选项1

git clone https://github.com/networktocode/ntc-ansible --recursive

选项2

git clone https://github.com/networktocode/ntc-ansible
cd ntc-ansible
git submodule update --init --recursive

注意:如果您想使用 ntc_show_command 与 ntc-templates 进行解析,请在克隆后导航到该目录并运行 setup.py 文件,例如 sudo python setup.py install

作为一个快速测试和验证,在尝试在 playbook 中使用它们之前,使用 ansible-doc 在模块中执行一个。例如,尝试这个

$ ansible-doc ntc_file_copy

如果这有效,Ansible 可以找到模块,然后您可以继续安装下面的依赖项。

安装依赖项

选项1

pip install ntc-ansible

选项2

如果您已经在上文克隆了它,您可以直接运行下面的第三个语句。

git clone https://github.com/networktocode/ntc-ansible
cd ntc-ansible
sudo python setup.py install

此外,您还需要安装lxml库,在Ubuntu上可以这样安装:

sudo apt-get install zlib1g-dev libxml2-dev libxslt-dev python-dev

有时候终端并未安装,可能需要手动安装。

pip install terminal

模块

  • ntc_show_command - 从没有API的设备获取结构化数据。此模块使用SSH连接到设备。支持的设备类型与netmiko支持的一样多。
  • ntc_config_command - 向没有API的设备发送命令。此模块使用SSH连接到设备。支持的设备类型与netmiko支持的一样多。
  • ntc_save_config - 保存运行配置,并可选择将其复制到Ansible控制主机以进行离线备份。使用SSH/netmiko进行IOS,使用NX-API进行Nexus,使用eAPI进行Arista。
  • ntc_file_copy - 从Ansible控制主机将文件复制到网络设备。使用SSH进行IOS,使用NX-API进行Nexus,使用eAPI进行Arista。
  • ntc_reboot - 重启网络设备。使用SSH/netmiko进行IOS,使用NX-API进行Nexus,使用eAPI进行Arista。
  • ntc_get_facts - 从网络设备收集事实。使用SSH/netmiko进行IOS,使用NX-API进行Nexus,使用eAPI进行Arista。
  • ntc_rollback - 执行两个主要功能。(1)在设备上创建检查点文件或备份运行配置。(2)回滚到之前创建的检查点/备份配置。用例是在playbook的第一个任务中创建检查点/备份,然后在需要时使用block/rescue回滚,即在Ansible中尝试/捕获异常。使用SSH/netmiko进行IOS,使用NX-API进行Nexus,使用eAPI进行Arista。
  • ntc_install_os - 安装新操作系统或仅设置引导选项。取决于平台。不会发出“reload”命令,但设备可能会自动重启。常见的工作流程是使用ntc_file_copy、ntc_install_os,然后在需要时使用ntc_reboot(如果需要)进行升级。使用SSH/netmiko进行IOS,使用NX-API进行Nexus,使用eAPI进行Arista。

常见问题

收集事实

从Ansible 2.1开始,在收集事实时存在名称空间冲突。以下消息将指示问题所在

TASK [Gathering Facts] *************************************************************************
*Using module file /home/bdowling/src/ansible-modules/ntc-ansible/setup.cfg*
fatal: [rtr02]: FAILED! => {
    "failed": true, 
    "msg": "module (setup) is missing interpreter line"
}

msg: module (setup) is missing interpreter line

PLAY RECAP *************************************************************************************
rtr02              : ok=0    changed=0    unreachable=0    failed=1   

您可以通过将gather_facts更改为no,或删除3个setup.XX文件来解决此问题。

收集事实示例

- hosts: test
  connection: local
  gather_facts: no

删除文件示例

rm ./setup.cfg
rm ./setup.py
rm ./ntc-templates/setup.py

有关更多详细信息,请参阅https://github.com/ansible/ansible/issues/20702https://github.com/ansible/ansible/pull/20717

此模块需要TextFSM

通常在虚拟环境中看到,根据Ansible对您使用的python二进制的解释,这不是预期的。如果您正确安装了textfsm,但收到以下警告,则表明您已达到此问题:

FAILED! => {"changed": false, "failed": true, "msg": "This module requires TextFSM"}

要修复此问题,请将以下内容添加到您的inventory或类似内容到您的group_vars/all.yml

[vars:all]
ansible_python_interpreter="/usr/bin/env python"

有关更多详细信息,请参阅https://github.com/ansible/ansible/issues/6345#issuecomment-181999529

示例

请参阅示例

背景

ntc_show_commandntc_config_command是第一个两个模块,这是从这个模块写出来的。这两个模块使用netmiko进行传输 - 这意味着如果netmiko支持某个平台,这些模块就可以使用。

所有其他模块支持Nexus使用pyntc,Arista使用pyeapi,IOS使用netmiko,Juniper使用PyEZ。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

ntc-ansible-0.9.2.tar.gz (4.0 kB 查看哈希值)

上传时间 源代码

构建分发

ntc_ansible-0.9.2-py3-none-any.whl (4.1 kB 查看哈希值)

上传时间 Python 3

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面