Page MenuHomeVyOS Platform

Processing configuration via Cloud-init User-Data
Closed, ResolvedPublicFEATURE REQUEST

Description

There are many requests for pre-configuration functionality (during deployment), including complex configs, not only basic IP addresses and credentials, available via Cloud-init now.
One of the most universal and flexible way for this could be using User-Data for Cloud-init, as it allows to add almost any kind of data into the system during deployment, even self-handled scripts, and has support for almost all platforms out of the box, so we do not need to worry about fetching data, only for processing.

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Feature (new functionality)

Event Timeline

zsdc changed the task status from Open to In progress.Mar 10 2020, 9:58 AM
zsdc claimed this task.
zsdc created this task.
zsdc moved this task from Need Triage to In Progress on the VyOS 1.3 Equuleus board.
zsdc changed the task status from In progress to Needs testing.Mar 24 2020, 12:08 PM

After the testing with a standalone User-Data handler, this feature was ported to the main cloud-init package in https://github.com/vyos/vyos-cloud-init/pull/27.
Currently, supported only set and delete commands processing. They must be provided as a list in the vyos_config_commands option.

Commands requirements:

  • one command per line
  • if command ending by value, it must be inside single quotes: set some option 'value', delete some option 'value'
  • a single-quote symbol is not allowed inside command or value

    The commands list produced by the show configuration commands command on a VyOS router should comply with all the requirements, so it is easy to get a proper commands list by copying it from another router.

Usage example (User-Data content):

#cloud-config
vyos_config_commands:
  - set system host-name 'demo123'
  - set system ntp server 1.pool.ntp.org
  - set system ntp server 2.pool.ntp.org
  - delete interfaces ethernet eth2 address
  - set interfaces ethernet eth2 address '192.0.2.1/24'
erkin set Issue type to Feature (new functionality).Aug 31 2021, 5:22 PM