跳转到主要内容

Nautobot Panorama ChatOps插件

项目描述

Nautobot Panorama ChatOps

此存储库中的代码已迁移到Nautobot ChatOps仓库作为集成 - 在ChatOps文档中了解更多信息!截至2023年7月,此仓库已冻结 - 所有关于此集成的开发/问题/讨论都将在Nautobot ChatOps仓库中进行。

这是一个扩展ChatOps支持到Palo Alto Panorama系统的Nautobot插件。该插件将一些有用的命令添加到您的ChatOps环境中,增强了管理员和最终用户对Panorama的日常使用。此框架允许快速扩展新的ChatOps命令用于Panorama。

注意:虽然此插件需要Nautobot和基本的Nautobot ChatOps插件,但它不需要Panorama或Palo Alto库存存在于Nautobot中。它实际上是Nautobot独立的,除了将其用作运行聊天机器人的后端。

使用方法

支持的命令如下。我们欢迎通过提交问题或PR来提出任何新的命令或功能请求。

/panorama 命令 描述
get-devices 从Panorama获取有关连接设备的详细信息。
get-devicegroups 从Panorama获取有关设备组和它们的设备的详细信息。
验证规则存在 通过 Panorama 验证特定 ACL 规则是否存在于设备中。
获取版本 获取 Panorama 的软件版本信息。
上传软件 将软件上传到指定的 Palo Alto 设备。
安装软件 将软件安装到指定的 Palo Alto 设备。
获取设备规则 返回给定设备上所有防火墙规则及其详细信息列表。
导出设备规则 以 CSV 格式生成包含详细信息的防火墙规则可下载列表。
捕获流量 在 PANOS 设备上对指定 IP 流量运行数据包捕获。

先决条件

此插件在使用前需要安装和配置 Nautobot ChatOps 插件。您可以在 此处 找到详细的设置和配置说明。

安装

该插件作为 Python 包在 PyPI 上可用,可以使用 pip 安装。

pip install nautobot-plugin-chatops-panorama

该插件与 Nautobot 1.1.0 及更高版本兼容。

为确保 Nautobot Panorama ChatOps 在未来的升级中自动重新安装,请在 Nautobot 根目录下创建一个名为 local_requirements.txt 的文件(如果尚不存在),与 requirements.txt 位于同一位置)并列出 nautobot-plugin-chatops-panorama 包。

# echo nautobot-plugin-chatops-panorama >> local_requirements.txt

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

# In your configuration.py
PLUGINS = ["nautobot_chatops", "nautobot_plugin_chatops_panorama"]

此外,将以下 PLUGINS_CONFIG 部分添加/更新到 nautobot_config.py 中。

您只需添加以下片段中的部分,以适应您将要使用的聊天平台(Slack、Webex 等)。

# Also in nautobot_config.py
PLUGINS_CONFIG = {
    "nautobot_chatops": {
        # Slack
        "enable_slack": os.environ.get("ENABLE_SLACK", False),
        "slack_api_token": os.environ.get("SLACK_API_TOKEN"),
        "slack_signing_secret": os.environ.get("SLACK_SIGNING_SECRET"),
        "slack_slash_command_prefix": os.environ.get("SLACK_SLASH_COMMAND_PREFIX", "/"),
        # Webex
        "enable_webex": os.environ.get("ENABLE_WEBEX", False),
        "webex_token": os.environ.get("WEBEX_TOKEN"),
        "webex_signing_secret": os.environ.get("WEBEX_SIGNING_SECRET"),
        # Mattermost
        "enable_mattermost": os.environ.get("ENABLE_MATTERMOST", False),
        "mattermost_api_token": os.environ.get("MATTERMOST_API_TOKEN"),
        "mattermost_url": os.environ.get("MATTERMOST_URL"),
        # MS Teams
        "enable_ms_teams": os.environ.get("ENABLE_MS_TEAMS", False),
        "microsoft_app_id": os.environ.get("MICROSOFT_APP_ID"),
        "microsoft_app_password": os.environ.get("MICROSOFT_APP_PASSWORD"),
    },
    "nautobot_plugin_chatops_panorama": {
        "panorama_host": os.environ.get("PANORAMA_HOST"),
        "panorama_user": os.environ.get("PANORAMA_USER"),
        "panorama_password": os.environ.get("PANORAMA_PASSWORD"),
    },
}

环境变量

您需要为您的 Nautobot 实例设置以下环境变量,然后重启服务以便它们生效。

  • PANORAMA_HOST - 这是用于访问您的 Panorama 实例的管理 DNS/IP 地址。
  • PANORAMA_USER - 一个具有对 Panorama API 访问权限的用户帐户。
  • PANORAMA_PASSWORD - 与上述用户帐户相对应的密码。
export PANORAMA_HOST="{{ Panorama DNS/URL }}"
export PANORAMA_USER="{{ Panorama account username }}"
export PANORAMA_PASSWORD="{{ Panorama account password }}"

如果基本 Nautobot Chatops 插件尚未安装,则以下环境变量对于使用的聊天平台是必需的。有关如何从环境变量中检索每个聊天平台所需的令牌和密钥的说明,请参阅 平台特定设置 文档。

您只需为将要使用的聊天平台创建以下环境变量。要使环境变量持久化,请将它们添加到运行 Nautobot 的用户的 ~/.bash_profile。

# Slack
export ENABLE_SLACK="true"
export SLACK_API_TOKEN="foobar"
export SLACK_SIGNING_SECRET="foobar"
# Webex
export ENABLE_WEBEX="true"
export WEBEX_TOKEN="foobar"
export WEBEX_SIGNING_SECRET="foobar"
# Mattermost
export ENABLE_MATTERMOST="false"
export MATTERMOST_API_TOKEN="foobar"
export MATTERMOST_URL="foobar"
# Microsoft Teams
export ENABLE_MS_TEAMS="false"
export MICROSOFT_APP_ID="foobar"
export MICROSOFT_APP_PASSWORD="foobar"

当以 Docker 容器部署时,所有上述环境变量都应在 development/creds.env 文件中定义。在 development 文件夹中提供了一个示例凭据文件 creds.env.example

访问控制

与基本 Nautobot ChatOps 插件的常规 /nautobot 命令一样,/panorama 命令支持通过 Nautobot 中的访问权限菜单进行访问控制。有关设置说明,请参阅基本 Nautobot ChatOps 插件的安装指南中的 授予 Chatbot 访问权限 部分。

问题

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

屏幕截图

Help

Validate Rule Exists Success

Validate Rule Exists Failure

Upload Software

Capture Traffic Filter

Capture Traffic

Get Devices

Get DeviceGroups

Get Device Rules

项目详情


下载文件

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

源代码分发

nautobot_plugin_chatops_panorama-1.2.0.tar.gz (107.4 kB 查看哈希值)

上传时间 源代码

构建分发

nautobot_plugin_chatops_panorama-1.2.0-py3-none-any.whl (109.5 kB 查看哈希值)

上传时间 Python 3

支持