---
|
- name: Step 00xxxxx post software
|
hosts: bastions
|
become: yes
|
gather_facts: False
|
tasks:
|
- debug:
|
msg: "Post-Software Steps starting"
|
|
- name: Set hostname fact
|
set_fact:
|
hostname: "{{ ansible_hostname}}.{{subdomain_base}}"
|
|
- name: Set hostname
|
hostname:
|
name: "{{ hostname }}"
|
|
- name: Make hostname permanent
|
command: "echo {{ hostname }} > /etc/hostname"
|
|
- name: Ensure software is installed
|
yum:
|
name: "{{ item }}"
|
state: latest
|
with_items:
|
- git
|
- vim
|
- ansible
|
- docker
|
|
- name: Copy docker registries.conf file
|
copy:
|
src: ./files/registries.conf
|
dest: /etc/containers/registries.conf
|
mode: 0644
|
owner: root
|
group: root
|
|
- name: Ensure /root/.docker directory exists
|
file:
|
path: /root/.docker
|
state: directory
|
mode: 775
|
owner: root
|
group: root
|
|
- name: Copy docker config.conf file
|
when: osrelease is version_compare('3.11', '>=')
|
template:
|
src: ./files/config.j2
|
dest: /root/.docker/config.json
|
mode: 0644
|
owner: root
|
group: root
|
|
- name: Restart docker
|
systemd:
|
name: docker
|
state: restarted
|
|
- name: Set OpenShift root config directory
|
set_fact:
|
ocp_root: "/var/lib/openshift"
|
|
- name: Ensure OpenShift config directory exists
|
file:
|
path: "{{ ocp_root }}"
|
state: directory
|
owner: root
|
group: root
|
mode: 0775
|
|
- name: Ensure OpenShift config subdirectories exists for OCP 3.9
|
file:
|
path: "{{ item }}"
|
state: directory
|
owner: root
|
group: root
|
mode: 0775
|
with_items:
|
- "{{ ocp_root }}/config"
|
- "{{ ocp_root }}/data"
|
- "{{ ocp_root }}/pv"
|
- "{{ ocp_root }}/volumes"
|
when: osrelease is version_compare("3.10", "<")
|
|
- name: Create oc_cluster system service
|
template:
|
src: ./files/oc-cluster.service.j2
|
dest: "/usr/lib/systemd/system/oc-cluster.service"
|
|
- name: Enable and start oc-cluster system service
|
systemd:
|
name: oc-cluster
|
enabled: yes
|
state: started
|
register: r_systemd
|
ignore_errors: yes
|
tags: setup_cluster
|
|
# there is a bug that happens sometimes (1/100),
|
# the service is in fail state. Reboot fixes the issue.
|
- name: Restart VM in case of Service Start failure
|
when: r_systemd is failed
|
tags: setup_cluster
|
block:
|
- name: Reboot VM
|
command: shutdown -r +1
|
async: 0
|
poll: 0
|
ignore_errors: yes
|
|
- name: wait for linux host to be available (retry)
|
wait_for_connection:
|
delay: 90
|
timeout: 200
|
|
- ping:
|
register: rping
|
retries: 3
|
delay: 10
|
until: rping is succeeded
|
|
- name: Retry to enable and start oc-cluster system service
|
systemd:
|
name: oc-cluster
|
enabled: yes
|
state: started
|
|
- name: Wait for oc-cluster to be up and running
|
tags: setup_cluster
|
wait_for:
|
host: "{{ hostname }}"
|
port: 8443
|
sleep: 2
|
|
- name: Check if cluster is already set up
|
tags: setup_cluster
|
stat:
|
path: /root/.setupcomplete
|
register: occluster_setup
|
|
- name: Setup and configure oc cluster
|
tags: setup_cluster
|
when: not occluster_setup.stat.exists
|
block:
|
- name: Login as system:admin
|
shell: "oc login -u system:admin"
|
|
- name: Deploy ocp-workloads for each user ID
|
include_role:
|
name: "{{ workload_loop_var }}"
|
vars:
|
guid: a1001
|
ocp_user_needs_quota: false
|
ocp_domain: "https://{{ hostname }}:8443"
|
subdomain_base: "{{ ansible_hostname}}.{{subdomain_base}}"
|
ocp_username: developer
|
ACTION: create
|
become_override: yes
|
loop: "{{ student_workloads.split(',')|list }}"
|
loop_control:
|
loop_var: workload_loop_var
|
|
- name: Touch setup file
|
command: touch /root/.setupcomplete
|
|
- name: PostSoftware flight-check
|
hosts: localhost
|
connection: local
|
gather_facts: false
|
become: false
|
tags:
|
- post_flight_check
|
tasks:
|
- debug:
|
msg: "Post-Software checks completed successfully"
|