[libvirt] [PATCH RFC V2 jenkins-ci] guests: Add support for openSUSE
Jim Fehlig
jfehlig at suse.com
Tue Nov 26 01:08:09 UTC 2019
Grrr, I keep forgetting something within '--subject-prefix=' when sending these
patches...
On 11/25/19 5:50 PM, Jim Fehlig wrote:
> This change adds support for the latest openSUSE Leap and
> openSUSE Tumbleweed guests.
>
> Signed-off-by: Jim Fehlig <jfehlig at suse.com>
> ---
>
> This version of the patch overcomes the 'lci build' issues noted in V1
> and works well for openSUSE Leap 15.1 and Tumbleweed. I'm still of the
> opinion of only supporting the latest Leap since there is only a six
> month support overlap between versions. Version x-1 is only supported
> six months after x is released.
>
> 'lci update ... libvirt' fails in task "Configure hostname":
>
> fatal: [libvirt-opensuse-tumbleweed]: FAILED! => {"changed": false, "msg": "hostname module cannot be used on platform Linux (Opensuse-tumbleweed)"}
>
> Not sure why that is the case. But more importantly, even though it
> doesn't fail, the "Update installed packages" task doesn't install any
> of the packages required to build libvirt. I suppose that agrees with
> guests/REAMDME, but how then are the packages required to build $project
> installed? How/when is the list of packages required to build $project
> conveyed to $package_manager?
>
> 'lcitool build libvirt-opensuse-tumbleweed libvirt' fails in the
> "Gathering Facts" task:
>
> fatal: [libvirt-opensuse-tumbleweed]: UNREACHABLE! => {"changed": false, "msg": "Invalid/incorrect password: ", "unreachable": true}
>
> Passing --debug to the command didn't help with determining what needed
> the password. ssh? I can't find where the "Gathering Facts" task is
> defined. The $root_password_file passed to /usr/bin/ansible-playbook
> contains the correct password for the root user. /me needs to figure
> out how to better debug this stuff :-).
>
> guests/configs/autoinst.xml | 75 +++++++++++++++++++
> .../host_vars/libvirt-opensuse-15/docker.yml | 2 +
> .../host_vars/libvirt-opensuse-15/install.yml | 2 +
> guests/host_vars/libvirt-opensuse-15/main.yml | 22 ++++++
> .../libvirt-opensuse-tumbleweed/docker.yml | 2 +
> .../libvirt-opensuse-tumbleweed/install.yml | 2 +
> .../libvirt-opensuse-tumbleweed/main.yml | 22 ++++++
> guests/inventory | 2 +
> guests/lcitool | 2 +
> guests/playbooks/update/tasks/base.yml | 15 ++++
> guests/vars/mappings.yml | 41 +++++++++-
> 11 files changed, 185 insertions(+), 2 deletions(-)
>
> diff --git a/guests/configs/autoinst.xml b/guests/configs/autoinst.xml
> new file mode 100644
> index 0000000..42c42f8
> --- /dev/null
> +++ b/guests/configs/autoinst.xml
> @@ -0,0 +1,75 @@
> +<?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>
> + </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>
> + </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-15/docker.yml b/guests/host_vars/libvirt-opensuse-15/docker.yml
> new file mode 100644
> index 0000000..8f32d06
> --- /dev/null
> +++ b/guests/host_vars/libvirt-opensuse-15/docker.yml
> @@ -0,0 +1,2 @@
> +---
> +docker_base: opensuse/leap:15
> diff --git a/guests/host_vars/libvirt-opensuse-15/install.yml b/guests/host_vars/libvirt-opensuse-15/install.yml
> new file mode 100644
> index 0000000..d0fdbe5
> --- /dev/null
> +++ b/guests/host_vars/libvirt-opensuse-15/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-15/main.yml b/guests/host_vars/libvirt-opensuse-15/main.yml
> new file mode 100644
> index 0000000..abd83c5
> --- /dev/null
> +++ b/guests/host_vars/libvirt-opensuse-15/main.yml
> @@ -0,0 +1,22 @@
> +---
> +projects:
> + - libosinfo
> + - libvirt
> + - libvirt-cim
> + - libvirt-dbus
> + - libvirt-glib
> + - libvirt-perl
> + - libvirt-python
> + - libvirt-sandbox
> + - libvirt-tck
> + - osinfo-db
> + - osinfo-db-tools
> + - virt-manager
> + - virt-viewer
> +
> +package_format: 'rpm'
> +package_manager: 'zypper'
> +os_name: 'OpenSUSE'
> +os_version: '15'
> +
> +ansible_python_interpreter: /usr/bin/python3
> diff --git a/guests/host_vars/libvirt-opensuse-tumbleweed/docker.yml b/guests/host_vars/libvirt-opensuse-tumbleweed/docker.yml
> new file mode 100644
> index 0000000..cc79a22
> --- /dev/null
> +++ b/guests/host_vars/libvirt-opensuse-tumbleweed/docker.yml
> @@ -0,0 +1,2 @@
> +---
> +docker_base: opensuse/tumbleweed
> diff --git a/guests/host_vars/libvirt-opensuse-tumbleweed/install.yml b/guests/host_vars/libvirt-opensuse-tumbleweed/install.yml
> new file mode 100644
> index 0000000..36cea68
> --- /dev/null
> +++ b/guests/host_vars/libvirt-opensuse-tumbleweed/install.yml
> @@ -0,0 +1,2 @@
> +---
> +install_url: http://download.opensuse.org/tumbleweed/repo/oss/
> diff --git a/guests/host_vars/libvirt-opensuse-tumbleweed/main.yml b/guests/host_vars/libvirt-opensuse-tumbleweed/main.yml
> new file mode 100644
> index 0000000..828df81
> --- /dev/null
> +++ b/guests/host_vars/libvirt-opensuse-tumbleweed/main.yml
> @@ -0,0 +1,22 @@
> +---
> +projects:
> + - libosinfo
> + - libvirt
> + - libvirt-cim
> + - libvirt-dbus
> + - libvirt-glib
> + - libvirt-perl
> + - libvirt-python
> + - libvirt-sandbox
> + - libvirt-tck
> + - osinfo-db
> + - osinfo-db-tools
> + - virt-manager
> + - virt-viewer
> +
> +package_format: 'rpm'
> +package_manager: 'zypper'
> +os_name: 'OpenSUSE'
> +os_version: 'Tumbleweed'
> +
> +ansible_python_interpreter: /usr/bin/python3
> diff --git a/guests/inventory b/guests/inventory
> index 3b15513..71d3c91 100644
> --- a/guests/inventory
> +++ b/guests/inventory
> @@ -8,5 +8,7 @@ libvirt-fedora-rawhide
> libvirt-freebsd-11
> libvirt-freebsd-12
> libvirt-freebsd-current
> +libvirt-opensuse-15
> +libvirt-opensuse-tumbleweed
> libvirt-ubuntu-16
> libvirt-ubuntu-18
> diff --git a/guests/lcitool b/guests/lcitool
> index a630971..7f26731 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..b6a2cd2 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'
> + - not 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 bd9b161..8359ce2 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, OpenSUSE15, 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:
> @@ -678,6 +694,7 @@ mappings:
> deb: perl
> pkg: perl5
> rpm: perl-Archive-Tar
> + OpenSUSE: perl-Archive-Tar-Wrapper
>
> perl-CPAN-Changes:
> deb: libcpan-changes-perl
> @@ -709,6 +726,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 +765,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
> @@ -809,20 +828,24 @@ mappings:
> deb: python-dev
> pkg: python2
> rpm: python2-devel
> + OpenSUSE: python-devel
> cross-policy-deb: foreign
>
> python2-lxml:
> default: python-lxml
> Fedora: python2-lxml
> FreeBSD: py27-lxml
> + OpenSUSE: python2-lxml
>
> python2-nose:
> default: python-nose
> Fedora: python2-nose
> FreeBSD: py27-nose
> + OpenSUSE: python2-nose
>
> python2-setuptools:
> CentOS7: python2-setuptools
> + OpenSUSE: python2-setuptools
>
> python3:
> default: python3
> @@ -831,6 +854,7 @@ mappings:
> default: python3-dbus
> FreeBSD: py36-dbus
> CentOS7: python36-dbus
> + OpenSUSE: python3-dbus-python
>
> python3-devel:
> deb: python3-dev
> @@ -838,17 +862,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:
> @@ -864,6 +891,7 @@ mappings:
> python3-pip:
> CentOS7: python3-pip
> Debian9: python3-pip
> + OpenSUSE: python3-pip
> Ubuntu16: python3-pip
> Ubuntu18: python3-pip
>
> @@ -884,6 +912,7 @@ mappings:
> qemu-img:
> default: qemu-utils
> rpm: qemu-img
> + OpenSUSE: qemu-tools
>
> radvd:
> default: radvd
> @@ -929,6 +958,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:
> @@ -942,6 +972,7 @@ mappings:
> deb: iproute2
> rpm: iproute-tc
> CentOS7: iproute
> + OpenSUSE: iproute2
>
> unzip:
> default: unzip
> @@ -964,10 +995,12 @@ mappings:
> wireshark:
> deb: wireshark-dev
> Fedora: wireshark-devel
> + OpenSUSE: wireshark-devel
> cross-policy-deb: skip
>
> xen:
> Fedora: xen-devel
> + OpenSUSE: xen-devel
> x86_64-deb: libxen-dev
> armv7l-deb: libxen-dev
> aarch64-deb: libxen-dev
> @@ -994,18 +1027,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
> @@ -1015,6 +1051,7 @@ mappings:
> zlib-static:
> deb: zlib1g-dev
> rpm: zlib-static
> + OpenSUSE: zlib-devel-static
> cross-policy-deb: foreign
>
>
>
More information about the libvir-list
mailing list