This is exactly how I do it, but I'd still like to be able to disable
the repo.
e.g. when I want repoforge added, I have a role:
repoforge/vars/main.yml:
---
rpmforge_rpm_name: rpmforge-release-0.5.3-1.el6.rf.{{ ansible_machine }}.rpm
$ ls repoforge/files/ | cat
rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
tasks/main.yml:
- copy: src={{rpmforge_rpm_name}}
dest=/usr/local/src/{{rpmforge_rpm_name}}
- shell: rpm -ivh /usr/local/src/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
creates=/etc/yum.repos.d/rpmforge.repo
- shell: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag && touch /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag.imported
creates=/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag.imported
The yum.repos.d file has 3 repos, 1 enabled & two disabled:
# egrep '(^\[|enabled =)' rpmforge.repo
[rpmforge]
enabled = 1
[rpmforge-extras]
enabled = 0
[rpmforge-testing]
enabled = 0
Having a yum_repository module would allow the managing of specific repo
parameters like enabled, includepkgs, without templating the parts that might
change due to a 'xx-release' repo rpm, like the baseurl or mirrorlist url.
Currently, to achieve all repos disabled, I do the nasty:
# determine if repo is enabled and then disable if necessary
- shell: grep -q 'enabled = 1' /etc/yum.repos.d/rpmforge.repo
register: yum_repo_rpmforge_enabled
ignore_errors: yes
- shell: sed -i -e 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo
only_if: "${yum_repo_rpmforge_enabled.rc} == 0"
I couldn't get lineinfile to do what I want when multiple lines matching the
regex need to be changed. Any tips?
Thanks,
Chris