ig_config – Manage the configuration database on an Ingate SBC

New in version 2.8.

Synopsis

  • Manage the configuration database on an Ingate SBC.

Requirements

The below requirements are needed on the host that executes this module.

  • ingatesdk >= 1.0.6

Parameters

Parameter Choices/Defaults Comments
add
boolean
    Choices:
  • no
  • yes
Add a row to a table.
client
-
A dict object containing connection details.
address
string / required
The hostname or IP address to the unit.
password
string / required
The password for the REST API user.
port
integer
Which HTTP(S) port to connect to.
scheme
string / required
    Choices:
  • http
  • https
Which HTTP protocol to use.
timeout
integer
The timeout (in seconds) for REST API requests.
username
string / required
The username of the REST API user.
validate_certs
boolean
    Choices:
  • no
  • yes ←
Verify the unit's HTTPS certificate.

aliases: verify_ssl
version
string
    Choices:
  • v1 ←
REST API version.
columns
-
A dict containing column names/values.
delete
boolean
    Choices:
  • no
  • yes
Delete all rows in a table or a specific row.
download
boolean
    Choices:
  • no
  • yes
Download the configuration database from the unit.
factory
boolean
    Choices:
  • no
  • yes
Reset the preliminary configuration to its factory defaults.
filename
-
The name of the file to store the downloaded configuration in. Refer to the download option.
get
boolean
    Choices:
  • no
  • yes
Return all rows in a table or a specific row.
modify
boolean
    Choices:
  • no
  • yes
Modify a row in a table.
no_response
boolean
    Choices:
  • no
  • yes
Expect no response when storing the preliminary configuration. Refer to the store option.
path
-
Where in the filesystem to store the downloaded configuration. Refer to the download option.
return_rowid
boolean
    Choices:
  • no
  • yes
Get rowid(s) from a table where the columns match.
revert
boolean
    Choices:
  • no
  • yes
Reset the preliminary configuration.
rowid
integer
A row id.
store
boolean
    Choices:
  • no
  • yes
Store the preliminary configuration.
store_download
boolean
    Choices:
  • no ←
  • yes
If the downloaded configuration should be stored on disk. Refer to the download option.
table
-
The name of the table.

Notes

Note

  • If store_download is set to True, and path and filename is omitted, the file will be stored in the current directory with an automatic filename.

  • This module requires that the Ingate Python SDK is installed on the host. To install the SDK use the pip command from your shell pip install ingatesdk.

Examples

- name: Add/remove DNS servers
  hosts: 192.168.1.1
  connection: local
  vars:
    client_rw:
      version: v1
      address: "{{ inventory_hostname }}"
      scheme: http
      username: alice
      password: foobar
  tasks:

  - name: Load factory defaults
    ig_config:
      client: "{{ client_rw }}"
      factory: true
    register: result
  - debug:
      var: result

  - name: Revert to last known applied configuration
    ig_config:
      client: "{{ client_rw }}"
      revert: true
    register: result
  - debug:
      var: result

  - name: Change the unit name
    ig_config:
      client: "{{ client_rw }}"
      modify: true
      table: misc.unitname
      columns:
        unitname: "Test Ansible"
    register: result
  - debug:
      var: result

  - name: Add a DNS server
    ig_config:
      client: "{{ client_rw }}"
      add: true
      table: misc.dns_servers
      columns:
        server: 192.168.1.21
    register: result
  - debug:
      var: result

  - name: Add a DNS server
    ig_config:
      client: "{{ client_rw }}"
      add: true
      table: misc.dns_servers
      columns:
        server: 192.168.1.22
    register: result
  - debug:
      var: result

  - name: Add a DNS server
    ig_config:
      client: "{{ client_rw }}"
      add: true
      table: misc.dns_servers
      columns:
        server: 192.168.1.23
    register: last_dns
  - debug:
      var: last_dns

  - name: Modify the last added DNS server
    ig_config:
      client: "{{ client_rw }}"
      modify: true
      table: misc.dns_servers
      rowid: "{{ last_dns['add'][0]['id'] }}"
      columns:
        server: 192.168.1.24
    register: result
  - debug:
      var: result

  - name: Return the last added DNS server
    ig_config:
      client: "{{ client_rw }}"
      get: true
      table: misc.dns_servers
      rowid: "{{ last_dns['add'][0]['id'] }}"
    register: result
  - debug:
      var: result

  - name: Remove last added DNS server
    ig_config:
      client: "{{ client_rw }}"
      delete: true
      table: misc.dns_servers
      rowid: "{{ last_dns['add'][0]['id'] }}"
    register: result
  - debug:
      var: result

  - name: Return the all rows from table misc.dns_servers
    ig_config:
      client: "{{ client_rw }}"
      get: true
      table: misc.dns_servers
    register: result
  - debug:
      var: result

  - name: Remove remaining DNS servers
    ig_config:
      client: "{{ client_rw }}"
      delete: true
      table: misc.dns_servers
    register: result
  - debug:
      var: result

  - name: Get rowid for interface eth0
    ig_config:
      client: "{{ client_rw }}"
      return_rowid: true
      table: network.local_nets
      columns:
        interface: eth0
    register: result
  - debug:
      var: result

  - name: Store the preliminary configuration
    ig_config:
      client: "{{ client_rw }}"
      store: true
    register: result
  - debug:
      var: result

  - name: Do backup of the configuration database
    ig_config:
      client: "{{ client_rw }}"
      download: true
      store_download: true
    register: result
  - debug:
      var: result

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
add
complex
when add is yes and success
A list containing information about the added row

 
data
complex
success
Column names/values

Sample:
{'number': '2', 'server': '10.48.254.33'}
 
href
string
success
The REST API URL to the added row

Sample:
http://192.168.1.1/api/v1/misc/dns_servers/2
 
id
integer
success
The row id

Sample:
22
delete
complex
when delete is yes and success
A list containing information about the deleted row(s)

 
data
complex
success
Column names/values

Sample:
{'number': '2', 'server': '10.48.254.33'}
 
id
integer
success
The row id

Sample:
22
 
table
string
success
The name of the table

Sample:
misc.dns_servers
download
complex
when download is yes and success
Configuration database and meta data

 
config
string
success
The configuration database

 
filename
string
success
A suggested name for the configuration

Sample:
testname_2018-10-01T214040.cfg
 
mimetype
string
success
The mimetype

Sample:
application/x-config-database
factory
complex
when factory is yes and success
A command status message

 
msg
string
success
The command status message

Sample:
reverted the configuration to the factory configuration.
get
complex
when get is yes and success
A list containing information about the row(s)

 
data
complex
success
Column names/values

Sample:
{'number': '2', 'server': '10.48.254.33'}
 
href
string
success
The REST API URL to the row

Sample:
http://192.168.1.1/api/v1/misc/dns_servers/1
 
id
integer
success
The row id

Sample:
1
 
table
string
success
The name of the table

Sample:
Testname
modify
complex
when modify is yes and success
A list containing information about the modified row

 
data
complex
success
Column names/values

Sample:
{'number': '2', 'server': '10.48.254.33'}
 
href
string
success
The REST API URL to the modified row

Sample:
http://192.168.1.1/api/v1/misc/dns_servers/1
 
id
integer
success
The row id

Sample:
10
 
table
string
success
The name of the table

Sample:
Testname
return_rowid
list
when return_rowid is yes and success
The matched row id(s).

Sample:
[1, 3]
revert
complex
when revert is yes and success
A command status message

 
msg
string
success
The command status message

Sample:
reverted the configuration to the last applied configuration.
store
complex
when store is yes and success
A command status message

 
msg
string
success
The command status message

Sample:
Successfully applied and saved the configuration.


Status

Authors

  • Ingate Systems AB (@ingatesystems)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.