copr-hv: prepare qcow2 images on hypervisors
This commit is contained in:
parent
f986c67882
commit
fe5073d8f5
4 changed files with 87 additions and 37 deletions
19
roles/copr/backend/files/provision/local-image-update.yml
Normal file
19
roles/copr/backend/files/provision/local-image-update.yml
Normal 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"
|
|
@ -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
|
||||
|
|
36
roles/copr/backend/tasks/setup_provisioning_environment.yml
Normal file
36
roles/copr/backend/tasks/setup_provisioning_environment.yml
Normal 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
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue