Properties.yml
  • Dark
    Light
  • PDF

Properties.yml

  • Dark
    Light
  • PDF

Properties.yml

Sample Properties File

An example properties.yml file is shown below. Note that the configuration is highly self-documenting and ordered by general webserver categories as well as one category per integration (Ansible, Nornir, etc).

---
---
# Notes:
#
# While many customizations can be made based on your environment and which integrations you
# would like enabled, this file is meant to mimic the installation process found at
# https://docs.itential.io/ as closely as possible so the user can use as many defaults as possible.
#
# This configuration file accepts any valid YAML syntax including the bash-like syntax for lists, etc.

##########
# System #
##########

# The port on which Automation Gateway server will listen for requests.
# Mutually exclusive with bind_list
port: 8083

# The IP addresses to bind the web application to.
# For ipv4 only use "0.0.0.0", for ipv6 and ipv4 use "[::]"
# Mutually exclusive with bind_list
#bind_address: [::]

# List of addresses and ports to bind to.
# This setting will override both 'port' and 'bind_address'
#bind_list:
#  - "0.0.0.0:8083"

# Base of url for external proxy, used for generating redirects:
# external_address: 'http://automation-gateway.example.com:8080'

# The number of http server threads for handling requests.
# A good starting point is 2-4 x NUM_CORES then adjust based on observed workload.
#http_server_threads: 8

# A flag that determines whether authentication is disabled or not.
# Warning: only disable authentication for temporary, non production testing.
authentication_disabled: False

# The maximum number of concurrent sessions allowed.
authentication_max_sessions: 5000

# The idle timeout of each session (in seconds).
authentication_idle_timeout: 600

# A boolean flag that enables password reset support (default=False if absent/misconfigured).
password_reset_enabled: True

# NOTE: Log levels for Automation Gateway Server are as follows.
# In order of ascending severity: DEBUG, INFO, WARNING, ERROR, or CRITICAL.
# Log messages of equal and greater severity will be displayed in the relevant log.
# Example: logging_level INFO will display log messages with a severity of INFO -> CRITICAL.
# (default=INFO if absent/misconfigured)

# Automation Gateway Server Logging Level
logging_level: INFO

# Automation Gateway HTTP Server Logging Level
# NOTE: request details are DEBUG level log messages, it may be useful to set this to DEBUG
http_logging_level: INFO

# A flag that enables/disables parameter schema validation for content decorations.
# Generally enabled when using multiple types per parameter, or when testing decorations.
# Example: "commands" could be a literal list of commands, or a string representing a jinja
#          variable from your host's variables "{{commands}}", etc.
strict_args: True

#############
# Databases #
#############

# Path to the main Automation Gateway sqlite database file.
data_file: "sqlite:////opt/automation-gateway/data/automation-gateway.db"

# A flag which determines whether or not audit logging is enabled. (default=True if absent/misconfigured)
audit: True

# The number of days (days >= 0) worth of data to retain in the audit log database
# Records earlier than the specified days will be deleted. (default=None if absent/misconfigured)
audit_retention_days: 30

# Path to the auxillary Automation Gateway sqlite database file for audit logs.
audit_db_file: "sqlite:////opt/automation-gateway/data/automation-gateway_audit.db"

# Path to the auxillary Automation Gateway sqlite database file for execution logs.
exec_history_db_file: "sqlite:////opt/automation-gateway/data/automation-gateway_exec_history.db"

#########
# Repos #
#########

# A boolean flag that enables Git repository (repos) support (default=True if absent/misconfigured).
repos_enabled: True

# Path to the location where repository clones should be stored for use by Automation Gateway.
repos_path: "/opt/automation-gateway/repos"

###########
# Ansible #
###########

# A boolean flag that enables Ansible support (default=True if absent/misconfigured).
ansible_enabled: True

# A boolean which logs additional debug messages when executing Ansible modules, roles, or playbooks.
# Set the ansible_debug property to True to log additional debug messages when
# executing Ansible modules, roles, or playbooks. (default=False if absent/misconfigured)
ansible_debug: False

# A flag to prevent deletion of the temporary files generated by executing
# Ansible content (modules, collections, roles, playbooks). (default=False if absent/misconfigured)
no_cleanup: False

# Path of the file that contains a password used by ansible-vault to encrypt sensitive data.
# Uncomment this property if you will be using Ansible vault encrypted variables.
# Be sure to secure this file with permissions of 0200 or 0400.
#vault_password_file: "/opt/automation-gateway/conf/.vault_password_file"

# Path to the Ansible external inventory file (folders not valid).
# A valid file will disable Ansible Internal inventory and instead use only this Ansible External inventory.
inventory_file: "/opt/automation-gateway/ansible/inventory/hosts"

# Path(s) to the Ansible modules that should be discovered by Automation Gateway and appended to Ansible's execution environment.
# All non-collection paths (see Ansible 2.10 notes below) known to Ansible are already included and do not need to be specified.
# Additionally, this parameter needs to be configured if the path reported by 'ansible --version' is incorrect
# or you would like to customize/trim down the set of Ansible modules that will be discovered (see Ansible<=2.9 notes below).
# Trim example for ansible 2.9: "/usr/local/lib/python3.9/site-packages/ansible/modules/network"
# NOTE: Use only the site-packages paths you need for your installation to avoid
#       cross environment issues in the case where multiple of these paths exist
module_path:
  # System installed Python, Ansible installed globally:
  - "/usr/local/lib/python3.9/site-packages/ansible/modules/network"
  - "/usr/local/lib/python3.9/site-packages/ansible_collections"
  # Manually installed Python, Ansible installed by the itential user
  - "/home/itential/.local/lib/python3.9/site-packages/ansible/modules/network"
  - "/home/itential/.local/lib/python3.9/site-packages/ansible_collections"
  # Any installation method for Python, Ansible installed inside of a virtualenv at $HOME/automation-gateway
  - "/home/itential/automation-gateway/lib/python3.9/site-packages/ansible/modules/network"
  - "/home/itential/automation-gateway/lib/python3.9/site-packages/ansible_collections"
  # Default location for custom content per the setup script
  - "/usr/share/ansible/modules"

# Path(s) to the Ansible collections that should be discovered by Automation Gateway and exclusively used in Ansible's execution environment.
# Due to differences in collections before/after Ansible 2.9, these will be the only paths relevant during discovery AND execution.
collection_path:
  # The first path will be the default location for additional collection installations via the API/GUI
  - "/opt/automation-gateway/.ansible/collections"
  ## The remaining paths will be used only for discovery and execution
  # Default location for custom content per the setup script
  - "/usr/share/ansible/collections"

# Path(s) to the Ansible roles that should be discovered by Automation Gateway and appended to Ansible's execution environment.
role_path:
  # The first path will be the default location for additional role installations (via the API or ansible-galaxy)
  - "/opt/automation-gateway/.ansible/roles"
  # Default location for custom content per the setup script
  - "/usr/share/ansible/roles"

# Path(s) to customized roles that extend device support of the Itential roles found in the release, i.e., itential_cli, itential_get_config.
#extended_device_role_path:
  #This is a sample path to roles that extend device support
  #- /usr/share/device_support/roles


# Discovery behavior for Ansible playbooks. Determines whether or not to
# recursively search the directories found in the 'playbook_path' parameter, or
# to only search those directories and no deeper. (default=True if absent/misconfigured)
playbook_recursive: True

# Path(s) to the Ansible playbooks that should be discovered by Automation Gateway and appended to Ansible's execution environment.
playbook_path:
  # Default location for custom content per the setup script
  - "/usr/share/ansible/playbooks"
  ## Default Itential custom content locations - uncomment to display some sample playbooks
  # - "/usr/local/lib/python3.9/site-packages/automation_gateway/integrations/playbooks"
  # System installed Python, Automation Gateway installed globally:
  # - "/usr/local/lib/python3.9/site-packages/automation_gateway/integrations/playbooks"
  # Manually installed Python, Automation Gateway installed by the itential user
  # - "/home/itential/.local/lib/python3.9/site-packages/automation_gateway/integrations/playbooks"
  # Any installation method for Python, Automation Gateway installed inside of a virtualenv
  # - "/home/itential/automation-gateway/lib/python3.9/site-packages/automation_gateway/integrations/playbooks"

#################
# HTTP_Requests #
#################

# A boolean flag that enables HTTP_Requests support (default=True if absent/misconfigured).
http_requests_enabled: True

###########
# NETCONF #
###########

# A boolean flag that enables HTTP_Requests support (default=True if absent/misconfigured).
netconf_enabled: True

###########
# Netmiko #
###########

# A boolean flag that enables Netmiko support (default=False if absent/misconfigured).
netmiko_enabled: True

##########
# Nornir #
##########

# A boolean flag that enables Nornir support (default=False if absent/misconfigured).
nornir_enabled: True

# Path to the Nornir configuration file.
# A valid file will allows the use of Nornir External inventory.
nornir_config_file: "/opt/automation-gateway/nornir/config.yaml"

# Discovery behavior for Nornir modules. Determines whether or not to
# recursively search the directories found in the 'nornir_module_path' parameter, or
# to only search those directories and no deeper. (default=True if absent/misconfigured)
nornir_module_recursive: True

# Path(s) to the Nornir modules that should be discovered by Automation Gateway.
nornir_module_path:
  # Default location for custom content per the setup script
  - "/usr/share/nornir/modules"

###########
# Scripts #
###########

# A boolean flag that enables Scripts support (default=True if absent/misconfigured).
scripts_enabled: True

# Discovery behavior for standalone scripts. Determines whether or not to
# recursively search the directories found in the 'script_path' parameter, or
# to only search those directories and no deeper. (default=True if absent/misconfigured)
script_recursive: True

# Path(s) to the standalone scripts that should be discovered by Automation Gateway.
script_path:
  # Default location for custom content per the setup script
  - "/usr/share/scripts"
  # Legacy path for backwards compatibility
  - "/usr/share/ansible/scripts"

#############
# Terraform #
#############

# A boolean flag that enables Terraform support (default=False if absent/misconfigured).
terraform_enabled: True

# Discovery behavior for Terraform modules. Determines whether or not to
# recursively search the directories found in the 'terraform_path' parameter, or
# to only search those directories and no deeper. (default=True if absent/misconfigured)
terraform_recursive: True

# Path(s) to the Terraform modules that should be discovered by Automation Gateway.
terraform_path:
  # Default location for custom content per the setup script
  - "/usr/share/terraform"
  # Legacy path for backwards compatibility
  - "/usr/share/terraform/scripts"

###################
# Hashicorp Vault #
###################

# A flag that enables Hashicorp Vault support. (default=False if absent/misconfigured)
vault_enabled: False

# The URL to the Hashicorp Vault server.
#vault_server: "https://localhost:8200"

# The mount point on which the Hashicorp Vault KV-V2 secret engine is enabled.
#vault_mount_point: secret

# The path to a file containing the vault access token used by the AG Server for
# Hashicorp Vault operations. The file should be secured with 0400 permissions.
#vault_access_token: "/opt/automation-gateway/conf/.vault_token_file"

# A flag that enables TLS certificate verification when sending reqests to the Hashicorp
# Vault Server. (default=False if absent/misconfigured)
#vault_cert_verification: False

# The path to a CA (Certificate Authority) file.  This file is used to perform TLS certificate
# verification when sending requests to a Hashicorp Vault Server configured with a self-signed
# certificate. This parameter is not required when sending requests to a Hashicorp Vault Server
# configured with a certificate signed by a trusted authority.
#vault_ca_file: "/opt/automation-gateway/conf/certs/cert.pem"

# The path to a client certificate PEM file used for performing TLS authentication of the AG
# vault client with the Hashicorp Vault Server. Both a client certificate file and a key file
# must be configured for TLS authentication to be utilized.
#vault_client_cert_file: "/opt/automation-gateway/conf/certs/cert.pem"

# The path to a client key PEM file used for performing TLS authentication of the AG vault
# client with the Hashicorp Vault Server. Both a client certificate file and a key file
# must be configured for TLS authentication to be utilized.
#vault_client_key_file: "/opt/automation-gateway/conf/certs/key.pem"

###############
# IAG Connect #
###############

# The port on which iag-connect server will listen for requests.
iag_connect_port: 7083

# The API key used to authenticate with the iag-connect.
# This a 256 bits long SHA256 hash. You should replace it with your own key in production
# On Linux you can use `echo -n "your_secret_key" | sha256sum`
# On macOS you can use `echo -n "your_secret_key" | shasum -a 256`
iag_connect_api_key: "543ed2ff052fe0cdd8c15478732d35868ea6c498f82a876d1e77eba5c19eb028"

# File used to save established connections
iag_connect_data: "/opt/automation-gateway/data/connections.json"