Build Windows Templates in RHV
This commit is contained in:
83
roles/systemli.apt_repositories/tasks/repo.yml
Normal file
83
roles/systemli.apt_repositories/tasks/repo.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
|
||||
- name: Clear preset
|
||||
include_vars: null.yml
|
||||
|
||||
- name: Read in preset
|
||||
include_vars:
|
||||
file: "{{ item.preset }}.yml"
|
||||
name: _preset
|
||||
when: item.preset is defined
|
||||
|
||||
# - debug:
|
||||
# var: _preset
|
||||
|
||||
- name: combine preset with given config
|
||||
set_fact:
|
||||
_config: "{{ _preset|default({})|combine(item) }}"
|
||||
|
||||
# - debug:
|
||||
# var: _config
|
||||
|
||||
- name: ensure we have a repo name 1
|
||||
set_fact:
|
||||
_name: "{{ _config.name }}"
|
||||
when: _config.name is defined and _config.name
|
||||
|
||||
- name: ensure we have a repo name 2
|
||||
set_fact:
|
||||
_name: "{{ _config.url|urlsplit('hostname') }}"
|
||||
when: _config.name is undefined or not _config.name
|
||||
|
||||
- name: Add key for {{ _name }} by content
|
||||
apt_key:
|
||||
data: "{{ _config.key }}"
|
||||
keyring: /usr/share/keyrings/{{ _name }}.gpg
|
||||
when: _config.key is defined and _config.key
|
||||
|
||||
- import_tasks: key_path.yml
|
||||
when: _config.key is undefined or not _config.key
|
||||
|
||||
- name: Register final keyring stats
|
||||
stat:
|
||||
path: /usr/share/keyrings/{{ _name }}.gpg
|
||||
register: _f
|
||||
|
||||
# - debug:
|
||||
# var: _f
|
||||
|
||||
- name: Ensure we have binary key
|
||||
assert:
|
||||
that:
|
||||
- _f.stat.exists
|
||||
- _f.stat.charset == 'binary'
|
||||
when: not ansible_check_mode
|
||||
|
||||
- name: Add repository {{ _name }}
|
||||
template:
|
||||
src: repo.sources.j2
|
||||
dest: /etc/apt/sources.list.d/{{ _name }}.sources
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: _config.style is undefined or _config.style == "deb822"
|
||||
|
||||
- name: Add repository {{ _name }} in single line style
|
||||
template:
|
||||
src: repo.list.j2
|
||||
dest: /etc/apt/sources.list.d/{{ _name }}.list
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
when: _config.style is defined and _config.style == "line"
|
||||
|
||||
# apt currently only support meaningful pinning by hostname
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858406
|
||||
|
||||
- name: Add pinning preferences for {{ _name }}
|
||||
template:
|
||||
src: pref.j2
|
||||
dest: /etc/apt/preferences.d/{{ _name }}.pref
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
Reference in New Issue
Block a user