feat: automate CentOS Stream 10 repository mirroring setup
Add configurations to playbooks and templates for local repository mirroring. This exports and mounts the CentOS Stream 10 local mirror directory (/srv/nfs/cs10), deploys the Apache configuration serving it from the Hub, and parameters the Koji external repository bootstrap tasks to synchronize target URLs with local mirrors. Co-developed-by: Gemini AI <renich+gemini@woralelandia.com> Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
This commit is contained in:
parent
bafaa0e840
commit
be9438afdf
7 changed files with 72 additions and 2 deletions
|
|
@ -55,21 +55,35 @@
|
|||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build centos-stream-10-baseos
|
||||
https://mirror.stream.centos.org/10-stream/BaseOS/x86_64/os/
|
||||
{{ centos_stream_10_baseos_url }}
|
||||
register: koji_bootstrap_add_baseos_repo_result
|
||||
changed_when: "'External repository created' in koji_bootstrap_add_baseos_repo_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_baseos_repo_result.rc != 0 and 'already exists' not in koji_bootstrap_add_baseos_repo_result.stderr"
|
||||
|
||||
- name: Update CentOS Stream 10 BaseOS external repository URL
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
edit-external-repo --url={{ centos_stream_10_baseos_url }} centos-stream-10-baseos
|
||||
changed_when: false
|
||||
|
||||
- name: Add CentOS Stream 10 AppStream external repository
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build centos-stream-10-appstream
|
||||
https://mirror.stream.centos.org/10-stream/AppStream/x86_64/os/
|
||||
{{ centos_stream_10_appstream_url }}
|
||||
register: koji_bootstrap_add_appstream_repo_result
|
||||
changed_when: "'External repository created' in koji_bootstrap_add_appstream_repo_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_appstream_repo_result.rc != 0 and 'already exists' not in koji_bootstrap_add_appstream_repo_result.stderr"
|
||||
|
||||
- name: Update CentOS Stream 10 AppStream external repository URL
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
edit-external-repo --url={{ centos_stream_10_appstream_url }} centos-stream-10-appstream
|
||||
changed_when: false
|
||||
|
||||
- name: Add CentOS Stream 10 EPEL external repository
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
|
|
|
|||
|
|
@ -197,6 +197,15 @@
|
|||
- { src: "99-local-policies.conf.j2", dest: "{{ koji_hub_config_dir }}/99-local-policies.conf" }
|
||||
notify: Restart httpd
|
||||
|
||||
- name: Deploy Apache configuration for CentOS 10 mirror
|
||||
ansible.builtin.template:
|
||||
src: centos10.conf.j2
|
||||
dest: /etc/httpd/conf.d/centos10.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify: Restart httpd
|
||||
|
||||
- name: Set SELinux booleans for Apache
|
||||
ansible.posix.seboolean:
|
||||
name: "{{ item }}"
|
||||
|
|
|
|||
7
roles/koji_hub/templates/centos10.conf.j2
Normal file
7
roles/koji_hub/templates/centos10.conf.j2
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Alias /centos10 "{{ koji_mirror_dir }}"
|
||||
|
||||
<Directory "{{ koji_mirror_dir }}">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
|
@ -30,6 +30,24 @@
|
|||
opts: "rw,sync"
|
||||
state: mounted
|
||||
|
||||
- name: Create mirror mount point directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ koji_mirror_dir }}"
|
||||
state: directory
|
||||
owner: "{{ koji_admin_user }}"
|
||||
group: "{{ koji_admin_user }}"
|
||||
mode: "0755"
|
||||
when: inventory_hostname in groups['kojihub']
|
||||
|
||||
- name: Mount the Koji Mirror NFS share
|
||||
ansible.posix.mount:
|
||||
path: "{{ koji_mirror_dir }}"
|
||||
src: "{{ koji_nfs_host }}:{{ koji_mirror_dir }}"
|
||||
fstype: nfs
|
||||
opts: "rw,sync"
|
||||
state: mounted
|
||||
when: inventory_hostname in groups['kojihub']
|
||||
|
||||
- name: Set SELinux context for Koji NFS mount
|
||||
ansible.builtin.command: semanage fcontext -a -t nfs_t "{{ koji_top_dir }}(/.*)?"
|
||||
changed_when: false
|
||||
|
|
|
|||
|
|
@ -13,6 +13,20 @@
|
|||
group: nobody
|
||||
mode: "0755"
|
||||
|
||||
- name: Ensure Koji Admin user exists
|
||||
ansible.builtin.user:
|
||||
name: "{{ koji_admin_user }}"
|
||||
state: present
|
||||
create_home: true
|
||||
|
||||
- name: Create the Koji mirror directory to be exported
|
||||
ansible.builtin.file:
|
||||
path: "{{ koji_mirror_dir }}"
|
||||
state: directory
|
||||
owner: "{{ koji_admin_user }}"
|
||||
group: "{{ koji_admin_user }}"
|
||||
mode: "0755"
|
||||
|
||||
- name: Add Koji nodes to /etc/hosts on NFS server
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/hosts
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
{% for host in groups['koji_nodes'] %}
|
||||
{{ koji_top_dir }} {{ host }}(rw,sync,no_root_squash)
|
||||
{% endfor %}
|
||||
{% for host in groups['kojihub'] %}
|
||||
{{ koji_mirror_dir }} {{ host }}(rw,sync,no_root_squash)
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ sigul_server: http://localhost:8080/sigul
|
|||
|
||||
# Paths & Directories
|
||||
koji_top_dir: /mnt/koji
|
||||
koji_mirror_dir: /srv/nfs/cs10
|
||||
koji_pki_dir: "{{ playbook_dir }}/certs"
|
||||
kojid_work_dir: /var/lib/kojid
|
||||
koji_remote_pki_dir: /etc/pki/koji
|
||||
|
|
@ -107,3 +108,7 @@ koji_cleanup_service_path: /etc/systemd/system/koji-cleanup.service
|
|||
koji_cleanup_timer_path: /etc/systemd/system/koji-cleanup.timer
|
||||
koji_callbacks_script_path: /usr/local/bin/koji_callbacks.py
|
||||
koji_callbacks_config_path: /etc/koji-hub/hub.conf.d/callbacks.conf
|
||||
|
||||
# External Repository URLs
|
||||
centos_stream_10_baseos_url: "https://{{ koji_hub_fqdn }}/centos10/baseos/"
|
||||
centos_stream_10_appstream_url: "https://{{ koji_hub_fqdn }}/centos10/appstream/"
|
||||
|
|
|
|||
Loading…
Reference in a new issue