apt-repositories: manage components for backports and basics

This commit is contained in:
Jérémy Lecour 2017-03-24 12:05:32 +01:00 committed by Jérémy Lecour
parent 3bfc4d0a1d
commit 720abec880
7 changed files with 87 additions and 11 deletions

View file

@ -1,7 +1,56 @@
# apt-backports
# apt-repositories
Add a backports source list
A few APT related operations, like easily install backports of change components for repositories.
## Tasks
Everything is in the `tasks/main.yml` file.
Tasks are extracted in several files, included in `tasks/main.yml` :
* `backports.yml` : add a sources list for backports ;
* `basics_components.yml` : replace components for the basic sources.
## Available variables
* `apt_repositories_install_backports` : install backports sources (default: `False`) ;
* `apt_repositories_backports_components` : backports sources (default: `main`) ;
* `apt_repositories_change_basics_components` : change basic sources components (default: `False`) ;
* `apt_repositories_backports_components` : basic sources components (default: `main`) ;
## Examples
To add "non-free" and "contrib" components to basic sources lists :
```
{ role: apt-repositories,
apt_repositories_change_basics_components: True,
apt_repositories_basics_components: "main non-free contrib"
}
```
To install backports sources lists :
```
{ role: apt-repositories,
apt_repositories_install_backports: False: True
}
```
To install backports sources lists with "non-free" and "contrib" :
```
{ role: apt-repositories,
apt_repositories_install_backports: False: True,
apt_repositories_backports_components: "main non-free contrib"
}
```
To install backports sources lists and have "non-free" and "contrib" for each repository :
```
{ role: apt-repositories,
apt_repositories_change_basics_components: True,
apt_repositories_basics_components: "main non-free contrib",
apt_repositories_install_backports: False: True,
apt_repositories_backports_components: "main non-free contrib"
}
```

View file

@ -1,2 +1,5 @@
apt_repositories_components: "main"
apt_repositories_backports: True
apt_repositories_change_basics_components: False
apt_repositories_basics_components: "main"
apt_repositories_install_backports: False
apt_repositories_backports_components: "main"

View file

@ -17,5 +17,3 @@
backup: yes
mode: "0640"
notify: apt update
- meta: flush_handlers

View file

@ -0,0 +1,12 @@
---
- name: Change basic repositories components
replace:
dest: /etc/apt/sources.list
regexp: '^({{ item }}) .*'
replace: '\1 {{ apt_repositories_basics_components }}'
with_items:
- "deb(-src)? http://security.debian.org/ {{ ansible_distribution_release }}/updates"
- "deb(-src)? http://mirror.evolix.org/debian/ {{ ansible_distribution_release }}"
- "deb(-src)? http://mirror.evolix.org/debian/ {{ ansible_distribution_release }}-updates"
notify: apt update

View file

@ -1,5 +1,19 @@
---
- name: Install APT Backports
- name: Fail if distribution is not supported
fail:
msg: "Error: '{{ ansible_os_family }} {{ ansible_distribution_release }}' is not a supported distribution."
when:
- ansible_distribution_release != "jessie"
- ansible_distribution_release != "stretch"
- name: Add components to basic repositories
include: basics_components.yml
when: apt_repositories_change_basics_components
- name: Install APT Backports repository
include: backports.yml
when: apt_repositories_backports
when: apt_repositories_install_backports
- name: Intermediate flush of handlers
meta: flush_handlers

View file

@ -1 +1 @@
deb http://mirror.evolix.org/debian jessie-backports {{ apt_repositories_components | mandatory }}
deb http://mirror.evolix.org/debian jessie-backports {{ apt_repositories_backports_components | mandatory }}

View file

@ -1 +1 @@
deb http://mirror.evolix.org/debian stretch-backports {{ apt_repositories_components | mandatory }}
deb http://mirror.evolix.org/debian stretch-backports {{ apt_repositories_backports_components | mandatory }}