* F #227: Update network context
- Rework support for DHCP and DHCP6
- Support new context ETH?_METHOD and ETH?_IP6_METHOD
- Add new loc-10-network netcfg interface: initialize_network
- Wipe out stale netcfg configs to avoid conflicts
- Add reference links for some workarounds
- Fix shellcheck
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Let networkd to use default for IPv6
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Improve cleanup in initialize_network
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Fix Network Manager reconfiguration
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* M #-: Update systemd service descriptions
* F #227: Adapt FreeBSD, support live reconfiguration
* B #239: Use systemctl --no-block in udev on Debian-like
* F #227: Fix unmanaged-devices with NM on ubuntu
Instead of touching 10-globally-managed-devices.conf during netcfg-nm
script we are shipping the file as part of the package. The reason is
that this file must be in place *BEFORE* Network Manager daemon is
started and reload is not sufficiant (read: it does not work). Other
option would be to restarting NM instead of reloading but that would
ifup/down all interfaces which is not a desired behavior especially if
those are in use (recontextualization).
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Improve cleanup for NM
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Fix initialize_network usage and cleanup
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Workaround FreeBSD emul. NIC attach, manage rtsold
* F #227: Fix is_true argument usage
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Improve NM reconfigure
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Fix NM and networkd reconfiguration
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* F #227: Fix netplan's issue with empty stanzas
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
* B #239: Use abs. path /bin/systemctl in Debian-like udev
Closes#239
Co-authored-by: Vlastimil Holer <vholer@opennebula.io>
Periodically runs one-context-reconfigure to poll for changes
in vCenter context metadata to apply. Implemented via:
- systemd timer conditionally started only on vCenter
- cron job which checks for vmware and triggers service on non-systemd
Closes#185
Also enables support for Alpine post-upgrade script with warning
if it's necessary to run update-conf to apply new version of files
in /etc:
```
...
Executing one-context-6.1.80-r0.20210809gitbcd3c5b.post-upgrade
WARNING: Run update-conf to process any updated one-context files in /etc!
Executing busybox-1.33.1-r2.trigger
Executing eudev-3.2.10-r0.trigger
OK: 148 MiB in 118 packages
$ update-conf -l
//etc/one-context.d/loc-09-timezone
//etc/one-context.d/loc-30-console
//etc/one-context.d/loc-10-network
//etc/one-context.d/loc-16-gen-env
```
Closes#163
- Use one script loc-10-network for all systems
- Deduplicate and cleanup the code
- Create a source file with functions
- Remove usage of global variables while using shared functions
- Add support for different network configuration via new context
parameter: CONTEXT_NETCFG_TYPE
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
The default 'awk' _alternative_ on the Debian is an old mawk of version
1.3.3 with plenty of bugs and problems. One of them is the lack of
support for POSIX regex character classes which old mawk does not know
despite the fact that it does advertise a support for extended regex (as
egrep for example).
This was reported and fixed in 2009 with version of 1.3.4 but Debian is
still using the old unfixed version 1.3.3:
https://bugs.launchpad.net/ubuntu/+source/mawk/+bug/69724
This commit workaround this issue by simple test and possible abort if
the usage of an incompatible awk implementation is unreasonable - user
choice.
Note: Currently just only two optional (non-default) tests are skipped
due to this issue.
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
Because MOUNT_DIR can be different than real MOUNT_DIR,
so we would need to pass it to realpath. Which is not on
some legacy systems like RHEL 6 or Ubuntu 14.04.
- In case the CD-ROM is not mounted "glabel status | grep CONTEXT | awk '{print $3}'"
will have a null string which will eventually assign the value "/dev/" to "dev_context"
variable. In later occasions while existence of "dev_context" is checked it will
always return true and no elif conditions will be executed. Add additional glabel check
for BSD.
- In case the CD-ROM is not mounted and used there is nothing to unmount and eventually
trying to unmount will throw error. So add an additional check to see if "MOUNT_DIR" is
used as any mount points or not.
Add new context variable 'GROW_FS' which can contain list of directories
(mount-points) separated by spaces.
If GROW_ROOTFS is set to 'YES' then the rootfs will be added in the case
when GROW_FS does not contain '/'.
NOTE: The image has to have the disk name(s) - the underlying device(s)
which are mounted - to follow the simple scheme <name>[<part>] where
name cannot contain any numeric and the part must be only a numeric,
e.g.: /dev/sda1
(Arbitrary disk names are not supported, e.g.: /dev/mapper/luks-1234)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
Introduce new OpenNebula directory /var/lib/one-context where a new tmp
directory is located. This new one will not be mounted with noexec
option on any system by default.
Add cleanup handler on the script exit and ensure the correct return
code for the init scripts (if one or more fail then return non-zero).
Update onesysprep and set its version by generate.sh script.
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
ifupdown2 is an alternative to classic ifupdown
https://github.com/CumulusNetworks/ifupdown2
It's allow to reload online network configuration with dependencies
and 100% compatible with classic ifupdown1 config.
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>