PLAY [ganeti_nodes] ************************************************************ TASK [Wait for SSH] ************************************************************ ok: [apu.staging.ganeti.org -> localhost] ok: [cletus.staging.ganeti.org -> localhost] ok: [principal-skinner.staging.ganeti.org -> localhost] PLAY [ganeti_nodes] ************************************************************ TASK [Gathering Facts] ********************************************************* [WARNING]: Platform linux on host principal-skinner.staging.ganeti.org is using the discovered Python interpreter at /usr/bin/python3, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible- core/2.14/reference_appendices/interpreter_discovery.html for more information. [WARNING]: Platform linux on host cletus.staging.ganeti.org is using the discovered Python interpreter at /usr/bin/python3, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible- core/2.14/reference_appendices/interpreter_discovery.html for more information. [WARNING]: Platform linux on host apu.staging.ganeti.org is using the discovered Python interpreter at /usr/bin/python3, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible- core/2.14/reference_appendices/interpreter_discovery.html for more information. ok: [principal-skinner.staging.ganeti.org] ok: [cletus.staging.ganeti.org] ok: [apu.staging.ganeti.org] TASK [ganeti_source_build : set debian_version to ansible_distribution_major_version on (old)stable versions] *** skipping: [apu.staging.ganeti.org] skipping: [cletus.staging.ganeti.org] skipping: [principal-skinner.staging.ganeti.org] TASK [ganeti_source_build : set debian_version to 99999 on testing version] **** ok: [apu.staging.ganeti.org] ok: [cletus.staging.ganeti.org] ok: [principal-skinner.staging.ganeti.org] TASK [ganeti_source_build : Configure/Enable en_US.UTF-8 locale] *************** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti_source_build : Install Ganeti general build dependencies] ********* changed: [cletus.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti_source_build : Install Ganeti Python build dependencies] ********** changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti_source_build : Install Ganeti Haskell build dependencies] ********* changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti_source_build : Install old PCRE libraries (Debian < 13)] ********** skipping: [apu.staging.ganeti.org] skipping: [cletus.staging.ganeti.org] skipping: [principal-skinner.staging.ganeti.org] TASK [ganeti_source_build : Install TDFA libraries (Debian >= 13)] ************* changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti_source_build : Install qemu-system-modules-spice (Debian >= 14)] *** changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti_source_build : Checkout Ganeti repository] ************************ changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti_source_build : Run autogen.sh] ************************************ changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti_source_build : Run configure with regex-pcre (Debian < 13)] ******* changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti_source_build : Run configure with regex-tdfa (Debian >= 13)] ****** skipping: [apu.staging.ganeti.org] skipping: [cletus.staging.ganeti.org] skipping: [principal-skinner.staging.ganeti.org] TASK [ganeti_source_build : Run make] ****************************************** changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti_source_build : Create required directories] *********************** changed: [apu.staging.ganeti.org] => (item=/etc/ganeti) changed: [principal-skinner.staging.ganeti.org] => (item=/etc/ganeti) changed: [cletus.staging.ganeti.org] => (item=/etc/ganeti) changed: [cletus.staging.ganeti.org] => (item=/var/lib/ganeti) changed: [apu.staging.ganeti.org] => (item=/var/lib/ganeti) changed: [principal-skinner.staging.ganeti.org] => (item=/var/lib/ganeti) changed: [apu.staging.ganeti.org] => (item=/var/log/ganeti) changed: [cletus.staging.ganeti.org] => (item=/var/log/ganeti) changed: [principal-skinner.staging.ganeti.org] => (item=/var/log/ganeti) changed: [apu.staging.ganeti.org] => (item=/srv/ganeti) changed: [cletus.staging.ganeti.org] => (item=/srv/ganeti) changed: [principal-skinner.staging.ganeti.org] => (item=/srv/ganeti) changed: [apu.staging.ganeti.org] => (item=/srv/ganeti/os) changed: [cletus.staging.ganeti.org] => (item=/srv/ganeti/os) changed: [principal-skinner.staging.ganeti.org] => (item=/srv/ganeti/os) changed: [apu.staging.ganeti.org] => (item=/srv/ganeti/export) changed: [principal-skinner.staging.ganeti.org] => (item=/srv/ganeti/export) changed: [cletus.staging.ganeti.org] => (item=/srv/ganeti/export) TASK [ganeti_source_build : Run make install] ********************************** changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] PLAY [master_node] ************************************************************* TASK [Gathering Facts] ********************************************************* ok: [apu.staging.ganeti.org] TASK [nfs_server : Install required packages] ********************************** changed: [apu.staging.ganeti.org] TASK [nfs_server : Create nfs server directory] ******************************** changed: [apu.staging.ganeti.org] TASK [nfs_server : Export shared-file-storage folder] ************************** [WARNING]: Module remote_tmp /root/.ansible/tmp did not exist and was created with a mode of 0700, this may cause issues when running as another user. To avoid this, create the remote_tmp dir with the correct permissions manually changed: [apu.staging.ganeti.org] TASK [nfs_server : Restart NFS server] ***************************************** changed: [apu.staging.ganeti.org] TASK [nfs_server : Reload NFS exports] ***************************************** changed: [apu.staging.ganeti.org] PLAY [non_master_nodes] ******************************************************** TASK [Gathering Facts] ********************************************************* ok: [principal-skinner.staging.ganeti.org] ok: [cletus.staging.ganeti.org] TASK [nfs_client : Install required packages] ********************************** changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [nfs_client : Create nfs client directory] ******************************** changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [nfs_client : mount nfs share] ******************************************** changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] PLAY [ganeti_nodes] ************************************************************ TASK [Gathering Facts] ********************************************************* ok: [principal-skinner.staging.ganeti.org] ok: [cletus.staging.ganeti.org] ok: [apu.staging.ganeti.org] TASK [storage : Install lvm packages] ****************************************** ok: [apu.staging.ganeti.org] ok: [principal-skinner.staging.ganeti.org] ok: [cletus.staging.ganeti.org] TASK [storage : Create physical volume / volume group for ganeti] ************** changed: [cletus.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [drbd : install DRBD related packages] ************************************ ok: [apu.staging.ganeti.org] ok: [principal-skinner.staging.ganeti.org] ok: [cletus.staging.ganeti.org] TASK [drbd : Configure DRBD module options] ************************************ changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [drbd : Load DRBD module] ************************************************* changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Install required packages] ************************************** changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Install required packages for Debian trixie] ******************** skipping: [apu.staging.ganeti.org] skipping: [cletus.staging.ganeti.org] skipping: [principal-skinner.staging.ganeti.org] TASK [ganeti : Make sure cluster name is present in /etc/hosts] **************** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti : Install ganeti rapi users file (1/2)] *************************** changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Install ganeti rapi users file (2/2)] *************************** changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti : Create file storage path] *************************************** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti : Whitelist shared-file storage path in /etc/ganeti/file-storage-paths] *** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti : Install tooling for building the guest initramfs] *************** ok: [apu.staging.ganeti.org] ok: [cletus.staging.ganeti.org] ok: [principal-skinner.staging.ganeti.org] TASK [ganeti : Install custom dracut module for the QA guest initramfs] ******** changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Build QA guest initramfs with dracut] *************************** changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Create VNC password file] *************************************** changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Install ganeti defaults (enable debug logging for all services)] *** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti : QUICKFIX: disable SSH strict host key checking in ganeti-testsuite] *** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti : QUICKFIX: Install colors.py (missing from Ganeti source)] ******* changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : QUICKFIX: install these packages to make the kvm-ifup-os script pass the tests in ganeti-testsuite] *** changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Install cronjob to overwrite /var/log/ganeti/qa-output.log] ***** changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [apu.staging.ganeti.org] TASK [ganeti : Install socat for capturing guest serial consoles] ************** ok: [apu.staging.ganeti.org] ok: [cletus.staging.ganeti.org] ok: [principal-skinner.staging.ganeti.org] TASK [ganeti : Install guest serial console collector script] ****************** changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] TASK [ganeti : Install guest serial console collector service] ***************** changed: [apu.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] changed: [cletus.staging.ganeti.org] TASK [ganeti : Enable and (re)start guest serial console collector] ************ changed: [apu.staging.ganeti.org] changed: [cletus.staging.ganeti.org] changed: [principal-skinner.staging.ganeti.org] PLAY [master_node] ************************************************************* TASK [Gathering Facts] ********************************************************* ok: [apu.staging.ganeti.org] TASK [Initialise cluster] ****************************************************** fatal: [apu.staging.ganeti.org]: FAILED! => {"changed": true, "cmd": ["gnt-cluster", "init", "--no-ssh-init", "--vg-name", "gnt", "--master-netdev", "virt-bridge", "--master-netmask", "24", "--enabled-hypervisors", "fake", "--nic-parameters", "mode=bridged,link=virt-bridge", "--enabled-disk-templates=plain,file,drbd,sharedfile", "--shared-file-storage-dir=/srv/ganeti/shared-file-storage", "--file-storage-dir=/srv/ganeti/file-storage", "--default-iallocator", "hail", "--ipolicy-bounds-specs", "min:nic-count=0,cpu-count=1,disk-count=0,spindle-use=0,disk-size=512M,memory-size=128M/max:nic-count=8,cpu-count=48,disk-count=8,spindle-use=8,disk-size=1TB,memory-size=1TB", "--ipolicy-disk-templates=plain,file,drbd,sharedfile", "--disk-parameters", "drbd:disk-barriers=n,protocol=C,dynamic-resync=true,c-plan-ahead=20,c-min-rate=10240,c-max-rate=1310720,net-custom=--max-buffers=16000 --max-epoch-size=16000", "staging-cluster.ganeti.org"], "delta": "0:00:04.570694", "end": "2026-08-23 11:18:09.169421", "msg": "non-zero return code", "rc": 1, "start": "2026-08-23 11:18:04.598727", "stderr": "Traceback (most recent call last):\n File \"/usr/sbin/gnt-cluster\", line 21, in \n sys.exit(main.Main())\n ~~~~~~~~~^^\n File \"/usr/share/ganeti/3.2/ganeti/client/gnt_cluster.py\", line 2625, in Main\n return GenericMain(commands, override={\"tag_type\": constants.TAG_CLUSTER},\n aliases=aliases)\n File \"/usr/share/ganeti/3.2/ganeti/cli.py\", line 1255, in GenericMain\n result = func(options, args)\n File \"/usr/share/ganeti/3.2/ganeti/rpc/node.py\", line 144, in wrapper\n return fn(*args, **kwargs)\n File \"/usr/share/ganeti/3.2/ganeti/client/gnt_cluster.py\", line 318, in InitCluster\n bootstrap.InitCluster(cluster_name=args[0],\n ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n secondary_ip=opts.secondary_ip,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ...<33 lines>...\n ssh_key_bits=ssh_key_bits,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/usr/share/ganeti/3.2/ganeti/bootstrap.py\", line 822, in InitCluster\n _InitGanetiServerSetup(hostname.name, cfg)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^\n File \"/usr/share/ganeti/3.2/ganeti/bootstrap.py\", line 205, in _InitGanetiServerSetup\n GenerateClusterCrypto(True, False, False, False, False, False, master_name)\n ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/share/ganeti/3.2/ganeti/bootstrap.py\", line 139, in GenerateClusterCrypto\n utils.GenerateNewClientSslCert(clientcert_file, nodecert_file,\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n master_name)\n ^^^^^^^^^^^^\n File \"/usr/share/ganeti/3.2/ganeti/utils/security.py\", line 103, in GenerateNewClientSslCert\n x509.GenerateSignedSslCert(cert_filename, serial_no, signing_cert_filename,\n ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n common_name=hostname)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/share/ganeti/3.2/ganeti/utils/x509.py\", line 372, in GenerateSignedSslCert\n (key_pem, cert_pem) = GenerateSignedX509Cert(\n ~~~~~~~~~~~~~~~~~~~~~~^\n common_name, validity * 24 * 60 * 60, serial_no, signing_cert_pem)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/share/ganeti/3.2/ganeti/utils/x509.py\", line 336, in GenerateSignedX509Cert\n req = OpenSSL.crypto.X509Req()\n ^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/lib/python3/dist-packages/cryptography/utils.py\", line 76, in __getattr__\n obj = getattr(self._module, name)\nAttributeError: module 'OpenSSL.crypto' has no attribute 'X509Req'", "stderr_lines": ["Traceback (most recent call last):", " File \"/usr/sbin/gnt-cluster\", line 21, in ", " sys.exit(main.Main())", " ~~~~~~~~~^^", " File \"/usr/share/ganeti/3.2/ganeti/client/gnt_cluster.py\", line 2625, in Main", " return GenericMain(commands, override={\"tag_type\": constants.TAG_CLUSTER},", " aliases=aliases)", " File \"/usr/share/ganeti/3.2/ganeti/cli.py\", line 1255, in GenericMain", " result = func(options, args)", " File \"/usr/share/ganeti/3.2/ganeti/rpc/node.py\", line 144, in wrapper", " return fn(*args, **kwargs)", " File \"/usr/share/ganeti/3.2/ganeti/client/gnt_cluster.py\", line 318, in InitCluster", " bootstrap.InitCluster(cluster_name=args[0],", " ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^", " secondary_ip=opts.secondary_ip,", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", " ...<33 lines>...", " ssh_key_bits=ssh_key_bits,", " ^^^^^^^^^^^^^^^^^^^^^^^^^^", " )", " ^", " File \"/usr/share/ganeti/3.2/ganeti/bootstrap.py\", line 822, in InitCluster", " _InitGanetiServerSetup(hostname.name, cfg)", " ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^", " File \"/usr/share/ganeti/3.2/ganeti/bootstrap.py\", line 205, in _InitGanetiServerSetup", " GenerateClusterCrypto(True, False, False, False, False, False, master_name)", " ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", " File \"/usr/share/ganeti/3.2/ganeti/bootstrap.py\", line 139, in GenerateClusterCrypto", " utils.GenerateNewClientSslCert(clientcert_file, nodecert_file,", " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", " master_name)", " ^^^^^^^^^^^^", " File \"/usr/share/ganeti/3.2/ganeti/utils/security.py\", line 103, in GenerateNewClientSslCert", " x509.GenerateSignedSslCert(cert_filename, serial_no, signing_cert_filename,", " ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", " common_name=hostname)", " ^^^^^^^^^^^^^^^^^^^^^", " File \"/usr/share/ganeti/3.2/ganeti/utils/x509.py\", line 372, in GenerateSignedSslCert", " (key_pem, cert_pem) = GenerateSignedX509Cert(", " ~~~~~~~~~~~~~~~~~~~~~~^", " common_name, validity * 24 * 60 * 60, serial_no, signing_cert_pem)", " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", " File \"/usr/share/ganeti/3.2/ganeti/utils/x509.py\", line 336, in GenerateSignedX509Cert", " req = OpenSSL.crypto.X509Req()", " ^^^^^^^^^^^^^^^^^^^^^^", " File \"/usr/lib/python3/dist-packages/cryptography/utils.py\", line 76, in __getattr__", " obj = getattr(self._module, name)", "AttributeError: module 'OpenSSL.crypto' has no attribute 'X509Req'"], "stdout": "", "stdout_lines": []} PLAY RECAP *********************************************************************