diff --git a/roles/openqa/worker/files/openqa-ppc64-prep.service b/roles/openqa/worker/files/openqa-ppc64-prep.service new file mode 100644 index 0000000000..2f1a92bfcd --- /dev/null +++ b/roles/openqa/worker/files/openqa-ppc64-prep.service @@ -0,0 +1,12 @@ +[Unit] +Description=openQA ppc64 worker prep script + +[Service] +Type=oneshot +ExecStart=/usr/local/sbin/openqa-ppc64-prep.sh +ExecReload=/bin/true +ExecStop=/bin/true +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/roles/openqa/worker/files/openqa-ppc64-prep.sh b/roles/openqa/worker/files/openqa-ppc64-prep.sh new file mode 100755 index 0000000000..b90b5d98e2 --- /dev/null +++ b/roles/openqa/worker/files/openqa-ppc64-prep.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# On boot, /dev/kvm perms are 0600 for some reason +chmod ugo+rw /dev/kvm + +# SMT must be off for qemu to work properly +ppc64_cpu --smt=off diff --git a/roles/openqa/worker/tasks/main.yml b/roles/openqa/worker/tasks/main.yml index 83a1e448cc..dc8e70a841 100644 --- a/roles/openqa/worker/tasks/main.yml +++ b/roles/openqa/worker/tasks/main.yml @@ -33,6 +33,23 @@ - packages when: "ansible_architecture is defined and ansible_architecture == 'x86_64'" +- name: Install boot script (to set /dev/kvm perms and disable SMT) (ppc64 only) + copy: src=openqa-ppc64-prep.sh dest=/usr/local/sbin/openqa-ppc64-prep.sh owner=root group=root mode=0755 + when: "ansible_architecture is defined and ansible_architecture == 'ppc64le'" + +- name: Install systemd service to run boot script (ppc64 only) + copy: src=openqa-ppc64-prep.service dest=/etc/systemd/system/openqa-ppc64-prep.service + when: "ansible_architecture is defined and ansible_architecture == 'ppc64le'" + register: prepservice + +- name: Do systemctl daemon-reload to register new service (ppc64 only) + command: "systemctl daemon-reload" + when: "prepservice is defined and prepservice|changed" + +- name: Enable systemd service to run boot script (ppc64 only) + service: name=openqa-ppc64-prep enabled=yes state=started + when: "ansible_architecture is defined and ansible_architecture == 'ppc64le'" + - include: nfs-client.yml when: openqa_hostname is defined and openqa_hostname != "localhost"