I have a Saltstack formula for installing a package that is only found in the [rhel-7-server-optional-rpms] repository on Red Hat Enterprise Linux 7. Because this repository is disabled by default I am trying to write a formula that enables the repository, so that the package formula can depend on it.
The file /etc/yum.repos.d/redhat.repo
contains all the repositories separated
into sections like this (shortened version, removed some lines):
[rhel-7-server-fastrack-source-rpms]
baseurl = https://cdn.redhat.com/content/fastrack/rhel/server/7/$basearch/source/SRPMS
sslverify = 1
sslclientcert = /etc/pki/entitlement/<long number>.pem
sslclientkey = /etc/pki/entitlement/<long number>-key.pem
name = Red Hat Enterprise Linux 7 Server - Fastrack (Source RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 0
gpgcheck = 1
[rhel-7-server-source-rpms]
baseurl = https://cdn.redhat.com/content/dist/rhel/server/7/$releasever/$basearch/source/SRPMS
sslverify = 1
sslclientcert = /etc/pki/entitlement/<long number>.pem
sslclientkey = /etc/pki/entitlement/<long number>-key.pem
name = Red Hat Enterprise Linux 7 Server (Source RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 0
gpgcheck = 1
[rhel-7-server-optional-rpms]
baseurl = https://cdn.redhat.com/content/dist/rhel/server/7/$releasever/$basearch/optional/os
sslverify = 1
sslclientcert = /etc/pki/entitlement/<long number>.pem
sslclientkey = /etc/pki/entitlement/<long number>-key.pem
name = Red Hat Enterprise Linux 7 Server - Optional (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 0
gpgcheck = 1
What I have to do is replace the line "enabled=0" with "enabled=1" in the correct section in /etc/yum.repos.d/redhat.repo
. Any tips on how to do this are much appreciated.
Something like this works, but will only replace the first occurence of enabled=[0,1]
in the file, while I need to replace it only in the section [rhel-7-server-optional-rpms]
. My regex knowledge is much too limited to make this work.
enable_optional_rpms:
file.replace:
- name: /etc/yum.repos.d/redhat.repo
- pattern: '^enabled=[0,1]'
- repl: 'enabled=1'
I would also like to have support for older versions of RHEL, so if [rhel-7-server-optional-rpms]
is not found it should look for [rhel-6-server-optional-rpms]
and [rhel-5-server-optional-rpms]
too.
Any help with this would be appreciated.