copr-be: playbook for building s390x images
This commit is contained in:
parent
4322a1a6a3
commit
fbbddfe0b4
1 changed files with 128 additions and 0 deletions
|
@ -0,0 +1,128 @@
|
||||||
|
---
|
||||||
|
# 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
|
||||||
|
- python3-libvirt
|
||||||
|
- qemu-kvm
|
||||||
|
- virt-install
|
||||||
|
- ansible-collection-community-general
|
||||||
|
|
||||||
|
- name: enable libvirt
|
||||||
|
service:
|
||||||
|
name: libvirtd
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: praiskup helpers repo
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
[copr:copr.fedorainfracloud.org:praiskup:helpers]
|
||||||
|
name=Copr repo for helpers owned by praiskup
|
||||||
|
baseurl=https://download.copr.fedorainfracloud.org/results/praiskup/helpers/fedora-$releasever-x86_64/
|
||||||
|
type=rpm-md
|
||||||
|
skip_if_unavailable=True
|
||||||
|
gpgcheck=1
|
||||||
|
gpgkey=https://download.copr.fedorainfracloud.org/results/praiskup/helpers/pubkey.gpg
|
||||||
|
repo_gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
enabled_metadata=1
|
||||||
|
dest: /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:praiskup:helpers.repo
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- 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-rpmbuild"
|
||||||
|
- "{{ eimg_configdir }}/files/copr-distgit-client"
|
||||||
|
|
||||||
|
- copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "{{ eimg_configdir }}/{{ item }}"
|
||||||
|
loop:
|
||||||
|
- local-image-update.yml
|
||||||
|
- create_swap_file.yml
|
||||||
|
- provision_builder_tasks.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
|
||||||
|
- files/copr-distgit-client/centos-stream.ini
|
||||||
|
|
||||||
|
- 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" )
|
||||||
|
dest: /etc/eimg/eimg.sh
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- stat: path={{ private_key_file }}
|
||||||
|
register: key_stat
|
||||||
|
|
||||||
|
- 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
|
Loading…
Add table
Add a link
Reference in a new issue