跳转到主要内容

Nautobot插件Chatops IPFabric

项目描述

IP Fabric ChatOps

Nautobot提供的IP Fabric ChatOps插件。

此插件使用Nautobot ChatOps基础框架。它提供使用支持的平台(目前为Slack、Webex Teams、MS Teams和Mattermost)查询IP Fabric数据的 ability。

版本矩阵

以下是兼容性矩阵和运行此插件所需的最小版本

IP Fabric Python Nautobot chatops chatops-ipfabric python-ipfabric python-ipfabric-diagrams
4.4 3.7.1 1.1.0 1.1.0 1.2.0 0.11.0 1.2.7
5.0.1 3.7.1 1.1.0 1.1.0 1.3.0 5.0.4 5.0.2
6.0 3.7.1 1.4.0 1.1.0 3.0.0 6.0.9 6.0.2

屏幕截图

image

ipfabric-2

ipfabric-3

ipfabric-4

ipfabric-5

ipfabric-6

ipfabric-7

用法

在您的聊天平台中添加名为/ipfabric的斜杠命令。有关将斜杠命令添加到聊天频道的说明,请参阅nautobot-chatops安装指南

以下命令可用:

  • /ipfabric set-snapshot [snapshot]:设置快照作为命令的参考。
  • /ipfabric get-snapshot:获取快照作为命令的参考。
  • /ipfabric device-list:获取设备列表。
  • /ipfabric interfaces [device] [metric]:获取设备的接口度量。
  • /ipfabric pathlookup [src-ip] [dst-ip] [src-port] [dst-port] [protocol]:在源IP地址和目标IP地址之间的路径模拟图查找。
  • /ipfabric pathlookup-icmp [src-ip] [dst-ip] [icmp-type]:在源IP地址和目标IP地址之间的ICMP路径模拟图查找。
  • /ipfabric routing [device] [protocol] [filter-opt]:获取设备的路由信息。
  • /ipfabric wireless [option] [ssid]:通过客户端或ssid获取无线信息。
  • /ipfabric find-host [filter-key] [filter-value]:使用库存主机表获取主机信息。
  • /ipfabric table-diff [category] [table] [snapshot] [view]:获取当前快照和快照之间的类别/表之间的差异。输出视图可以是带有计数器的摘要或带有表格的详细视图。

IP Fabric使用快照的概念,可以包含不同的设备和数据。插件支持通过/ipfabric set-snapshot命令查询特定快照。快照为每个用户设置并缓存以供将来所有命令使用。如果没有设置快照,则命令将默认为$last,除非需要特定的快照ID。

安装

扩展作为PyPI中的Python包提供,可以使用pip安装。

pip install nautobot-chatops-ipfabric

插件与Nautobot 1.0.0及以上版本兼容。

为确保在未来的升级期间自动重新安装IP Fabric ChatOps插件,请在Nautobot根目录中(与requirements.txt并列)创建一个名为local_requirements.txt的文件(如果尚不存在),并列出nautobot-chatops-ipfabric包。

# echo nautobot-chatops-ipfabric >> local_requirements.txt

安装完成后,需要在您的nautobot_configuration.py中启用插件。

# In your nautobot_configuration.py
PLUGINS = ["nautobot_chatops", "nautobot_chatops_ipfabric"]

PLUGINS_CONFIG = {
  "nautobot_chatops": {
    # ADD SLACK/MS-TEAMS/WEBEX-TEAMS/MATTERMOST SETTINGS HERE
  }
  "nautobot_chatops_ipfabric": {
      "IPFABRIC_API_TOKEN": os.environ.get("IPFABRIC_API_TOKEN"),
      "IPFABRIC_HOST": os.environ.get("IPFABRIC_HOST"),
      "IPFABRIC_VERIFY": os.environ.get("IPFABRIC_VERIFY", True),
  },
}

可以使用以下设置列表控制插件行为

  • IPFABRIC_API_TOKEN:访问IP Fabric API的令牌
  • IPFABRIC_HOST:IP Fabric实例的URL
  • IPFABRIC_VERIFY:默认:True;False忽略自签名证书

开发

开发环境支持一个自包含的环境,用于开发nautobot chatops命令。

环境的构建需要python3-invoke。出于开发目的,安装poetry并使用它来管理所需的包。

poetry install        # first time use
poetry shell

您可以通过复制creds.env到本地后使用invoke buildinvoke start来在本地启动开发容器。

cp development/creds.env.example development/creds.env
invoke build
invoke start

您应该能够在http://0.0.0.0:8080访问nautobot。

贡献

欢迎拉取请求,并通过TravisCI自动构建和测试针对多个Python版本和多个Nautobot版本的插件。

该项目基于docker-compose打包了一个轻量级开发环境,以帮助项目在本地开发并运行TravisCI中的测试。

该项目遵循Network to Code软件开发指南,并利用

  • Black、Pylint、Bandit和pydocstyle进行Python代码审查和格式化。
  • Django单元测试以确保插件正常工作。

开发环境

开发环境可以有两种使用方式。首先,如果您希望在Docker之外进行开发,则可以使用本地poetry环境。其次,在Docker容器内部。

Invoke任务

使用PyInvoke库提供基于环境的辅助命令。有一些配置参数可以传递给PyInvoke以覆盖默认配置

  • nautobot_ver:用作任何构建Docker容器的Nautobot版本(默认:develop-latest)
  • project_name:默认的docker compose项目名称(默认:ipfabric)
  • python_ver:用作任何构建Docker容器的Python版本(默认:3.6)
  • local:一个布尔标志,表示是否应在主机上或在Docker容器内运行调用任务(默认:False,命令将在Docker容器中运行)
  • compose_dir:包含项目组合文件的目录的完整路径
  • compose_files:按顺序应用的组合文件列表(有关更多信息,请参阅多个组合文件

使用PyInvoke,可以通过几种方法覆盖这些配置选项。可能最简单的方法是简单地设置环境变量INVOKE_IPFABRIC_VARIABLE_NAME,其中VARIABLE_NAME是您想要覆盖的变量。唯一的例外是compose_files,因为它是一个列表,必须在yaml文件中覆盖。此目录中有一个示例invoke.yml,可以作为起点使用。

本地Poetry开发环境

  1. development/creds.example.env复制到development/creds.env(此文件将由git和docker忽略)
  2. development/creds.env中取消注释POSTGRES_HOSTREDIS_HOSTNAUTOBOT_ROOT变量
  3. 在存储库根目录创建一个包含以下内容的invoke.yml
---
ipfabric:
  local: true
  compose_files:
    - "docker-compose.requirements.yml"
  1. 运行以下命令
poetry shell
poetry install
export $(cat development/dev.env | xargs)
export $(cat development/creds.env | xargs)
  1. 现在您可以像从Nautobot文档中一样运行nautobot-server命令,例如启动开发服务器
nautobot-server runserver 0.0.0.0:8080 --insecure

Nautobot服务器现在可通过http://localhost:8080访问。

Docker开发环境

此项目由Python Poetry管理,并有一些要求来设置您的开发环境

  1. 安装Poetry,请参阅您操作系统的Poetry文档
  2. 安装Docker,请参阅您操作系统的Docker文档

安装Poetry和Docker后,您可以运行以下命令来在隔离的Python虚拟环境中安装所有其他开发依赖项

poetry shell
poetry install
invoke start

Nautobot服务器现在可通过http://localhost:8080访问。

CLI辅助命令

该项目附带一个基于invoke的CLI辅助工具,用于帮助设置开发环境。命令按以下3个类别列出:dev环境实用程序测试

每个命令都可以通过invoke <command>执行。可以指定环境变量INVOKE_IPFABRIC_PYTHON_VERINVOKE_IPFABRIC_NAUTOBOT_VER来覆盖默认版本。每个命令都有自己的帮助信息invoke <command> --help

Docker开发环境

  build            Build all docker images.
  debug            Start Nautobot and its dependencies in debug mode.
  destroy          Destroy all containers and volumes.
  restart          Restart Nautobot and its dependencies.
  start            Start Nautobot and its dependencies in detached mode.
  stop             Stop Nautobot and its dependencies.

实用程序

  cli              Launch a bash shell inside the running Nautobot container.
  create-user      Create a new user in django (default: admin), will prompt for password.
  makemigrations   Run Make Migration in Django.
  nbshell          Launch a nbshell session.

测试

  bandit           Run bandit to validate basic static code security analysis.
  black            Run black to check that Python files adhere to its style standards.
  flake8           This will run flake8 for the specified name and Python version.
  pydocstyle       Run pydocstyle to validate docstring formatting adheres to NTC defined standards.
  pylint           Run pylint code analysis.
  tests            Run all tests for this plugin.
  unittest         Run Django unit tests for the plugin.

问题

对于任何问题或评论,请首先查看常见问题解答,并请随时访问Network to Code Slack频道(频道#networktocode)。在此处注册

项目详情


下载文件

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

源分布

nautobot_chatops_ipfabric-3.0.1.tar.gz (55.2 kB 查看哈希值

上传时间

构建分布

nautobot_chatops_ipfabric-3.0.1-py3-none-any.whl (56.3 kB 查看哈希值)

上传于 Python 3

支持者