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(a)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