[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