ansible/roles/copr/backend/files/provision/playbook-prepare-builder-to-create-images.yml
Ryan Lerch 89f6f1fc32 Fix majority of remaining yamllint warnings and errors
Signed-off-by: Ryan Lerch <rlerch@redhat.com>
2024-11-28 17:31:45 +10:00

127 lines
3.7 KiB
YAML

---
# This playbook is not yet automatically used. It is mean to be used like:
# 1. start normal copr builder in IBM Cloud - s390x
# 2. execute this playbook: ansible-playbook <this-playbook> -i "<IP-of-the-server>,"
# 3. ssh to <IP-of-the-server>
# 4. run, as root, copr-image https://mirror.yandex.ru/fedora-secondary/releases/35/Cloud/s390x/images/Fedora-Cloud-Base-35-1.2.s390x.qcow2
# Unfortunately, we don't have s390x hypervisor to run this on. Therefore we
# run this on VM, where fortunately nested virtualization works.
- name: configure composer machine
hosts: all
user: root
tasks:
- name: install guestfish & friends
package:
name: "{{ packages }}"
vars:
packages:
- ebtables
- libguestfs
- libvirt-daemon
- libvirt-daemon-driver-storage
- python3-libvirt
- qemu-kvm
- virt-install
- ansible-collection-community-general
- name: enable libvirt services
service:
name: "{{ item }}"
state: started
enabled: true
with_items:
- libvirtd
- virtstoraged.socket
- virtstoraged-ro.socket
- name: Enable praiskup-helpers repo
community.general.copr:
state: enabled
name: praiskup/helpers
- name: install helpers
package: name=praiskup-helpers state=present
register: helpers_installed
- name: remount with larger TMP
shell: mount -o remount,size=20G /tmp
when: helpers_installed.changed
- name: set direct backend for guestfish
copy:
content: "export LIBGUESTFS_BACKEND=direct"
dest: /etc/profile.d/guestfish-copr.sh
- set_fact:
eimg_configdir: /home/mockbuilder/provision
private_key_file: /root/.ssh/id_rsa
tags: always
- file:
state: directory
path: "{{ item }}"
loop:
- "{{ eimg_configdir }}"
- "{{ eimg_configdir }}/files"
- "{{ eimg_configdir }}/files/dnf"
- "{{ eimg_configdir }}/files/copr-distgit-client"
- "{{ eimg_configdir }}/files/copr-rpmbuild"
- copy:
src: "{{ item }}"
dest: "{{ eimg_configdir }}/{{ item }}"
loop:
- local-image-update.yml
- copr-rh-subscribe.sh
- create_swap_file.yml
- provision_builder_tasks.yml
- libdnf5.yml
- vars.yml
- files/buildsys.pub
- files/enable-swap.service
- files/enable-swap.sh
- files/main.ini
- files/dnf/infra-tags.repo
- files/copr-rpmbuild/rpkg.conf.j2
- name: eimg.sh config
copy:
content: |
EIMG_COPR_PLAYBOOK_DIR={{ eimg_configdir }}
EIMG_COPR_PLAYBOOK=local-image-update.yml
EIMG_FINAL_SYSPREP_ARGS=(--ssh-inject "root:file:$HOME/.ssh/id_rsa.pub"
--run-command "chcon -v -R -h system_u:object_r:ssh_home_t:s0 /root/.ssh" )
EIMG_DOUBLECHECK_WAITING_FOR_IPV4=true
dest: /etc/eimg/eimg.sh
mode: "0644"
- stat: path={{ private_key_file }}
register: key_stat
- name: create ssh keypair for password-less connection to nested-VMs
shell: 'ssh-keygen -b 4096 -t rsa -q -N "" -f {{ private_key_file }}'
when: not key_stat.stat.exists
# - name: install composer packages
# package: name={{ packages }}
# vars:
# - packages:
# - osbuild-composer
# - composer-cli
#
# - name: start osbuild services
# service:
# name: "{{ item }}"
# state: started
# loop:
# - osbuild-composer.socket
# - osbuild-local-worker.socket
# - osbuild-composer
#
# - name: composer user
# user:
# name: composer
# groups: weldr