This change adds support for installing and updating openSUSE Leap 15.1 using lcilool. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- guests/configs/autoinst.xml | 77 +++++++++++++++++++ .../host_vars/libvirt-opensuse-151/docker.yml | 2 + .../libvirt-opensuse-151/install.yml | 2 + .../host_vars/libvirt-opensuse-151/main.yml | 10 +++ guests/inventory | 1 + guests/lcitool | 2 + guests/playbooks/update/tasks/base.yml | 15 ++++ guests/vars/mappings.yml | 38 ++++++++- 8 files changed, 143 insertions(+), 4 deletions(-) diff --git a/guests/configs/autoinst.xml b/guests/configs/autoinst.xml new file mode 100644 index 0000000..f8ec3df --- /dev/null +++ b/guests/configs/autoinst.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<!DOCTYPE profile> +<profile + xmlns="http://www.suse.com/1.0/yast2ns" + xmlns:config="http://www.suse.com/1.0/configns"> + <general> + <mode> + <confirm config:type="boolean">false</confirm> + <second_stage config:type="boolean">false</second_stage> + </mode> + </general> + <partitioning config:type="list"> + <drive> + <device>/dev/vda</device> + <use>all</use> + <partitions config:type="list"> + <partition> + <filesystem config:type="symbol">swap</filesystem> + <size>256M</size> + <mount>swap</mount> + </partition> + <partition> + <filesystem config:type="symbol">ext4</filesystem> + <mount>/</mount> + <size>max</size> + </partition> + </partitions> + </drive> + </partitioning> + <bootloader> + <global> + <terminal>console serial</terminal> + </global> + </bootloader> + <timezone> + <hwclock>UTC</hwclock> + <timezone>UTC</timezone> + </timezone> + <software> + <install_recommended config:type="boolean">false</install_recommended> + <products config:type="list"> + <product>openSUSE</product> + </products> + <patterns config:type="list"> + <pattern>base</pattern> + <pattern>minimal_base</pattern> + <pattern>yast2_basis</pattern> + </patterns> + <packages config:type="list"> + <package>openssh</package> + <package>hostname</package> + </packages> + </software> + <networking> + <keep_install_network config:type="boolean">true</keep_install_network> + </networking> + <users config:type="list"> + <user> + <username>root</username> + <user_password>root</user_password> + <encrypted config:type="boolean">false</encrypted> + <uid>0</uid> + <gid>0</gid> + <home>/root</home> + <shell>/bin/bash</shell> + </user> + </users> + <services-manager> + <default_target>multi-user</default_target> + <services config:type="list"> + <service> + <service_name>sshd</service_name> + <service_status>enable</service_status> + </service> + </services> + </services-manager> +</profile> diff --git a/guests/host_vars/libvirt-opensuse-151/docker.yml b/guests/host_vars/libvirt-opensuse-151/docker.yml new file mode 100644 index 0000000..6ba7adb --- /dev/null +++ b/guests/host_vars/libvirt-opensuse-151/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: opensuse/leap:15.1 diff --git a/guests/host_vars/libvirt-opensuse-151/install.yml b/guests/host_vars/libvirt-opensuse-151/install.yml new file mode 100644 index 0000000..d0fdbe5 --- /dev/null +++ b/guests/host_vars/libvirt-opensuse-151/install.yml @@ -0,0 +1,2 @@ +--- +install_url: http://download.opensuse.org/distribution/leap/15.1/repo/oss/ diff --git a/guests/host_vars/libvirt-opensuse-151/main.yml b/guests/host_vars/libvirt-opensuse-151/main.yml new file mode 100644 index 0000000..f422a9e --- /dev/null +++ b/guests/host_vars/libvirt-opensuse-151/main.yml @@ -0,0 +1,10 @@ +--- +projects: + - libvirt + +package_format: 'rpm' +package_manager: 'zypper' +os_name: 'OpenSUSE' +os_version: '151' + +ansible_python_interpreter: /usr/bin/python3 diff --git a/guests/inventory b/guests/inventory index 3b15513..f1f7708 100644 --- a/guests/inventory +++ b/guests/inventory @@ -8,5 +8,6 @@ libvirt-fedora-rawhide libvirt-freebsd-11 libvirt-freebsd-12 libvirt-freebsd-current +libvirt-opensuse-151 libvirt-ubuntu-16 libvirt-ubuntu-18 diff --git a/guests/lcitool b/guests/lcitool index d617beb..8436ce7 100755 --- a/guests/lcitool +++ b/guests/lcitool @@ -531,6 +531,8 @@ class Application: install_config = "preseed.cfg" elif facts["os_name"] in ["CentOS", "Fedora"]: install_config = "kickstart.cfg" + elif facts["os_name"] == "OpenSUSE": + install_config = "autoinst.xml" else: raise Exception( "Host {} doesn't support installation".format(host) diff --git a/guests/playbooks/update/tasks/base.yml b/guests/playbooks/update/tasks/base.yml index 3d83e78..be4ae21 100644 --- a/guests/playbooks/update/tasks/base.yml +++ b/guests/playbooks/update/tasks/base.yml @@ -65,12 +65,27 @@ when: - package_format == 'pkg' +- name: Update installed packages + command: '{{ package_manager }} update -y -l --force-resolution --no-recommends' + args: + warn: no + when: + - os_name == 'OpenSUSE' + - name: Clean up packages after update shell: '{{ package_manager }} clean packages -y && {{ package_manager }} autoremove -y' args: warn: no when: - package_format == 'rpm' + - os_name != "OpenSUSE" + +- name: Clean up packages after update + shell: '{{ package_manager }} clean' + args: + warn: no + when: + - os_name == "OpenSUSE" - name: Clean up packages after update apt: diff --git a/guests/vars/mappings.yml b/guests/vars/mappings.yml index f5dab6a..fce2028 100644 --- a/guests/vars/mappings.yml +++ b/guests/vars/mappings.yml @@ -19,10 +19,10 @@ # - deb, pkg, rpm # # Valid OS names are: -# - CentOS, Debian, Fedora, FreeBSD, Ubuntu +# - CentOS, Debian, Fedora, FreeBSD, OpenSUSE, Ubuntu # # Valid OS versions are: -# - CentOS7, Debian9, FedoraRawhide, Ubuntu18 and so on +# - CentOS7, Debian9, FedoraRawhide, OpenSUSE151, Ubuntu18 and so on # # The arch specific rules use a prefix "$ARCH-" where $ARCH # is a libvirt arch name. @@ -70,6 +70,7 @@ mappings: apparmor: deb: libapparmor-dev + OpenSUSE: libapparmor-devel cross-policy-deb: foreign augeas: @@ -117,6 +118,7 @@ mappings: cppi: Fedora: cppi FreeBSD: cppi + OpenSUSE: cppi cyrus-sasl: deb: libsasl2-dev @@ -127,6 +129,7 @@ mappings: dbus-daemon: default: dbus Fedora: dbus-daemon + OpenSUSE: dbus-1 device-mapper: deb: libdevmapper-dev @@ -196,6 +199,7 @@ mappings: deb: libglusterfs-dev rpm: glusterfs-api-devel Debian9: glusterfs-common + OpenSUSE: glusterfs-devel Ubuntu16: glusterfs-common Ubuntu18: glusterfs-common cross-policy-deb: foreign @@ -204,6 +208,7 @@ mappings: deb: libgnutls28-dev pkg: gnutls rpm: gnutls-devel + OpenSUSE: libgnutls-devel cross-policy-deb: foreign go: @@ -228,6 +233,7 @@ mappings: gtk-update-icon-cache: default: gtk-update-icon-cache + OpenSUSE: gtk3-tools Ubuntu16: libgtk2.0-bin gtk-vnc2: @@ -248,14 +254,17 @@ mappings: ip: deb: iproute2 rpm: iproute + OpenSUSE: iproute2 iscsiadm: deb: open-iscsi rpm: iscsi-initiator-utils + OpenSUSE: open-iscsi isoinfo: default: genisoimage FreeBSD: cdrkit + OpenSUSE: mkisofs java: deb: openjdk-11-jre-headless @@ -289,6 +298,7 @@ mappings: libaudit: deb: libaudit-dev rpm: audit-libs-devel + OpenSUSE: audit-devel cross-policy-deb: foreign libblkid: @@ -320,6 +330,7 @@ mappings: deb: libdbus-1-dev pkg: dbus rpm: dbus-devel + OpenSUSE: dbus-1-devel cross-policy-deb: foreign libgovirt: @@ -347,6 +358,7 @@ mappings: rpm: numactl-devel armv6l-deb: armv7l-deb: + OpenSUSE: libnuma-devel cross-policy-deb: foreign libparted: @@ -370,6 +382,7 @@ mappings: deb: librbd-dev Fedora: librbd-devel CentOS7: librbd1-devel + OpenSUSE: librbd-devel cross-policy-deb: foreign libselinux: @@ -436,6 +449,7 @@ mappings: deb: locales Fedora: glibc-langpack-en FreeBSD: + OpenSUSE: glibc-locale lsof: default: lsof @@ -458,6 +472,7 @@ mappings: ninja: default: ninja-build FreeBSD: ninja + OpenSUSE: ninja mingw32-curl: Fedora: mingw32-curl @@ -639,6 +654,7 @@ mappings: netcf: deb: libnetcf-dev rpm: netcf-devel + OpenSUSE: cross-policy-deb: skip net-tools: @@ -709,6 +725,7 @@ mappings: deb: libio-compress-perl pkg: p5-IO-Compress rpm: perl-IO-Compress-Bzip2 + OpenSUSE: perl-Compress-Bzip2 perl-IO-String: deb: libio-string-perl @@ -747,6 +764,7 @@ mappings: deb: libtest-lwp-useragent-perl pkg: p5-Test-LWP-UserAgent Fedora: perl-Test-LWP-UserAgent + OpenSUSE: perl-Test-LWP-UserAgent perl-Test-Pod: deb: libtest-pod-perl @@ -807,6 +825,7 @@ mappings: default: python3-dbus FreeBSD: py36-dbus CentOS7: python36-dbus + OpenSUSE: python3-dbus-python python3-devel: deb: python3-dev @@ -814,17 +833,20 @@ mappings: Fedora: python3-devel CentOS7: python36-devel cross-policy-deb: foreign + OpenSUSE: python3-devel python3-gi: deb: python3-gi pkg: py36-gobject3 rpm: python3-gobject CentOS7: python36-gobject + OpenSUSE: python3-gobject python3-libxml2: default: python3-libxml2 FreeBSD: py36-libxml2 CentOS7: + OpenSUSE: python3-libxml2-python Ubuntu16: python3-lxml: @@ -860,6 +882,7 @@ mappings: qemu-img: default: qemu-utils rpm: qemu-img + OpenSUSE: qemu-tools radvd: default: radvd @@ -905,6 +928,7 @@ mappings: deb: libspice-client-gtk-3.0-dev pkg: spice-gtk rpm: spice-gtk3-devel + OpenSUSE: spice-gtk-devel cross-policy-deb: foreign strace: @@ -918,6 +942,7 @@ mappings: deb: iproute2 rpm: iproute-tc CentOS7: iproute + OpenSUSE: iproute2 unzip: default: unzip @@ -939,11 +964,12 @@ mappings: wireshark: deb: wireshark-dev - Fedora: wireshark-devel + rpm: wireshark-devel + CentOS: cross-policy-deb: skip xen: - Fedora: xen-devel + rpm: xen-devel x86_64-deb: libxen-dev armv7l-deb: libxen-dev aarch64-deb: libxen-dev @@ -970,18 +996,21 @@ mappings: xz-static: deb: liblzma-dev Fedora: xz-static + OpenSUSE: xz-static-devel cross-policy-deb: foreign yajl: deb: libyajl-dev pkg: yajl rpm: yajl-devel + OpenSUSE: libyajl-devel cross-policy-deb: foreign zfs: default: zfs-fuse CentOS: FreeBSD: + OpenSUSE: zlib: deb: zlib1g-dev @@ -991,6 +1020,7 @@ mappings: zlib-static: deb: zlib1g-dev rpm: zlib-static + OpenSUSE: zlib-devel-static cross-policy-deb: foreign -- 2.24.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list