From: Zack Cerza Date: Wed, 3 Jun 2015 18:18:05 +0000 (-0600) Subject: Intelligently enable repo sets X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7d6bb40ee72614a36837e3dc7487a5c2daa4b4aa;p=ceph-cm-ansible.git Intelligently enable repo sets Before this, once we were subscribed, we never care *what* we were subscribed to. Signed-off-by: Zack Cerza --- diff --git a/roles/common/tasks/rhel-entitlements.yml b/roles/common/tasks/rhel-entitlements.yml index 745e6ac0..88c16765 100644 --- a/roles/common/tasks/rhel-entitlements.yml +++ b/roles/common/tasks/rhel-entitlements.yml @@ -14,26 +14,53 @@ changed_when: false no_log: true +- name: Set rhsm_registered + set_fact: + rhsm_registered: "{{ subscription.rc == 0 }}" + - name: Register with subscription-manager. command: subscription-manager register --activationkey={{ subscription_manager_activationkey }} --org={{ subscription_manager_org }} no_log: true - when: subscription is defined and - subscription.rc != 0 + when: rhsm_registered == "False" register: entitled until: entitled|success retries: 5 delay: 10 -- name: disable all rhsm repos - command: subscription-manager repos --disable '*' +- name: Get list of enabled repos + shell: sudo subscription-manager repos --list | grep -B4 'Enabled:.*1' | grep 'Repo ID:' | sed -e 's/Repo ID:\s*\(.*\)/\1/' | sort + register: repo_list_cmd + # This only needs to happen if we are not newly-subscribed + when: rhsm_registered == "True" + changed_when: false + +- name: Store list of enabled repos + set_fact: + repo_list: "{{ repo_list_cmd.stdout.split('\n') }}" + when: repo_list_cmd is defined + +- name: Set replace_repos if rhsm_repos changed + set_fact: + replace_repos: "{{ repo_list.sort() != rhsm_repos.sort() }}" + when: repo_list is defined + +- name: Set replace_repos if newly-subscribed + set_fact: + replace_repos: True when: entitled|changed -- name: enable necessary rhsm repos +- name: Disable all rhsm repos + command: subscription-manager repos --disable '*' + when: replace_repos == "True" + # This produces an absurd amount of useless output + no_log: True + +- name: Enable necessary rhsm repos command: subscription-manager repos --enable {{ item }} with_items: rhsm_repos - when: entitled|changed and rhsm_repos|length > 0 + when: replace_repos == "True" and rhsm_repos|length > 0 - name: Remove old apt-mirror repository definition. file: