configpolicy/group_vars
Dustin c6f0ea9720 r/repohost: Configure Yum package repo host
So it turns out Gitea's RPM package repository feature is less than
stellar.  Since each organization/user can only have a single
repository, separating packages by OS would be extremely cumbersome.
Presumably, the feature was designed for projects that only build a
single PRM for each version, but most of my packages need multiple
builds, as they tend to link to system libraries.  Further, only the
repository owner can publish to user-scoped repositories, so e.g.
Jenkins cannot publish anything to a repository under my *dustin*
account.  This means I would ultimately have to create an Organization
for every OS/version I need to support, and make Jenkins a member of it.
That sounds tedious and annoying, so I decided against using that
feature for internal packages.

Instead, I decided to return to the old ways, publishing packages with
`rsync` and serving them with Apache.  It's fairly straightforward to
set this up: just need a directory with the appropriate permissions for
users to upload packages, and configure Apache to serve from it.

One advantage Gitea's feature had over a plain directory is its
automatic management of repository metadata.  Publishers only have to
upload the RPMs they want to serve, and Gitea handles generating the
index, database, etc. files necessary to make the packages available to
Yum/dnf.  With a plain file host, the publisher would need to use
`createrepo` to generate the repository metadata and upload that as
well.  For repositories with multiple packages, the publisher would need
a copy of every RPM file locally in order for them to be included in the
repository metadata.  This, too, seems like it would be too much trouble
to be tenable, so I created a simple automatic metadata manager for the
file-based repo host.  Using `inotifywatch`, the `repohost-createrepo`
script watches for file modifications in the repository base directory.
Whenever a file is added or changed, the directory containing it is
added to a queue.  Every thirty seconds, the queue is processed; for
each unique directory in the queue, repository metadata are generated.

This implementation combines the flexibility of a plain file host,
supporting an effectively unlimited number of repositories with
fully-configurable permissions, and the ease of publishing of a simple
file upload.
2023-11-07 20:51:10 -06:00
..
dch-gw Move dch_networks definition to all group 2018-10-13 12:43:35 -05:00
frigate frigate: Configure journal2ntfy for MD RAID 2023-06-08 10:05:36 -05:00
grafana grafana: Update LDAP server host name 2023-04-12 14:07:51 -05:00
metricspi metricspi: alerts: Increase Frigate disk threshold 2023-10-15 09:52:12 -05:00
nut nut: Add playbook for NUT 2021-10-31 14:28:27 -05:00
public-web websites: Add hatchlearningcenter.org 2022-11-30 22:04:29 -06:00
pxe r/netboot/jenkins-agent: Configure NBD exports 2022-08-15 17:14:06 -05:00
pyrocufflink pyrocufflink: Add Luma SSH keys for root 2023-07-05 16:35:57 -05:00
pyrocufflink-dns pyrocufflink-dns: Remove dc0 forwarder 2021-12-18 16:44:48 -06:00
synapse synapse: Back up data using BURP 2023-05-23 09:52:50 -05:00
unifi burp-server: Keep more backups 2023-07-17 16:36:37 -05:00
Fedora37.yml Fedora37: Set collectd SELinux domain permissive 2022-12-19 10:22:00 -06:00
all.yml Add new FireMon user network address 2019-08-23 08:48:22 -05:00
aria2.yml aria2: Deploy aria2 download manager 2018-08-19 14:17:48 -05:00
bitwarden_rs.yml vaultwarden: Change Domain URL 2023-03-03 11:17:07 -06:00
burp-client.yml hosts: Add burp1.p.b 2020-01-25 13:57:04 -06:00
burp-server.yml burp-server: Keep more backups 2023-07-17 16:36:37 -05:00
collectd.yml Switch Prometheus/collectd to pull 2021-10-30 16:41:17 -05:00
dch-vpn.yml dch-vpn: Avoid configuring firewalld 2018-10-13 12:19:25 -05:00
file-servers.yml fileserver: Configure Apache ~user directories 2019-01-04 20:52:23 -06:00
gitea.yml gitea: Back up with BURP 2023-04-12 14:07:51 -05:00
home-assistant.yml home-assistant: Back up Zigbee/ZWave/Mosquitto 2022-12-23 06:56:52 -06:00
jenkins-slave.yml jenkins-slave: Allow Jenkins to connect to Docker 2019-09-19 19:50:35 -05:00
k8s-controller.yml hosts: Add Kubernetes machines 2022-08-03 20:52:01 -05:00
k8s-node.yml hosts: Add Kubernetes machines 2022-08-03 20:52:01 -05:00
koji-hub.yml hosts: Add koji0.pyrocufflink.blue 2018-08-12 10:27:20 -05:00
koji.yml hosts: Add koji0.pyrocufflink.blue 2018-08-12 10:27:20 -05:00
kubelet.yml r/collectd: Ignore filesystems by path 2022-08-05 18:56:48 -05:00
nextcloud.yml nextcloud: Trust headers from public rev proxy 2021-12-20 22:20:09 -06:00
prometheus.yml Switch Prometheus/collectd to pull 2021-10-30 16:41:17 -05:00
pyrocufflink-dhcp.yml pyrocufflink-dhcp: DHCP reservations for VM hosts 2021-02-17 20:33:41 -06:00
radius.yml Move APs to Management network 2018-07-15 09:19:39 -05:00
repohost.yml r/repohost: Configure Yum package repo host 2023-11-07 20:51:10 -06:00
samba-dc.yml samba-dc: Omit tls cafile setting 2023-05-10 08:28:49 -05:00
smtp-relay.yml smtp-relay: Switch to Fastmail 2023-10-24 17:27:21 -05:00
taiga.yml taiga: Add playbook for Taiga 2019-09-19 19:51:45 -05:00
vm-hosts.yml hosts: Decommission dc-4k6s8e.p.b 2023-10-28 16:07:56 -05:00
zabbix-server.yml zabbix-server: Allow SMTP relay from any loopback 2019-04-15 10:05:04 -05:00
zabbix.yml hosts: Add hosts to zabbix group 2018-04-14 15:47:49 -05:00