extract reprepro logic to dedicated role

This commit is contained in:
ionutboangiu
2025-03-19 20:33:52 +02:00
committed by Dan Christian Bogos
parent 18644c7f0b
commit 7497e1c91e
4 changed files with 114 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
---
reprepro_basedir: /var/packages/debian

View File

@@ -0,0 +1,54 @@
---
- name: Validate distributions variable
ansible.builtin.fail:
msg: "The 'distributions' variable must be defined and contain at least one distribution with codename and version properties."
when: not distributions | default(false)
- name: Ensure reprepro is installed
become: true
ansible.builtin.apt:
name: reprepro
state: present
- name: Create debian repository base directory
become: true
ansible.builtin.file:
path: "{{ reprepro_basedir }}"
state: directory
- name: Create reprepro configuration directory
become: true
ansible.builtin.file:
path: "{{ reprepro_basedir }}/conf"
state: directory
- name: Create reprepro incoming packages directory
become: true
ansible.builtin.file:
path: "{{ reprepro_basedir }}/incoming"
state: directory
- name: Configure reprepro distribution settings
become: true
ansible.builtin.template:
src: distributions.conf.j2
dest: "{{ reprepro_basedir }}/conf/distributions"
mode: "0600"
owner: root
- name: Configure reprepro general options
become: true
ansible.builtin.template:
src: options.conf.j2
dest: "{{ reprepro_basedir }}/conf/options"
mode: "0600"
owner: root
- name: Initialize empty override file for testing distribution
become: true
ansible.builtin.copy:
content: ""
dest: "{{ reprepro_basedir }}/conf/override.testing"
force: false
group: root
owner: root

View File

@@ -0,0 +1,55 @@
{{ ansible_managed | comment }}
Origin: apt.cgrates.org
Label: apt.cgrates.org
Suite: stable
Codename: v0.10
Architectures: amd64
Components: main
Description: CGRateS v0.10 APT repository
SignWith: yes
DebOverride: override.testing
DscOverride: override.testing
Origin: apt.cgrates.org
Label: apt.cgrates.org
Suite: master
Codename: master
Architectures: amd64
Components: main
Description: CGRateS master APT repository
SignWith: yes
DebOverride: override.testing
DscOverride: override.testing
{% for distribution in distributions %}
Origin: apt.cgrates.org
Label: apt.cgrates.org
Suite: stable-{{ distribution['codename'] }}
Codename: v0.10-{{ distribution['codename'] }}
Architectures: amd64 source
Components: main
Description: CGRateS v0.10 APT repository for {{ distribution['codename'] }}
DebIndices: Packages Release . .gz
Contents: . .gz
ContentsArchitectures: amd64 source
ContentsComponents: main
SignWith: yes
DebOverride: override.testing
DscOverride: override.testing
Origin: apt.cgrates.org
Label: apt.cgrates.org
Suite: master-{{ distribution['codename'] }}
Codename: master-{{ distribution['codename'] }}
Architectures: amd64 source
Components: main
Description: CGRateS master APT repository for {{ distribution['codename'] }}
DebIndices: Packages Release . .gz
Contents: . .gz
ContentsArchitectures: amd64 source
ContentsComponents: main
SignWith: yes
DebOverride: override.testing
DscOverride: override.testing
{% endfor %}

View File

@@ -0,0 +1,3 @@
{{ ansible_managed | comment }}
verbose
basedir /var/packages/debian