diff --git a/roles/koji_bootstrap/tasks/main.yaml b/roles/koji_bootstrap/tasks/main.yaml index ddb5170..af718c1 100644 --- a/roles/koji_bootstrap/tasks/main.yaml +++ b/roles/koji_bootstrap/tasks/main.yaml @@ -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 diff --git a/roles/koji_hub/tasks/main.yaml b/roles/koji_hub/tasks/main.yaml index 6ec6ab7..a0583d1 100644 --- a/roles/koji_hub/tasks/main.yaml +++ b/roles/koji_hub/tasks/main.yaml @@ -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 }}" diff --git a/roles/koji_hub/templates/centos10.conf.j2 b/roles/koji_hub/templates/centos10.conf.j2 new file mode 100644 index 0000000..b84a165 --- /dev/null +++ b/roles/koji_hub/templates/centos10.conf.j2 @@ -0,0 +1,7 @@ +Alias /centos10 "{{ koji_mirror_dir }}" + + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + diff --git a/roles/nfs_client/tasks/main.yaml b/roles/nfs_client/tasks/main.yaml index 3204e4e..4d92c48 100644 --- a/roles/nfs_client/tasks/main.yaml +++ b/roles/nfs_client/tasks/main.yaml @@ -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 diff --git a/roles/nfs_server/tasks/main.yaml b/roles/nfs_server/tasks/main.yaml index 9434194..d2fd767 100644 --- a/roles/nfs_server/tasks/main.yaml +++ b/roles/nfs_server/tasks/main.yaml @@ -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 diff --git a/roles/nfs_server/templates/exports.j2 b/roles/nfs_server/templates/exports.j2 index 35b8fe8..c21c5c7 100644 --- a/roles/nfs_server/templates/exports.j2 +++ b/roles/nfs_server/templates/exports.j2 @@ -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 %} diff --git a/vars/default.yaml b/vars/default.yaml index 7f9e5bb..800458b 100644 --- a/vars/default.yaml +++ b/vars/default.yaml @@ -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/"