Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion pillar.example
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,15 @@ remi:
# Maintained for compatibility purpose
disabled: True

# enable modules on RHEL 8+
modules:
php:
reset: True
version: 8.1

# Variable for all the remi repos (remi-php70, remi-php71, remi and so on)
repo:
remi:
disabled: True
remi-php70:
disabled: False
disabled: False
80 changes: 4 additions & 76 deletions remi/init.sls
Original file line number Diff line number Diff line change
@@ -1,80 +1,8 @@
# Completely ignore non-CentOS, non-RHEL systems
{% if grains['os_family'] == 'RedHat' %}

# A lookup table for remi GPG keys & RPM URLs for various RedHat releases
{% set pkg = salt['grains.filter_by']({
'5': {
'key': 'http://rpms.famillecollet.com/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://mirrors.mediatemple.net/remi/enterprise/remi-release-5.rpm',
},
'6': {
'key': 'http://rpms.famillecollet.com/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://mirrors.mediatemple.net/remi/enterprise/remi-release-6.rpm',
},
'7': {
'key': 'http://rpms.famillecollet.com/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://mirrors.mediatemple.net/remi/enterprise/remi-release-7.rpm',
},
'8': {
'key': 'http://rpms.famillecollet.com/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://mirrors.mediatemple.net/remi/enterprise/remi-release-8.rpm',
},
}, 'osmajorrelease') %}


{% set remi_settings = salt['pillar.get']('remi') %}

install_remi_pubkey:
file.managed:
- name: /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
- source: {{ remi_settings.pubkey|default(pkg.key) }}
- source_hash: {{ remi_settings.pubkey_hash|default(pkg.key_hash) }}

include:
- epel

install_remi_rpm:
pkg.installed:
- sources:
- remi-release: {{ remi_settings.rpm|default(pkg.rpm) }}
- requires:
- file: install_remi_pubkey
- pkg: epel

{% if remi_settings.disabled|default(False) %}
disable_remi:
file.replace:
- name: /etc/yum.repos.d/remi.repo
- pattern: '^enabled=\d'
- repl: enabled=0
{% else %}
enable_remi:
file.replace:
- name: /etc/yum.repos.d/remi.repo
- pattern: '^enabled=\d'
- repl: enabled=1
{% endif %}

{% if 'repo' in remi_settings %}
{% for repo,opts in remi_settings.repo.items() %}
{% if opts.disabled|default(False) %}
disable_{{ repo }}:
file.replace:
- name: /etc/yum.repos.d/{{ repo }}.repo
- pattern: '^enabled=\d'
- repl: enabled=0
{% else %}
enable_{{ repo }}:
file.replace:
- name: /etc/yum.repos.d/{{ repo }}.repo
- pattern: '^enabled=\d'
- repl: enabled=1
{% endif %}
{% endfor %}
{% endif %}

- .pkgrepo
{% if 'modules' in salt['pillar.get']('remi') %}
- .modules
{% endif %}
{% endif %}
25 changes: 25 additions & 0 deletions remi/modules/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{%- set modules = salt['pillar.get']('remi:modules', {}) %}
{%- for module,config in modules.items() %}
{%- if config.get('reset', False) %}
reset-{{ module }}-module:
cmd.run:
- name: dnf module reset -y {{ module }}
{%- if 'version' in config %}
- unless: dnf module list --enabled {{ module }}:remi-{{ config.version }}
{% else %}
- unless: dnf module list --enabled {{ module }}:remi
{% endif %}
{% endif %}

{%- if 'version' in config %}
install-{{ module }}-module-{{ config.version }}:
cmd.run:
- name: dnf module install -y {{ module }}:remi-{{ config.version }}
- unless: dnf module list --enabled {{ module }}:remi-{{ config.version }}
{% else %}
install-{{ module }}-module:
cmd.run:
- name: dnf module install -y {{ module }}:remi
- unless: dnf module list --enabled {{ module }}:remi
{% endif %}
{% endfor %}
8 changes: 8 additions & 0 deletions remi/pkgrepo/absent.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{% set remi_settings = salt['pillar.get']('remi') %}
{% if 'repo' in remi_settings %}
{% for repo,_ in remi_settings.repo.items() %}
remove-{{ repo }}:
pkgrepo.absent:
- name: {{ repo }}
{% endfor %}
{% endif %}
2 changes: 2 additions & 0 deletions remi/pkgrepo/init.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include:
- .present
74 changes: 74 additions & 0 deletions remi/pkgrepo/present.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# A lookup table for remi GPG keys & RPM URLs for various RedHat releases
{% set pkg = salt['grains.filter_by']({
'5': {
'key': 'http://rpms.famillecollet.com/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://rpms.remirepo.net/enterprise/remi-release-5.rpm',
},
'6': {
'key': 'http://rpms.famillecollet.com/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://rpms.remirepo.net/enterprise/remi-release-6.rpm',
},
'7': {
'key': 'https://rpms.remirepo.net/enterprise/7/RPM-GPG-KEY-remi',
'key_hash': 'md5=3abb4e5a7b1408c888e19f718c012630',
'rpm': 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm',
},
'8': {
'key': 'https://rpms.remirepo.net/enterprise/8/RPM-GPG-KEY-remi',
'key_hash': 'md5=ed85c36d74acdfaea575631dfb208f7f',
'rpm': 'http://rpms.remirepo.net/enterprise/remi-release-8.rpm',
},
'9': {
'key': 'https://rpms.remirepo.net/enterprise/9/RPM-GPG-KEY-remi',
'key_hash': 'md5=3c6ccaf27b94d199f6530f41b6cc5ab8',
'rpm': 'http://rpms.remirepo.net/enterprise/remi-release-9.rpm',
},
}, 'osmajorrelease') %}


{% set remi_settings = salt['pillar.get']('remi') %}

install_remi_pubkey:
file.managed:
- name: /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
- source: {{ remi_settings.pubkey|default(pkg.key) }}
- source_hash: {{ remi_settings.pubkey_hash|default(pkg.key_hash) }}

{# No longer include EPEL where it is broken #}
{%- if salt['grains.get']('osmajorrelease') > 7 %}
include:
- epel
{%- endif %}

install_remi_rpm:
pkg.installed:
- sources:
- remi-release: {{ remi_settings.rpm|default(pkg.rpm) }}
- require:
- file: install_remi_pubkey
{%- if salt['grains.get']('osmajorrelease') > 7 %}
- pkg: epel_release
{%- endif %}

{% if 'repo' in remi_settings %}
{% for repo, config in remi_settings.repo.items() %}
config_repo_{{ repo }}:
module.run:
- name: pkg.mod_repo
- repo: {{ repo }}
- kwargs:
{% if config.enabled %}
enabled: 1
{% else %}
enabled: 0
{% endif %}
{% if 'exclude' in config %}
exclude: {{ config.exclude|join(',') }}
{% endif %}
- require:
- pkg: install_remi_rpm

{% endfor %}
{% endif %}