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 |
屏幕截图
用法
在您的聊天平台中添加名为/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实例的URLIPFABRIC_VERIFY
:默认:True;False忽略自签名证书
开发
开发环境支持一个自包含的环境,用于开发nautobot chatops命令。
环境的构建需要python3-invoke
。出于开发目的,安装poetry
并使用它来管理所需的包。
poetry install # first time use
poetry shell
您可以通过复制creds.env
到本地后使用invoke build
和invoke 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开发环境
- 将
development/creds.example.env
复制到development/creds.env
(此文件将由git和docker忽略) - 在
development/creds.env
中取消注释POSTGRES_HOST
、REDIS_HOST
和NAUTOBOT_ROOT
变量 - 在存储库根目录创建一个包含以下内容的invoke.yml
---
ipfabric:
local: true
compose_files:
- "docker-compose.requirements.yml"
- 运行以下命令
poetry shell
poetry install
export $(cat development/dev.env | xargs)
export $(cat development/creds.env | xargs)
- 现在您可以像从Nautobot文档中一样运行nautobot-server命令,例如启动开发服务器
nautobot-server runserver 0.0.0.0:8080 --insecure
Nautobot服务器现在可通过http://localhost:8080访问。
Docker开发环境
此项目由Python Poetry管理,并有一些要求来设置您的开发环境
安装Poetry和Docker后,您可以运行以下命令来在隔离的Python虚拟环境中安装所有其他开发依赖项
poetry shell
poetry install
invoke start
Nautobot服务器现在可通过http://localhost:8080访问。
CLI辅助命令
该项目附带一个基于invoke的CLI辅助工具,用于帮助设置开发环境。命令按以下3个类别列出:dev环境
、实用程序
和测试
。
每个命令都可以通过invoke <command>
执行。可以指定环境变量INVOKE_IPFABRIC_PYTHON_VER
和INVOKE_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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ec51de2d653210039905a990a4179da795c3ee686f4771f2c43a0a3d1b2e1c89 |
|
MD5 | 22072614d106fb6e74e778f45beee502 |
|
BLAKE2b-256 | bf091c9952212336ced526715cc2d9103ff4dab5537ff1eb6ea9c874be763f81 |
nautobot_chatops_ipfabric-3.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db3e3664a7d7a4c6a53546cb1ecd61b90cc0636383c075e69c59f4c76ab03074 |
|
MD5 | 793c5d4bf16aff08f71dc29e9cfa1865 |
|
BLAKE2b-256 | 7811cd0a957e8d3e8974a930642be3ac8a23795b4f8e3dadf72468cd651327a0 |