copr-hv: prepare qcow2 images on hypervisors

This commit is contained in:
Pavel Raiskup 2021-05-07 19:12:35 +02:00
parent f986c67882
commit fe5073d8f5
4 changed files with 87 additions and 37 deletions

View file

@ -0,0 +1,19 @@
---
# This playbook is used on copr hypervisor for preparing qcow2 copr builder
# images.
- name: prepare local VM for creating copr builder image
hosts: all
remote_user: root
gather_facts: false
vars_files:
- vars.yml
- aws_cloud_vars.yml
vars:
- updatebuilder: true
- prepare_base_image: 1
tasks:
- include: "provision_builder_tasks.yml"

View file

@ -1,3 +1,4 @@
---
- name: install packages needed by resalloc server
dnf:
state: present
@ -31,23 +32,17 @@
become: yes
become_user: postgres
- name: install .ansible.cfg for resalloc user
- name: setup provision directory
include_tasks: setup_provisioning_environment.yml
vars:
provision_directory: /var/lib/resallocserver/provision
- name: install .ansible.cfg for {{ provision_user }} user
copy: src=ansible.cfg dest=/var/lib/resallocserver/.ansible.cfg
owner=resalloc group=resalloc mode=600
tags:
- provision_config
- name: resalloc, sync copr provisioning files
synchronize: src="provision/" dest="/var/lib/resallocserver/provision/"
tags:
- provision_config
- name: "resalloc, sync copr provisioning files [remove mock config leftovers]"
synchronize: src="provision/files/mock/" dest="/var/lib/resallocserver/provision/files/mock/"
delete=yes
tags:
- provision_config
- name: resalloc, sync resalloc provisioning files
synchronize: src="resalloc_provision/" dest="/var/lib/resallocserver/resalloc_provision/"
tags:
@ -64,31 +59,6 @@
tags:
- provision_config
- name: resalloc, generate vars files
template:
src: "provision/{{ item }}"
dest: "/var/lib/resallocserver/provision/{{ item }}"
with_items:
- vars.yml
- nova_cloud_vars.yml
- aws_cloud_vars.yml
tags:
- provision_config
- name: resalloc, rpmbuild config
template:
src: provision/copr-rpmbuild/main.ini.j2
dest: /var/lib/resallocserver/provision/files/main.ini
tags:
- provision_config
- name: resalloc, rpkg config
template:
src: provision/rpkg.conf.j2
dest: /var/lib/resallocserver/provision/files/rpkg.conf
tags:
- provision_config
- name: resalloc, ssh directory
file:
path: /var/lib/resallocserver/.ssh

View file

@ -0,0 +1,36 @@
---
- name: sync copr provisioning files
synchronize: src="provision/" dest="{{ provision_directory }}/"
tags:
- provision_config
- name: "sync copr provisioning files [remove mock config leftovers]"
synchronize: src="provision/files/mock/" dest="{{ provision_directory }}/files/mock/"
delete=yes
tags:
- provision_config
- name: resalloc, generate vars files
template:
src: "provision/{{ item }}"
dest: "{{ provision_directory }}/{{ item }}"
with_items:
- vars.yml
- nova_cloud_vars.yml
- aws_cloud_vars.yml
tags:
- provision_config
- name: resalloc, rpmbuild config
template:
src: provision/copr-rpmbuild/main.ini.j2
dest: "{{ provision_directory }}/files/main.ini"
tags:
- provision_config
- name: resalloc, rpkg config
template:
src: provision/rpkg.conf.j2
dest: "{{ provision_directory }}/files/rpkg.conf"
tags:
- provision_config

View file

@ -129,6 +129,10 @@
group: copr
mode: 0600
- name: provide pub key, too, so we can install them to generated builder images
copy: src=buildsys.pub dest=/home/copr/.ssh/id_rsa.pub
owner=copr group=ćopr mode=0600
- name: install libvirt packages
package: name={{ item }} state=present
with_items:
@ -136,3 +140,24 @@
- libguestfs-tools-c
- libvirt
- virt-install
- name: Enable praiskup-helpers repo
community.general.copr:
state: enabled
name: praiskup/helpers
chroot: epel-8-x86_64
- name: install latest packages
package: name=praiskup-helpers state=latest
- name: install configuration for /bin/copr-image
copy:
dest: /etc/eimg/eimg.sh
content: |
EIMG_COPR_PLAYBOOK_DIR=/home/copr/vm-provisioning
EIMG_COPR_PLAYBOOK=local-image-update.yml
- name: setup provision directory
include_tasks: setup_provisioning_environment.yml
vars:
provision_directory: /home/copr/provision