ingatesystems.fuego_modules.fuego_system – Manage system near functionality such as licenses, patches and upgrades on an Ingate SBC.

Note

This plugin is part of the ingatesystems.fuego_modules collection (version 1.1.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 ingatesystems.fuego_modules.

To use it in a playbook, specify: ingatesystems.fuego_modules.fuego_system.

New in version 1.0.0: of ingatesystems.fuego_modules

Synopsis

  • Manage system near functionality such as licenses, patches and upgrades on an Ingate SBC.

Requirements

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

  • ingatesdk >= 1.0.14

Parameters

Parameter

Comments

client

dictionary / required

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

Which HTTP protocol to use.

Choices:

  • http

  • https

timeout

integer

The timeout (in seconds) for REST API requests.

username

string / required

The username of the REST API user.

validate_certs

aliases: verify_ssl

boolean

Verify the unit’s HTTPS certificate.

Choices:

  • no

  • yes ← (default)

version

string

REST API version.

Choices:

  • v1 ← (default)

filename

string

Path to a valid Ingate patch or upgrade file.

flush_logins

boolean

added in 1.1.0 of ingatesystems.fuego_modules

Log out all logged in admin users.

Choices:

  • no

  • yes

latest

boolean

Upgrade to the latest available version.

Choices:

  • no

  • yes

latest_major

boolean

Upgrade to the latest major level.

Choices:

  • no

  • yes

latest_minor

boolean

Upgrade to the latest minor level.

Choices:

  • no

  • yes

latest_patch

boolean

Upgrade to the latest patch level.

Choices:

  • no

  • yes

liccode

string

The license code (e.g. KRJM-Q625-FUVG). Must be set for license.

license

boolean

Download and install a license.

Choices:

  • no

  • yes

mode

string

The operational mode.

Choices:

  • siparator

  • firewall

opmode

boolean

Set mode to siparator or firewall.

Choices:

  • no

  • yes

password

string

Password for account login on ingate.com. Must be set for license and upgrade_download.

patch

boolean

Install a patch.

Choices:

  • no

  • yes

reboot

boolean

Reboot the unit.

Choices:

  • no

  • yes

restart_sip

boolean

added in 1.1.0 of ingatesystems.fuego_modules

Restart the SIP module and remove all state, like registrations etc.

Choices:

  • no

  • yes

upgrade

boolean

Install a firmware upgrade.

Choices:

  • no

  • yes

upgrade_abort

boolean

Abort an upgrade after an upgrade has been installed.

Choices:

  • no

  • yes

upgrade_accept

boolean

Accept an upgrade after an upgrade has been installed.

Choices:

  • no

  • yes

upgrade_downgrade

boolean

Downgrade from a previously installed upgrade.

Choices:

  • no

  • yes

upgrade_download

boolean

Download and install a firmware upgrade. The upgrade(s) will be downloaded from the Ingate Websystem. You can upgrade to the latest patch, minor or major version. You can also specify a desired version that is available in the respective level.

Choices:

  • no

  • yes

username

string

Username for account login on ingate.com. Must be set for license and upgrade_download.

version

string

The the desired version to upgrade to.

Notes

Note

  • The methods patch and upgrade_download assumes that the the preliminary configuration has been stored to the permanent configuration at least once (see module fuego_config store method).

  • For the methods license and upgrade_download the Ansible host needs Internet connectivity.

  • When using the the upgrade method the unit will reboot and you need to do upgrade accept or upgrade_abort.

  • When changing operational mode using opmode, a reboot is required in order for the change to take effect.

  • 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

# Install a license
- fuego_system:
    client: "{{ stored_client_data }}"
    license: true
    username: myusername
    password: mypassword
    liccode: 2STW-2UL8-JWJD

# Install a patch
- fuego_system:
    client: "{{ stored_client_data }}"
    patch: true
    filename: patch-6.2.1-rc2-vm2.fup

# Install an upgrade
- fuego_system:
    client: "{{ stored_client_data }}"
    upgrade: true
    filename: fupgrade.fup.any

# Accept an upgrade
- fuego_system:
    client: "{{ stored_client_data }}"
    upgrade_accept: true

# Abort an upgrade
- fuego_system:
    client: "{{ stored_client_data }}"
    upgrade_abort: true

# Downgrade an upgrade
- fuego_system:
    client: "{{ stored_client_data }}"
    upgrade_downgrade: true

# Upgrade to the latest version available
- fuego_system:
    client: "{{ stored_client_data }}"
    upgrade_download: true
    username: myusername
    password: mypassword
    latest: true

# Change the operational mode to Siparator
- fuego_system:
    client: "{{ stored_client_data }}"
    opmode: true
    mode: siparator

# Reboot the unit
- fuego_system:
    client: "{{ stored_client_data }}"
    reboot: true

# Restart the SIP module
- fuego_system:
    client: "{{ stored_client_data }}"
    restart_sip: true

# Log out all logged in admin users
- fuego_system:
    client: "{{ stored_client_data }}"
    flush_logins: true

Return Values

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

Key

Description

flush_logins

dictionary

A command status message

Returned: when flush_logins is yes and success

msg

string

The command status message

Returned: success

Sample: “Successfully flushed all logins.”

license

list / elements=dictionary

A list of information about the installed license.

Returned: when license is yes and success

msg

string

Information regarding the installed license.

Returned: success

Sample: “Install a Base license.”

opmode

dictionary

A command status message

Returned: when opmode is yes and success

msg

string

The command status message

Returned: success

Sample: “Operational mode set to siparator.”

patch

string

Information about the installed patch.

Returned: when patch is yes and success

msg

string

Patch information.

Returned: success

Sample: “Installed the patch patch-6.2.0-apipatch-1.fup (Test REST API 1).”

reboot

dictionary

A command status message

Returned: when reboot is yes and success

msg

string

The command status message

Returned: success

Sample: “Rebooting the unit now…”

restart_sip

dictionary

A command status message

Returned: when restart_sip is yes and success

msg

string

The command status message

Returned: success

Sample: “Successfully restarted the SIP module.”

upgrade

dictionary

A command status message

Returned: when upgrade is yes and success

msg

string

The command status message

Returned: success

Sample: “Rebooting with new version. Please contact the unit again once it has rebooted.”

upgrade_abort

dictionary

A command status message

Returned: when upgrade_abort is yes and success

msg

string

The command status message

Returned: success

Sample: “The upgrade has been removed. Rebooting..”

upgrade_accept

dictionary

A command status message

Returned: when upgrade_accept is yes and success

msg

string

The command status message

Returned: success

Sample: “Made the upgrade permanent.”

upgrade_downgrade

dictionary

A command status message

Returned: when upgrade_downgrade is yes and success

msg

string

The command status message

Returned: success

Sample: “Downgrade in progress (6.2.0). Rebooting…”

upgrade_download

dictionary

A command status message

Returned: when upgrade_download is yes and success

msg

string

The command status message

Returned: success

Sample: “Your unit is upgraded to the latest version (6.2.2)”

Authors

  • Ingate Systems AB (@ingatesystems)