- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# ig_config – Manage the configuration database on an Ingate SBC

New in version 2.8.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## 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

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Ingate Systems AB (@ingatesystems)

Hint

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