fix(debian): avoid adding repositories entries multiple times

Entries are being duplicated as described in

* https://github.com/saltstack/salt/issues/60220 and
* https://github.com/saltstack/salt/issues/59785#issuecomment-826590482
This commit is contained in:
Javier Bértoli 2022-03-01 13:42:37 -03:00
parent c9380274d4
commit d1d3e552ad
3 changed files with 18 additions and 13 deletions

View File

@ -123,7 +123,9 @@
'opts': {},
},
'package': {
'opts': {},
'opts': {
'refresh': True,
},
},
'service': {
'enable': True,

View File

@ -20,6 +20,7 @@ include:
passenger_install:
pkg.installed:
{{ sls_block(nginx.package.opts) }}
- name: {{ nginx.lookup.passenger_package }}
- require:
- pkg: nginx_install

View File

@ -25,6 +25,8 @@
{% set from_phusionpassenger = false %}
{%- endif %}
{%- set resource_repo_managed = 'file' if grains.os_family == 'Debian' else 'pkgrepo' %}
nginx_install:
pkg.installed:
{{ sls_block(nginx.package.opts) }}
@ -47,21 +49,21 @@ nginx_official_repo_keyring:
)
}}
- require_in:
- pkgrepo: nginx_official_repo
- {{ resource_repo_managed }}: nginx_official_repo
{%- endif %}
nginx_official_repo:
pkgrepo:
file:
{%- if from_official %}
- managed
{%- else %}
- absent
{%- endif %}
- humanname: nginx apt repo
- name: >-
- name: /etc/apt/sources.list.d/nginx-official-{{ grains.oscodename }}.list
- contents: >
deb [signed-by={{ nginx.lookup.package_repo_keyring }}]
http://nginx.org/packages/{{ grains.os | lower }}/ {{ grains.oscodename }} nginx
- file: /etc/apt/sources.list.d/nginx-official-{{ grains.oscodename }}.list
- require_in:
- pkg: nginx_install
- watch_in:
@ -98,7 +100,7 @@ nginx_phusionpassenger_repo_keyring:
)
}}
- require_in:
- pkgrepo: nginx_phusionpassenger_repo
- {{ resource_repo_managed }}: nginx_phusionpassenger_repo
# Remove the old repo file
nginx_phusionpassenger_repo_remove:
@ -106,25 +108,25 @@ nginx_phusionpassenger_repo_remove:
- name: deb http://nginx.org/packages/{{ grains.os |lower }}/ {{ grains.oscodename }} nginx
- keyid: 561F9B9CAC40B2F7
- require_in:
- pkgrepo: nginx_phusionpassenger_repo
- {{ resource_repo_managed }}: nginx_phusionpassenger_repo
file.absent:
- name: /etc/apt/sources.list.d/nginx-phusionpassenger-{{ grains.oscodename }}.list
- require_in:
- pkgrepo: nginx_phusionpassenger_repo
- {{ resource_repo_managed }}: nginx_phusionpassenger_repo
{%- endif %}
nginx_phusionpassenger_repo:
pkgrepo:
file:
{%- if from_phusionpassenger %}
- managed
{%- else %}
- absent
{%- endif %}
- humanname: nginx phusionpassenger repo
- name: >-
- name: /etc/apt/sources.list.d/phusionpassenger-official-{{ grains.oscodename }}.list
- contents: >
deb [signed-by={{ nginx.lookup.passenger_package_repo_keyring }}]
https://oss-binaries.phusionpassenger.com/apt/passenger {{ grains.oscodename }} main
- file: /etc/apt/sources.list.d/phusionpassenger-official-{{ grains.oscodename }}.list
- require_in:
- pkg: nginx_install
- watch_in: