Subscription manager should be configured to manage repositories, and by disabling rhui-client-config-server-9 rhui repositories don't get (re-)enabled after updates.
186 lines
4.8 KiB
YAML
186 lines
4.8 KiB
YAML
---
|
|
- name: Build osbuild rpms
|
|
become: yes
|
|
remote_user: ec2-user
|
|
hosts: rpmbuilder
|
|
gather_facts: no
|
|
tasks:
|
|
|
|
- name: Wait for hosts to be reachable
|
|
ansible.builtin.wait_for_connection:
|
|
delay: 60
|
|
timeout: 400
|
|
|
|
- name: Gather facts
|
|
ansible.builtin.setup:
|
|
|
|
- name: Add EPEL
|
|
dnf:
|
|
state: present
|
|
name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
|
disable_gpg_check: yes
|
|
|
|
- name: Disable RHUI repos
|
|
become: yes
|
|
shell: >-
|
|
dnf config-manager \
|
|
--set-disabled rhel-9-baseos-rhui-rpms \
|
|
--set-disabled rhel-9-appstream-rhui-rpms \
|
|
--set-disabled rhui-client-config-server-9
|
|
|
|
- name: Enable rhsm repository management
|
|
become: yes
|
|
shell: >-
|
|
subscription-manager config --rhsm.manage_repos 1
|
|
|
|
# RHEL mock templates don't work on RHUI, they use the CDN repos
|
|
- name: Subscribe
|
|
register: result
|
|
retries: 5
|
|
until: result is success
|
|
community.general.redhat_subscription:
|
|
activationkey: "{{ RH_ACTIVATION_KEY }}"
|
|
org_id: "{{ RH_ORG_ID }}"
|
|
|
|
- name: Upgrade all packages
|
|
package:
|
|
name: "*"
|
|
state: latest
|
|
register: result
|
|
retries: 5
|
|
until: result is success
|
|
|
|
- name: Create rpmbuild directory
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- /home/ec2-user/rpmbuild
|
|
- /home/ec2-user/rpmbuild/SOURCES
|
|
- /home/ec2-user/rpmbuild/RPMS
|
|
|
|
- name: Download osbuild-composer archive
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
get_url:
|
|
url: "https://github.com/osbuild/osbuild-composer/archive/{{ COMPOSER_COMMIT }}.tar.gz"
|
|
dest: "/home/ec2-user/rpmbuild/SOURCES/osbuild-composer-{{ COMPOSER_COMMIT }}.tar.gz"
|
|
|
|
- name: Download osbuild-composer spec
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
get_url:
|
|
url: "https://raw.githubusercontent.com/osbuild/osbuild-composer/{{ COMPOSER_COMMIT }}/osbuild-composer.spec"
|
|
dest: /home/ec2-user/osbuild-composer.spec
|
|
|
|
- name: Download osbuild archive
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
get_url:
|
|
url: "https://github.com/osbuild/osbuild/archive/{{ OSBUILD_COMMIT }}.tar.gz"
|
|
dest: "/home/ec2-user/rpmbuild/SOURCES/osbuild-{{ OSBUILD_COMMIT }}.tar.gz"
|
|
|
|
- name: Download osbuild spec
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
get_url:
|
|
url: "https://raw.githubusercontent.com/osbuild/osbuild/{{ OSBUILD_COMMIT }}/osbuild.spec"
|
|
dest: /home/ec2-user/osbuild.spec
|
|
|
|
- name: Install build tools
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
package:
|
|
name:
|
|
- rpm-build
|
|
- mock
|
|
- createrepo_c
|
|
state: present
|
|
|
|
- name: Make osbuild srpm
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
command: >-
|
|
rpmbuild -bs
|
|
--define "commit {{ OSBUILD_COMMIT }}"
|
|
--define "_topdir /home/ec2-user/rpmbuild"
|
|
--define "_srpmfilename %%{NAME}.srpm"
|
|
/home/ec2-user/osbuild.spec
|
|
|
|
- name: Mockbuild osbuild
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
shell: >-
|
|
mock
|
|
-r "rhel-9-{{ ansible_architecture }}"
|
|
--rebuild
|
|
--define "commit {{ OSBUILD_COMMIT }}"
|
|
--define "_rpmfilename %%{NAME}.rpm"
|
|
--resultdir /home/ec2-user/rpmbuild/RPMS
|
|
/home/ec2-user/rpmbuild/SRPMS/osbuild-*.src.rpm
|
|
|
|
- name: Make osbuild-composer srpm
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
command: >-
|
|
rpmbuild -bs
|
|
--define "commit {{ COMPOSER_COMMIT }}"
|
|
--define "_topdir /home/ec2-user/rpmbuild"
|
|
--define "_srpmfilename %%{NAME}.srpm"
|
|
/home/ec2-user/osbuild-composer.spec
|
|
|
|
|
|
- name: Mockbuild osbuild-composer
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
shell: >-
|
|
mock
|
|
-r "rhel-9-{{ ansible_architecture }}"
|
|
--rebuild
|
|
--define "commit {{ COMPOSER_COMMIT }}"
|
|
--define "_rpmfilename %%{NAME}.rpm"
|
|
--resultdir /home/ec2-user/rpmbuild/RPMS
|
|
/home/ec2-user/rpmbuild/SRPMS/osbuild-composer-*.src.rpm
|
|
|
|
- name: Create a repository from the artifacts
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
command: createrepo_c /home/ec2-user/rpmbuild/RPMS
|
|
|
|
- name: Fetch rpms
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
ansible.posix.synchronize:
|
|
mode: pull
|
|
src: /home/ec2-user/rpmbuild/RPMS
|
|
dest: /osbuild-composer/templates/packer/ansible/roles/common/files/rpmbuild/{{ ansible_architecture }}
|
|
|
|
- name: Unregister
|
|
retries: 5
|
|
delay: 20
|
|
register: result
|
|
until: result is success
|
|
shell: >-
|
|
subscription-manager unregister
|