This repository has been archived by the owner on Aug 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Merged
Update docs #103
Changes from 5 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
6f7c18d
Update docs
matt852 d4867b2
Update README.md
matt852 6ed06a9
Update with PR feedback
matt852 b5538d3
Merge branch 'osrb-102' of https://github.com/networktocode-llc/nauto…
matt852 f4b133e
Update docs with additional env variable details
matt852 4e792f2
Update plugin name as per PR feedback
matt852 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,142 @@ | ||
# NautobotPluginChatopsPanorama | ||
# Nautobot Plugin ChatOps Panorama | ||
|
||
TODO: Write plugin documentation, the outline here is provided as a guide and should be expanded upon. If more detail is required you are encouraged to expand on the table of contents (TOC) in `mkdocs.yml` to add additional pages. | ||
This is a plugin for [Nautobot](https://github.com/nautobot/nautobot) that extends ChatOps support to Palo Alto Panorama systems. The plugin adds some useful commands into your ChatOps environment that enhance an administrator's and end user's day to day using of Panorama. This framework allows for the quick extension of new ChatOps commands for Panorama. | ||
|
||
## Description | ||
Note: While this plugin requires Nautobot and the base Nautobot ChatOps plugin, it does _not_ require the Panorama or Palo Alto inventory to be in Nautobot. It is effectively Nautobot-independent, except for using it as a backend to run the chat bot itself. | ||
|
||
## Usage | ||
|
||
The supported commands are listed below. We welcome any new command or feature requests by submitting an issue or PR. | ||
|
||
| /panorama Command | Description | | ||
| -------------------- | -------------------------------------------------------------------------- | | ||
| capture-traffic | Run a packet capture on PANOS Device for specified IP traffic. | | ||
| export-device-rules | Generate a downloadable list of firewall rules with details in CSV format. | | ||
| get-device-rules | Return a list of all firewall rules on a given device with details. | | ||
| get-version | Obtain software version information for Panorama. | | ||
| install-software | Install software to specified Palo Alto device. | | ||
| upload-software | Upload software to specified Palo Alto device. | | ||
| validate-rule-exists | Verify that a specific ACL rule exists within a device, via Panorama. | | ||
|
||
## Prerequisites | ||
|
||
This plugin requires the [Nautobot ChatOps Plugin](https://github.com/nautobot/nautobot-plugin-chatops) to be installed and configured before using. You can find detailed setup and configuration instructions [here](https://github.com/nautobot/nautobot-plugin-chatops/blob/develop/README.md). | ||
|
||
## Installation | ||
|
||
## Configuration | ||
The plugin is available as a Python package in pypi and can be installed with pip: | ||
|
||
## Usage | ||
```shell | ||
pip install nautobot-plugin-chatops-panorama | ||
``` | ||
|
||
> The plugin is compatible with Nautobot 1.1.0 and higher | ||
|
||
To ensure Nautobot Plugin ChatOps Panorama is automatically re-installed during future upgrades, create a file named `local_requirements.txt` (if not already existing) in the Nautobot root directory (alongside `requirements.txt`) and list the `nautobot-plugin-chatops-panorama` package: | ||
|
||
```no-highlight | ||
# echo nautobot-plugin-chatops-panorama >> local_requirements.txt | ||
``` | ||
|
||
Once installed, the plugin needs to be enabled in your `nautobot_config.py` | ||
|
||
```python | ||
# In your configuration.py | ||
PLUGINS = ["nautobot_chatops", "nautobot_plugin_chatops_panorama"] | ||
``` | ||
|
||
In addition, add/update the below `PLUGINS_CONFIG` section to `nautobot_config.py`. | ||
|
||
> It is only necessary to add the sections from the below snippet for the chat platform you will be using (Slack, Webex, etc.). | ||
|
||
```python | ||
# 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"), | ||
}, | ||
} | ||
``` | ||
|
||
### Environment Variables | ||
|
||
You will need to set the following environment variables for your Nautobot instance, then restart the services for them to take effect. | ||
|
||
- PANORAMA_HOST - This is the management DNS/IP address used to reach your Panorama instance. | ||
- PANORAMA_USER - A user account with API access to Panorama. | ||
- PANORAMA_PASSWORD - The password that goes with the above user account. | ||
|
||
```bash | ||
export PANORAMA_HOST="{{ Panorama DNS/URL }}" | ||
export PANORAMA_USER="{{ Panorama account username }}" | ||
export PANORAMA_PASSWORD="{{ Panorama account password }}" | ||
``` | ||
|
||
If the base Nautobot Chatops plugin is not already installed, the following environment variables are required for the chat platform in use. The [Platform-specific Setup](https://github.com/nautobot/nautobot-plugin-chatops/blob/develop/docs/chat_setup/chat_setup.md#platform-specific-setup) document describes how to retrieve the tokens and secrets for each chat platform that will need to be used in the environment variables. | ||
|
||
> It is only necessary to create the environment variables shown below for the chat platform you will be using. To make the environment variables persistent, add them to the ~/.bash_profile for the user running Nautobot. | ||
|
||
```bash | ||
# 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" | ||
``` | ||
|
||
> When deploying as Docker containers, all of the above environment variables should be defined in the file `development/creds.env`. An example credentials file `creds.env.example` is available in the `development` folder. | ||
|
||
## Access Control | ||
|
||
Just like with the regular `/nautobot` command from the base Nautobot ChatOps plugin, the `/panorama` command supports access control through the Access Grants menu in Nautobot. See section [Grant Access to the Chatbot](https://github.com/nautobot/nautobot-plugin-chatops/blob/develop/docs/chat_setup/chat_setup.md#grant-access-to-the-chatbot) in the installation guide for the base Nautobot ChatOps plugin for setting this up. | ||
|
||
## Questions | ||
|
||
For any questions or comments, please check the [FAQ](FAQ.md) first and feel free to swing by the [Network to Code slack channel](https://networktocode.slack.com/) (channel #networktocode). | ||
Sign up [here](http://slack.networktocode.com/) | ||
|
||
## Screenshots | ||
|
||
![Help](docs/img/screenshot1.png) | ||
|
||
![Validate Rule Exists Success](docs/img/screenshot2.png) | ||
|
||
![Validate Rule Exists Failure](docs/img/screenshot3.png) | ||
|
||
## API | ||
![Upload Software](docs/img/screenshot4.png) | ||
|
||
## Views | ||
![Capture Traffic Filter](docs/img/screenshot5.png) | ||
|
||
## Models | ||
![Capture Traffic](docs/img/screenshot6.png) |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove the word "plugin" from the title. Check with the others what we've done. I think "Panorama ChatOps" works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've updated its name in the documentation to just be
Nautobot Panorama ChatOps
.Do you also want the package name, folders, etc to be renamed from
nautobot-plugin-chatops-panorama
tonautobot-panorama-chatops
?