diff --git a/inventory/host_vars/packages03.phx2.fedoraproject.org b/inventory/host_vars/packages03.phx2.fedoraproject.org index eaa6aebbf9..fb8b137ca2 100644 --- a/inventory/host_vars/packages03.phx2.fedoraproject.org +++ b/inventory/host_vars/packages03.phx2.fedoraproject.org @@ -11,3 +11,5 @@ ks_repo: http://10.5.126.23/repo/rhel/RHEL6-x86_64/ volgroup: /dev/vg_virthost01 vmhost: virthost01.phx2.fedoraproject.org datacenter: phx2 + +install_packages_indexer: True diff --git a/inventory/host_vars/packages03.stg.phx2.fedoraproject.org b/inventory/host_vars/packages03.stg.phx2.fedoraproject.org index 2b1fe48ee3..dbc6f91bbf 100644 --- a/inventory/host_vars/packages03.stg.phx2.fedoraproject.org +++ b/inventory/host_vars/packages03.stg.phx2.fedoraproject.org @@ -11,3 +11,5 @@ ks_repo: http://10.5.126.23/repo/rhel/RHEL6-x86_64/ volgroup: /dev/vg_guests vmhost: virthost12.phx2.fedoraproject.org datacenter: phx2 + +install_packages_indexer: True diff --git a/inventory/host_vars/packages04.phx2.fedoraproject.org b/inventory/host_vars/packages04.phx2.fedoraproject.org index 896ef1acc7..5c95597859 100644 --- a/inventory/host_vars/packages04.phx2.fedoraproject.org +++ b/inventory/host_vars/packages04.phx2.fedoraproject.org @@ -11,3 +11,5 @@ ks_repo: http://10.5.126.23/repo/rhel/RHEL6-x86_64/ volgroup: /dev/vg_virthost03 vmhost: virthost03.phx2.fedoraproject.org datacenter: phx2 + +install_packages_indexer: False diff --git a/roles/packages/files/cron-flush-pkgs-cache b/roles/packages/files/cron-flush-pkgs-cache new file mode 100644 index 0000000000..a4e1f0aee5 --- /dev/null +++ b/roles/packages/files/cron-flush-pkgs-cache @@ -0,0 +1 @@ +0 2 * * * apache /usr/bin/find /var/cache/fedoracommunity/git.fedoraproject.org -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \; >> /var/log/fedoracommunity/cron-flush-pkgs-cache.log 2>&1 diff --git a/roles/packages/files/cron-sync-latest-builds b/roles/packages/files/cron-sync-latest-builds new file mode 100644 index 0000000000..e97b6d35fa --- /dev/null +++ b/roles/packages/files/cron-sync-latest-builds @@ -0,0 +1 @@ +*/15 * * * * apache /usr/bin/fcomm-index-latest-builds -p /var/cache/fedoracommunity/packages/xapian --koji-url http://koji.fedoraproject.org/kojihub >> /var/log/fedoracommunity/cron-sync-latest-builds.log 2>&1 diff --git a/roles/packages/files/cron-sync-package-index b/roles/packages/files/cron-sync-package-index new file mode 100644 index 0000000000..8b76c84dc0 --- /dev/null +++ b/roles/packages/files/cron-sync-package-index @@ -0,0 +1,2 @@ +0 0 * * * apache /usr/bin/fcomm-index-packages -p /var/cache/fedoracommunity/packages/tmp -y /etc/fedoracommunity/yum-repo.conf --index-db-dest /var/cache/fedoracommunity/packages/xapian --icons-dest /var/cache/fedoracommunity/packages/icons --tagger-url https://apps.fedoraproject.org/tagger/api/v1/tag/export/ --pkgdb-url https://admin.fedoraproject.org/pkgdb >> /var/log/fedoracommunity/cron-sync-package-index.log 2>&1 + diff --git a/roles/packages/files/cron-sync-yum b/roles/packages/files/cron-sync-yum new file mode 100644 index 0000000000..b5080e0ef1 --- /dev/null +++ b/roles/packages/files/cron-sync-yum @@ -0,0 +1 @@ +*/15 * * * * apache /usr/local/bin/sync-yum >> /var/log/fedoracommunity/cron-sync-yum.log 2>&1 diff --git a/roles/packages/files/cron_fcomm_log_rotate b/roles/packages/files/cron_fcomm_log_rotate new file mode 100644 index 0000000000..cd2e6244ff --- /dev/null +++ b/roles/packages/files/cron_fcomm_log_rotate @@ -0,0 +1,24 @@ +/var/log/fedoracommunity/cron-sync-latest-builds.log { + missingok + notifempty + rotate 4 + weekly +} +/var/log/fedoracommunity/cron-sync-package-builds.log { + missingok + notifempty + rotate 4 + weekly +} +/var/log/fedoracommunity/cron-sync-yum.log { + missingok + notifempty + rotate 4 + weekly +} +/var/log/fedoracommunity/cron-flush-pkgs-cache.log { + missingok + notifempty + rotate 4 + weekly +} diff --git a/roles/packages/files/sync-yum b/roles/packages/files/sync-yum new file mode 100644 index 0000000000..afd5ff75b9 --- /dev/null +++ b/roles/packages/files/sync-yum @@ -0,0 +1,34 @@ +#!/bin/bash + +LOCKFILE=/var/cache/fedoracommunity/fedora-packages-yum.lock + +rebuild=$(cat <<"EOF" +echo 'Trying makecache.' +/usr/bin/yum makecache -c /etc/fedoracommunity/yum-repo.conf --enablerepo=* +echo 'Releasing $LOCKFILE' +EOF +) +nuke_and_rebuild=$(cat <<"EOF" +echo 'Nuking.' +rm /var/cache/fedoracommunity/packages/tmp/var/lib/rpm/__db.* +/usr/bin/rpmdb --root=/var/cache/fedoracommunity/packages/tmp/var/lib/rpm --rebuilddb +echo 'Trying makecache again now.' +/usr/bin/yum makecache -c /etc/fedoracommunity/yum-repo.conf --enablerepo=* +echo 'Releasing $LOCKFILE' +EOF +) + + +echo "Acquiring $LOCKFILE..." +flock $LOCKFILE -c "$rebuild" + + +# If it failed, then try to nuke and rebuild the rpmdb first. +if [ $? -eq 1 ] ; then + echo 'makecache failed... sleeping for 10 seconds.' + sleep 10 + echo 'Waking. Now trying to rebuild the rpmdb.' + + echo "Acquiring $LOCKFILE..." + flock $LOCKFILE -c "$nuke_and_rebuild" +fi diff --git a/roles/packages/tasks/main.yml b/roles/packages/tasks/main.yml index 1cd495e1f4..988c29fd0a 100644 --- a/roles/packages/tasks/main.yml +++ b/roles/packages/tasks/main.yml @@ -94,3 +94,23 @@ with_items: - redis - fcomm-cache-worker + +# Here's the indexer stuff +- name: Copy some scripts for /usr/local + copy: src="{{item}}" dest="/usr/local/bin/{{item}}" mode=0755 + with_items: + - sync-yum + when: install_packages_indexer + +- name: Copy the indexer cronjobs + copy: src="{{item}}" dest="/etc/cron.d/{{item}}" + with_items: + - cron-sync-yum + - cron-sync-latest-builds + - cron-sync-package-index + - cron-flush-pkgs-cache + when: install_packages_indexer + +- name: Confygure Ye Olde Logge Rotatyr + copy: src=cron_fcomm_log_rotate dest=/etc/logrotate.d/cron_fcomm_log_rotate + when: install_packages_indexer