From 1607eec32641ad93ea211e447336b3366c28de06 Mon Sep 17 00:00:00 2001 From: zsdc Date: Fri, 13 Nov 2020 23:20:41 +0200 Subject: User-Data: T2116: Added module to apply config commands at deployment With the new `cc_vyos_userdata.py` module is possible to set in User-Data (`#cloud-config`) new parameter `vyos_config_commands`. This parameter should be a list of VyOS configuration commands that will be applied during deployment. The module will run after the Meta-Data module `cc_vyos.py`. 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' ``` --- config/cloud.cfg.d/10_vyos.cfg | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'config') diff --git a/config/cloud.cfg.d/10_vyos.cfg b/config/cloud.cfg.d/10_vyos.cfg index 583c263c..da03d822 100644 --- a/config/cloud.cfg.d/10_vyos.cfg +++ b/config/cloud.cfg.d/10_vyos.cfg @@ -4,12 +4,7 @@ preserve_hostname: true # Do not change SSH password-based authentication settings ssh_pwauth: unchanged -# Example datasource config -# datasource: -# Ec2: -# metadata_urls: [ 'blah.com' ] -# timeout: 5 # (defaults to 50 seconds) -# max_wait: 10 # (defaults to 120 seconds) +# Configuring Azure datasource datasource: Azure: agent_command: [/usr/bin/python3, -u, /usr/sbin/waagent, -start] @@ -19,32 +14,31 @@ disable_vmware_customization: true # The modules that run in the 'init' stage cloud_init_modules: - - growpart - - resizefs_vyos + - growpart + - resizefs_vyos # The modules that run in the 'config' stage cloud_config_modules: - - vyos + - vyos + - vyos_userdata # The modules that run in the 'final' stage cloud_final_modules: - - runcmd - + - runcmd # System and/or distro specific settings # (not accessible to handlers/transforms) system_info: - # This will affect which distro class gets used - distro: debian - # Default user name + that default users groups (if added/used) - default_user: - name: vyos - # Other config here will be given to the distro class and/or path classes - paths: - cloud_dir: /opt/vyatta/etc/config/cloud/ - templates_dir: /etc/cloud/templates/ - upstart_dir: /etc/init/ - + # This will affect which distro class gets used + distro: debian + # Default user name + that default users groups (if added/used) + default_user: + name: vyos + # Other config here will be given to the distro class and/or path classes + paths: + cloud_dir: /opt/vyatta/etc/config/cloud/ + templates_dir: /etc/cloud/templates/ + upstart_dir: /etc/init/ # Set partitions info for the growpart module growpart: -- cgit v1.2.3