summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Hoffmann <conrad@soundcloud.com>2019-10-01 20:43:29 +0000
committerServer Team CI Bot <josh.powers+server-team-bot@canonical.com>2019-10-01 20:43:29 +0000
commit5d5a32e039782ce3e1c0843082fe26260fa9273a (patch)
treefe4aeb1469e51499a1a9f2164cb27aad11ba423e
parent067516d7bc917e4921b9f1424b7a64e92cae0ad2 (diff)
downloadvyos-cloud-init-5d5a32e039782ce3e1c0843082fe26260fa9273a.tar.gz
vyos-cloud-init-5d5a32e039782ce3e1c0843082fe26260fa9273a.zip
Add support for Arch Linux in render-cloudcfg
 - Detect Arch Linux and set variant accordingly in `system_info()`  - Allow setting render-cloudcfg variant parameter to 'arch'  - Adjust some basic settings for Arch Linux in the cloud.cfg.tmpl The template might need some additional Arch-specific tweaks in the future, but at least for now the generated config works and contains the most relevant modules. Also: - Sort distro variant lists when adding Arch - Add debian to known variants in render-cloudcfg
-rw-r--r--cloudinit/util.py3
-rw-r--r--config/cloud.cfg.tmpl6
-rwxr-xr-xtools/render-cloudcfg3
3 files changed, 8 insertions, 4 deletions
diff --git a/cloudinit/util.py b/cloudinit/util.py
index 6e8e73b0..0d338ca7 100644
--- a/cloudinit/util.py
+++ b/cloudinit/util.py
@@ -656,7 +656,8 @@ def system_info():
var = 'unknown'
if system == "linux":
linux_dist = info['dist'][0].lower()
- if linux_dist in ('centos', 'debian', 'fedora', 'rhel', 'suse'):
+ if linux_dist in (
+ 'arch', 'centos', 'debian', 'fedora', 'rhel', 'suse'):
var = linux_dist
elif linux_dist in ('ubuntu', 'linuxmint', 'mint'):
var = 'ubuntu'
diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl
index 684c7473..87c37ba0 100644
--- a/config/cloud.cfg.tmpl
+++ b/config/cloud.cfg.tmpl
@@ -137,7 +137,7 @@ cloud_final_modules:
# (not accessible to handlers/transforms)
system_info:
# This will affect which distro class gets used
-{% if variant in ["centos", "debian", "fedora", "rhel", "suse", "ubuntu", "freebsd"] %}
+{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu"] %}
distro: {{ variant }}
{% else %}
# Unknown/fallback distro.
@@ -185,7 +185,7 @@ system_info:
primary: http://ports.ubuntu.com/ubuntu-ports
security: http://ports.ubuntu.com/ubuntu-ports
ssh_svcname: ssh
-{% elif variant in ["centos", "rhel", "fedora", "suse"] %}
+{% elif variant in ["arch", "centos", "fedora", "rhel", "suse"] %}
# Default user name + that default users groups (if added/used)
default_user:
name: {{ variant }}
@@ -193,6 +193,8 @@ system_info:
gecos: {{ variant }} Cloud User
{% if variant == "suse" %}
groups: [cdrom, users]
+{% elif variant == "arch" %}
+ groups: [wheel, users]
{% else %}
groups: [wheel, adm, systemd-journal]
{% endif %}
diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg
index 0957c324..a441f4ff 100755
--- a/tools/render-cloudcfg
+++ b/tools/render-cloudcfg
@@ -4,7 +4,8 @@ import argparse
import os
import sys
-VARIANTS = ["freebsd", "centos", "fedora", "rhel", "suse", "ubuntu", "unknown"]
+VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse",
+ "ubuntu", "unknown"]
if "avoid-pep8-E402-import-not-top-of-file":
_tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))