community.network.ig_config module – Manage the configuration database on an Ingate SBC.
Note
This module is part of the community.network collection (version 3.3.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.network
.
To use it in a playbook, specify: community.network.ig_config
.
Requirements
The below requirements are needed on the host that executes this module.
ingatesdk >= 1.0.6
Parameters
Parameter |
Comments |
---|---|
Add a row to a table. Choices:
|
|
A dict object containing connection details. |
|
The hostname or IP address to the unit. |
|
The password for the REST API user. |
|
Which HTTP(S) port to connect to. |
|
Which HTTP protocol to use. Choices:
|
|
The timeout (in seconds) for REST API requests. |
|
The username of the REST API user. |
|
Verify the unit’s HTTPS certificate. Choices:
|
|
REST API version. Choices:
|
|
A dict containing column names/values. |
|
Delete all rows in a table or a specific row. Choices:
|
|
Download the configuration database from the unit. Choices:
|
|
Reset the preliminary configuration to its factory defaults. Choices:
|
|
The name of the file to store the downloaded configuration in. Refer to the |
|
Return all rows in a table or a specific row. Choices:
|
|
Modify a row in a table. Choices:
|
|
Expect no response when storing the preliminary configuration. Refer to the Choices:
|
|
Where in the filesystem to store the downloaded configuration. Refer to the |
|
Get rowid(s) from a table where the columns match. Choices:
|
|
Reset the preliminary configuration. Choices:
|
|
A row id. |
|
Store the preliminary configuration. Choices:
|
|
If the downloaded configuration should be stored on disk. Refer to the Choices:
|
|
The name of the table. |
Notes
Note
If
store_download
is set to True, andpath
andfilename
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
community.network.ig_config:
client: "{{ client_rw }}"
factory: true
register: result
- ansible.builtin.debug:
var: result
- name: Revert to last known applied configuration
community.network.ig_config:
client: "{{ client_rw }}"
revert: true
register: result
- ansible.builtin.debug:
var: result
- name: Change the unit name
community.network.ig_config:
client: "{{ client_rw }}"
modify: true
table: misc.unitname
columns:
unitname: "Test Ansible"
register: result
- ansible.builtin.debug:
var: result
- name: Add a DNS server
community.network.ig_config:
client: "{{ client_rw }}"
add: true
table: misc.dns_servers
columns:
server: 192.168.1.21
register: result
- ansible.builtin.debug:
var: result
- name: Add a DNS server
community.network.ig_config:
client: "{{ client_rw }}"
add: true
table: misc.dns_servers
columns:
server: 192.168.1.22
register: result
- ansible.builtin.debug:
var: result
- name: Add a DNS server
community.network.ig_config:
client: "{{ client_rw }}"
add: true
table: misc.dns_servers
columns:
server: 192.168.1.23
register: last_dns
- ansible.builtin.debug:
var: last_dns
- name: Modify the last added DNS server
community.network.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
- ansible.builtin.debug:
var: result
- name: Return the last added DNS server
community.network.ig_config:
client: "{{ client_rw }}"
get: true
table: misc.dns_servers
rowid: "{{ last_dns['add'][0]['id'] }}"
register: result
- ansible.builtin.debug:
var: result
- name: Remove last added DNS server
community.network.ig_config:
client: "{{ client_rw }}"
delete: true
table: misc.dns_servers
rowid: "{{ last_dns['add'][0]['id'] }}"
register: result
- ansible.builtin.debug:
var: result
- name: Return the all rows from table misc.dns_servers
community.network.ig_config:
client: "{{ client_rw }}"
get: true
table: misc.dns_servers
register: result
- ansible.builtin.debug:
var: result
- name: Remove remaining DNS servers
community.network.ig_config:
client: "{{ client_rw }}"
delete: true
table: misc.dns_servers
register: result
- ansible.builtin.debug:
var: result
- name: Get rowid for interface eth0
community.network.ig_config:
client: "{{ client_rw }}"
return_rowid: true
table: network.local_nets
columns:
interface: eth0
register: result
- ansible.builtin.debug:
var: result
- name: Store the preliminary configuration
community.network.ig_config:
client: "{{ client_rw }}"
store: true
register: result
- ansible.builtin.debug:
var: result
- name: Do backup of the configuration database
community.network.ig_config:
client: "{{ client_rw }}"
download: true
store_download: true
register: result
- ansible.builtin.debug:
var: result
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
A list containing information about the added row Returned: when |
|
Column names/values Returned: success Sample: {“number”: “2”, “server”: “10.48.254.33”} |
|
The REST API URL to the added row Returned: success |
|
The row id Returned: success Sample: 22 |
|
A list containing information about the deleted row(s) Returned: when |
|
Column names/values Returned: success Sample: {“number”: “2”, “server”: “10.48.254.33”} |
|
The row id Returned: success Sample: 22 |
|
The name of the table Returned: success Sample: “misc.dns_servers” |
|
Configuration database and meta data Returned: when |
|
The configuration database Returned: success |
|
A suggested name for the configuration Returned: success Sample: “testname_2018-10-01T214040.cfg” |
|
The mimetype Returned: success Sample: “application/x-config-database” |
|
A command status message Returned: when |
|
The command status message Returned: success Sample: “reverted the configuration to the factory configuration.” |
|
A list containing information about the row(s) Returned: when |
|
Column names/values Returned: success Sample: {“number”: “2”, “server”: “10.48.254.33”} |
|
The REST API URL to the row Returned: success |
|
The row id Returned: success Sample: 1 |
|
The name of the table Returned: success Sample: “Testname” |
|
A list containing information about the modified row Returned: when |
|
Column names/values Returned: success Sample: {“number”: “2”, “server”: “10.48.254.33”} |
|
The REST API URL to the modified row Returned: success |
|
The row id Returned: success Sample: 10 |
|
The name of the table Returned: success Sample: “Testname” |
|
The matched row id(s). Returned: when Sample: [1, 3] |
|
A command status message Returned: when |
|
The command status message Returned: success Sample: “reverted the configuration to the last applied configuration.” |
|
A command status message Returned: when |
|
The command status message Returned: success Sample: “Successfully applied and saved the configuration.” |
Authors
Ingate Systems AB (@ingatesystems)