Skip to content

Instantly share code, notes, and snippets.

@dav1x
Created September 27, 2017 13:44
Show Gist options
  • Save dav1x/2314b5487c67bb3473863af189c46486 to your computer and use it in GitHub Desktop.
Save dav1x/2314b5487c67bb3473863af189c46486 to your computer and use it in GitHub Desktop.
# playbook
---
- hosts: localhost
gather_facts: yes
become: yes
roles:
- rhsm
- hosts: localhost
gather_facts: yes
become: yes
roles:
- setup-provider
# Role vars:
openshift_deploy_repos: ['rhel-server-rhscl-7-rpms']
openshift_deploy_packages: ['python27', 'git', 'atomic-openshift-utils', 'python-click', 'python-ldap', 'ansible-2.3']
openshift_deploy_epel_packages: ['python2-boto', 'python-netaddr', 'python2-boto3', 'python-iptools', 'python2-pyvmomi']
epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm"
epel_repo_gpg_key_url: "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}"
epel_repofile_path: "/etc/yum.repos.d/epel.repo"
# Role
---
- name: "Obtain currently enabled repos"
shell: 'subscription-manager repos --list-enabled | sed -ne "s/^Repo ID:[^a-zA-Z0-9]*\(.*\)/\1/p"'
register: enabled_repos
- name: "Enable specified repositories not already enabled"
command: "subscription-manager repos --enable={{ item }}"
with_items:
- "{{ openshift_deploy_repos | difference(enabled_repos.stdout_lines) }}"
register: subscribe_repos
until: subscribe_repos | succeeded
- name: "Be sure all pre-req provider packages are installed"
yum: name={{item}} state=installed
with_items:
- "{{ openshift_deploy_packages }}"
- name: Check if EPEL repo is already configured.
stat: path={{ epel_repofile_path }}
register: epel_repofile_result
- name: Install EPEL repo.
yum:
name: "{{ epel_repo_url }}"
state: present
register: result
until: '"failed" not in result'
retries: 5
delay: 10
when: not epel_repofile_result.stat.exists
- name: Import EPEL GPG key.
rpm_key:
key: "{{ epel_repo_gpg_key_url }}"
state: present
when: not epel_repofile_result.stat.exists
ignore_errors: "{{ ansible_check_mode }}"
- name: be sure all pre-req provider EPEL packages are installed
yum: name={{item}} state=installed
with_items:
- "{{ openshift_deploy_epel_packages }}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment