Nautobot Chatops Meraki
项目描述
Cisco Meraki ChatOps
使用Nautobot ChatOps基础框架,此Nautobot应用程序(插件)通过Slack、Webex Teams、MS Teams和Mattermost与Meraki门户直接通信来收集数据和执行基本更改,从而改变了IT组织支持Meraki基础设施的方式。
使用方法
命令设置
在Slack中添加一个名为/meraki
的斜杠命令。有关在您的Slack频道中添加斜杠命令的说明,请参阅nautobot-chatops安装指南。
根据您的安全需求,您可能需要调整Nautobot的访问权限。
以下命令可用
/meraki get-organizations
:收集所有Meraki组织。/meraki get-admins [org-name]
:基于组织名称返回管理员。/meraki get-devices [org-name] [device-type]
:从Meraki收集设备。/meraki get-networks [org-name]
:从Meraki收集网络。/meraki get-switchports [org-name] [device-name]
:从MS交换设备收集交换端口。/meraki get-switchports-status [org-name] [device-name]
:从MS交换设备收集交换端口状态。/meraki get-firewall-performance [org-name] [device-name]
:查询Meraki防火墙到设备性能。/meraki get-network-ssids [org-name] [net-name]
:查询给定网络的全部SSID。/meraki get-camera-recent [org-name] [device-name]
:查询Meraki最近相机分析。/meraki get-clients [org-name] [device-name]
:查询Meraki客户端列表。/meraki get-lldp-cdp [org-name] [device-name]
:查询Meraki LLDP或CDP邻居列表。/meraki configure-basic-access-port [org-name] [device-name] [port-number] [enabled] [vlan] [port-desc]
:配置带有描述、VLAN和状态的访问端口。/meraki cycle-port [org-name] [device-name] [port-number]
:在指定交换机上循环端口。
屏幕截图
运行 /meraki get-organizations
。
运行 /meraki get-networks
。
运行 /meraki get-switchports-status
。
由于输出被截断,以下为输出示例
Port Enabled Status Errors Warnings Speed Duplex Usage (Kb) Client Count Traffic In
(Kbps)
========================================================================================================================
1 True Connected 1 Gbps full total: 46687 1 total: 4.3
sent: 27405 sent: 2.5
recv: 19282 recv: 1.8
2 True Connected 1 Gbps full total: 10086 1 total: 1.0
sent: 9481 sent: 0.9
recv: 605 recv: 0.1
3 True Disconnected Port total: 0 0 total: 0
disconnected sent: 0 sent: 0
recv: 0 recv: 0
4 True Disconnected Port total: 0 0 total: 0
disconnected sent: 0 sent: 0
recv: 0 recv: 0
为了演示配置更新的示例。访问端口具有简单的配置功能。/meraki configure-basic-access-port
指定组织、交换机和端口ID。
填写端口特定配置。
配置的结果。
安装
此插件需要安装Nautobot ChatOps插件。请遵循此链接中的安装说明。
该插件可在PYPI中以Python包的形式提供,并可以使用pip进行安装
pip install git+https://github.com/networktocode-llc/nautobot-plugin-chatops-meraki.git
该插件与Nautobot 1.0.1及更高版本兼容
为确保Nautobot插件Chatops Meraki在未来升级期间自动重新安装,在Nautobot根目录中(与requirements.txt
并列)创建一个名为local_requirements.txt
的文件(如果尚不存在),并列出nautobot-plugin-chatops-meraki
包
# echo nautobot-plugin-chatops-meraki >> local_requirements.txt
安装后,需要在您的nautobot_config.py
中启用插件
# In your configuration.py
PLUGINS = ["nautobot_chatops", "nautobot_plugin_chatops_meraki"]
PLUGINS_CONFIG = {
"nautobot_chatops": {
# ADD SLACK/MS-TEAMS/WEBEX-TEAMS/MATTERMOST SETTINGS HERE
}
}
要连接到Meraki仪表板API,您需要定义Meraki仪表板API密钥。请参阅[Meraki仪表板API文档](https://documentation.meraki.com/ General_Administration/Other_Topics/Cisco_Meraki_Dashboard_API)。
定义API密钥有两种选择。
第一种选择是在nautobot_config.py
中定义API密钥
PLUGINS_CONFIG = {
"nautobot_plugin_chatops_meraki": {
"meraki_dashboard_api_key": <API KEY>
},
注意:您可能希望从环境变量中读取API密钥,如下所示:
os.environ.get("MERAKI_API_KEY")
另一种选择是设置环境变量
MERAKI_DASHBOARD_API_KEY
:设置为仪表板API密钥。将此变量及其值添加到creds.env
文件中。
贡献
欢迎提交拉取请求,并通过TravisCI自动构建和测试针对多个Python版本和多个Nautobot版本的插件。
该项目使用基于docker-compose
的轻量级开发环境打包,以帮助项目本地开发和在TravisCI中运行测试。
该项目遵循Network to Code软件开发指南,并利用
- Black、Pylint、Bandit和pydocstyle进行Python代码审查和格式化。
- Django单元测试以确保插件正常运行。
开发环境
开发环境可以使用两种方式。首先,如果您想在Docker之外进行开发,可以使用本地诗歌环境。其次,在Docker容器内部。
调用任务
使用PyInvoke库提供一些基于环境的辅助命令。有几个配置参数可以传递给PyInvoke以覆盖默认配置
nautobot_ver
:用作构建任何Docker容器的Nautobot版本的基础(默认:最新版)project_name
:默认的Docker Compose项目名称(默认:nautobot-plugin-chatops-meraki)python_ver
:用作构建任何Docker容器的Python版本的基础(默认:3.6)local
:一个布尔标志,指示是否应在主机或Docker容器内运行invoke任务(默认:False,命令将在Docker容器中运行)compose_dir
:包含项目组合文件的目录的完整路径compose_files
:按顺序应用的组合文件列表(有关更多信息,请参阅多个组合文件)
使用PyInvoke可以通过几种方法覆盖这些配置选项。最简单的方法是设置一个环境变量INVOKE_NAUTOBOT-PLUGIN-CHATOPS-MERAKI_VARIABLE_NAME
,其中VARIABLE_NAME
是要覆盖的变量名称。唯一的例外是compose_files
,因为它是一个列表,必须在yaml文件中覆盖。此目录中有一个示例invoke.yml
,可以作为起点。
本地诗歌开发环境
- 将
development/creds.env.example
复制到development/creds.env
(此文件将由git和Docker忽略) - 在
development/creds.env
中取消注释POSTGRES_HOST
、REDIS_HOST
和NAUTOBOT_ROOT
变量 - 在仓库根目录创建一个包含以下内容的invoke.yml
---
nautobot_plugin_chatops_meraki:
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 environment
、utility
和testing
。
每个命令都可以通过invoke <command>
执行。可以指定环境变量INVOKE_NAUTOBOT-PLUGIN-CHATOPS-MERAKI_PYTHON_VER
和INVOKE_NAUTOBOT-PLUGIN-CHATOPS-MERAKI_NAUTOBOT_VER
以覆盖默认版本。每个命令都有自己的帮助信息invoke <command> --help
Docker dev环境
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.
问题
如有任何问题或评论,请首先查看FAQ,并随时访问Network to Code slack频道(频道#networktocode)。在此处注册。
项目详细信息
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
nautobot-chatops-meraki-1.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3dea19dc7b6b3b8a6fd372443159f491411b0bd36adcaed6c5afd1b212fc97c0 |
|
MD5 | 87ced84a26606c79f2a515b021944bb5 |
|
BLAKE2b-256 | 1f38470ff6eea060f5d0d7b49e1adf5f8b73d73262e47337a7f8dba98a0f7aca |
nautobot_chatops_meraki-1.2.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aef614d22e7d2a6870ef7f11b538ddc8a83c93f9956f551a2e394ff01b7f562f |
|
MD5 | 9b77e9b8915aa5b60e81330cf4f8f40e |
|
BLAKE2b-256 | 77bba26a33153e39a27eb2ff94a00bc6b55d505c93f8afd3df9bcb4f9f35d349 |