From 248b456255f831b27e458e2cd8bd0f449be11434 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Fri, 28 Jun 2019 15:52:22 +0200 Subject: [PATCH] [virtual] Add Ubuntu 18.04 (Bionic) basic support Support Ubuntu 18.04 for virtual deployments (and implicitly for VCP VMs). Note that MaaS-provisioned systems will require the same changes being applied via curtin templates. Change-Id: I7cbd7e7c4421f6b970ce6ef97c10d269fec5fca3 Signed-off-by: Alexandru Avadanii --- mcp/config/scenario/defaults.yaml.j2 | 40 ++++++++++++++++++++++++++++++++++++ mcp/scripts/lib_jump_deploy.sh | 18 ++++++++++++++++ mcp/scripts/user-data.sh.j2 | 5 +++++ 3 files changed, 63 insertions(+) diff --git a/mcp/config/scenario/defaults.yaml.j2 b/mcp/config/scenario/defaults.yaml.j2 index 5a9b4fd80..8864974ec 100644 --- a/mcp/config/scenario/defaults.yaml.j2 +++ b/mcp/config/scenario/defaults.yaml.j2 @@ -22,6 +22,26 @@ x86_64: - virtual_control_plane {%- endif %} {%- endif %} + ubuntu1804: + base_image: https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + common: + repo: + keys: + - https://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7/SALTSTACK-GPG-KEY.pub + repos: + # deb [arch=] + - saltstack 500 deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7 bionic main + pkg: + install: + - salt-minion + - ifupdown + - cloud-init + - dnsmasq + control: + repo: ~ + pkg: + install: + - cloud-init ubuntu1604: base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img common: @@ -64,6 +84,26 @@ aarch64: vcpus: 6 ram: 4096 cluster: *arch_default_cluster_states + ubuntu1804: + base_image: https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-arm64.img + common: + repo: + keys: + - https://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7/SALTSTACK-GPG-KEY.pub + repos: + # deb [arch=] + - saltstack 500 deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/18.04/amd64/2017.7 bionic main + pkg: + install: + - salt-minion + - ifupdown + - cloud-init + - dnsmasq + control: + repo: ~ + pkg: + install: + - cloud-init ubuntu1604: base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-uefi1.img common: diff --git a/mcp/scripts/lib_jump_deploy.sh b/mcp/scripts/lib_jump_deploy.sh index 937071001..d3ccd6e69 100644 --- a/mcp/scripts/lib_jump_deploy.sh +++ b/mcp/scripts/lib_jump_deploy.sh @@ -152,6 +152,24 @@ function __mount_image { sudo mount -t proc proc "${OPNFV_MNT_DIR}/proc" sudo mount -t sysfs sys "${OPNFV_MNT_DIR}/sys" sudo mount -o bind /dev "${OPNFV_MNT_DIR}/dev" + if [[ "${MCP_OS:-}" =~ ubuntu1804 ]]; then + # Ubuntu Bionic (18.04) or newer defaults to using netplan.io, revert it + sudo mkdir -p "${OPNFV_MNT_DIR}/run/systemd/resolve" + sudo cp -f --remove-destination /etc/resolv.conf \ + "${OPNFV_MNT_DIR}/run/systemd/resolve/stub-resolv.conf" + sudo chroot "${OPNFV_MNT_DIR}" systemctl stop \ + systemd-networkd.socket systemd-networkd \ + networkd-dispatcher systemd-networkd-wait-online systemd-resolved + sudo chroot "${OPNFV_MNT_DIR}" systemctl disable \ + systemd-networkd.socket systemd-networkd \ + networkd-dispatcher systemd-networkd-wait-online systemd-resolved + sudo chroot "${OPNFV_MNT_DIR}" systemctl mask \ + systemd-networkd.socket systemd-networkd \ + networkd-dispatcher systemd-networkd-wait-online systemd-resolved + sudo chroot "${OPNFV_MNT_DIR}" apt --assume-yes purge nplan netplan.io + echo "source /etc/network/interfaces.d/*" | \ + sudo tee "${OPNFV_MNT_DIR}/etc/network/interfaces" + fi sudo cp -f --remove-destination \ /etc/resolv.conf "${OPNFV_MNT_DIR}/etc/resolv.conf" echo "GRUB_DISABLE_OS_PROBER=true" | \ diff --git a/mcp/scripts/user-data.sh.j2 b/mcp/scripts/user-data.sh.j2 index f568164c1..8b80e32d0 100644 --- a/mcp/scripts/user-data.sh.j2 +++ b/mcp/scripts/user-data.sh.j2 @@ -11,5 +11,10 @@ rm -f /etc/salt/minion_id /etc/salt/pki/minion/minion_master.pub echo "id: $(hostname).{{ conf.cluster.domain }}" > /etc/salt/minion echo "master: {{ nm.net_admin | ipnet_hostaddr(nm.start_ip[nm.net_admin] + nm.net_admin_hosts.index('opnfv_infra_config_pxe_admin_address') +1) }}" >> /etc/salt/minion ldconfig +{%- if 'ubuntu1804' in conf.MCP_OS %} +systemctl unmask networking.service || true +systemctl enable networking.service || true +systemctl start networking.service || true +{%- endif %} systemctl enable salt-minion.service systemctl restart salt-minion.service -- 2.16.6