/ansible-role-nautobot

Ansible Role - Nautobot

Primary LanguageJinjaMIT LicenseMIT

Ansible Role: Nautobot

CI Ansible Galaxy Ansible Quality Score Version

Installs and configures Nautobot on RHEL/CentOS or Ubuntu servers.

Requirements

This role manages the installation and configuration of Nautobot. This role does not provide PostgreSQL or Redis services that are required dependencies of the application. Those tasks are intentionally left to allow the user to manage those services within their own roles and playbooks.

Tested on Nautobot supported platforms:

  • CentOS 8.2+ or Red Hat Enterprise Linux (RHEL) 8.2+
  • Ubuntu 20.04

This role will require root access (via sudo) to manage system dependencies and actions on behalf of Nautobot.

Role variables

Minimum required variables assuming localhost PostgreSQL and Redis services are available:

nautobot_db_username: nautobot
nautobot_db_password: nautobot
nautobot_secret_key: "lnvRn_5Bypl8hBV4mMwgsMuHxr6uZvGwJyDqB7fcKqo"

See defaults/main.yml for a complete list of defaults and configurable options.

User accounts

The following variables can be defined to create users during initial installation only:

nautobot_superusers:
  - username: admin
    password: admin
    email: changeme@example.com

Each user requires a username, password and email address defined. The role will attempt to create the defined users only once during initial installation. If nautobot_superusers is not defined, no users are created and the manual user creation process documented by Nautobot can be used instead.

External Authentication

See the wiki for information about available external authentication methods.

Plugins

Nautobot plugins that are pip modules can be installed and configured by setting the nautobot_plugins variable. Below is an example for the Nautobot Nornir plugin:

  nautobot_plugins:
    - name: nautobot_plugin_nornir    # Plugin name
      pip: nautobot-plugin-nornir     # Pip module name
      config:                         # plugin configuration
        nornir_settings:
          credentials: "nautobot_plugin_nornir.plugins.credentials.env_vars.CredentialsEnvVars"
          runner:
            plugin: "threaded"
            options:
              num_workers: 20

Version locking

Optionally, a specific version of nautobot can be configured using the variable:

nautobot_version: 1.0.1

This will ensure that a specific target is maintained. If not set, on initial install pip will install the latest version. On subsequent runs it will only check that the module is installed but will not upgrade it automatically.

In either case, an upgrade can be triggered by setting this variable to the desired Nautobot release version. Downgrading is not supported.

Dependencies

No Ansible dependencies. The application requires Redis and Postgres.

Example Playbook

See EXAMPLE for a complete playbook example.

Contributing

Contributions are encouraged. Please see CONTRIBUTING for details.