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
|
- name: install packages needed by resalloc server
|
||||||
dnf:
|
dnf:
|
||||||
state: present
|
state: present
|
||||||
|
@ -31,23 +32,17 @@
|
||||||
become: yes
|
become: yes
|
||||||
become_user: postgres
|
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
|
copy: src=ansible.cfg dest=/var/lib/resallocserver/.ansible.cfg
|
||||||
owner=resalloc group=resalloc mode=600
|
owner=resalloc group=resalloc mode=600
|
||||||
tags:
|
tags:
|
||||||
- provision_config
|
- 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
|
- name: resalloc, sync resalloc provisioning files
|
||||||
synchronize: src="resalloc_provision/" dest="/var/lib/resallocserver/resalloc_provision/"
|
synchronize: src="resalloc_provision/" dest="/var/lib/resallocserver/resalloc_provision/"
|
||||||
tags:
|
tags:
|
||||||
|
@ -64,31 +59,6 @@
|
||||||
tags:
|
tags:
|
||||||
- provision_config
|
- 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
|
- name: resalloc, ssh directory
|
||||||
file:
|
file:
|
||||||
path: /var/lib/resallocserver/.ssh
|
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
|
group: copr
|
||||||
mode: 0600
|
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
|
- name: install libvirt packages
|
||||||
package: name={{ item }} state=present
|
package: name={{ item }} state=present
|
||||||
with_items:
|
with_items:
|
||||||
|
@ -136,3 +140,24 @@
|
||||||
- libguestfs-tools-c
|
- libguestfs-tools-c
|
||||||
- libvirt
|
- libvirt
|
||||||
- virt-install
|
- 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