From 07cb2aa9bb5b30bfb45a4564deb7442798c82b25 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Wed, 15 Aug 2018 14:14:17 -0400 Subject: [PATCH] Fix / improve minishift dev env playbook - Redo how we detect / set the minishift path - Log into the correct admin account, once. - Make sure commands that fail cause tasks to fail (s/;/&&/) --- .../roles/minishift/tasks/main.yml | 149 +++++++++--------- 1 file changed, 72 insertions(+), 77 deletions(-) diff --git a/tools/clusterdevel/roles/minishift/tasks/main.yml b/tools/clusterdevel/roles/minishift/tasks/main.yml index 0ad4d33ef2..c27fe44f5d 100644 --- a/tools/clusterdevel/roles/minishift/tasks/main.yml +++ b/tools/clusterdevel/roles/minishift/tasks/main.yml @@ -21,102 +21,97 @@ shell: minishift oc-env register: minishift_oc_env -- name: Extract minishift binary path - set_fact: - minishift_oc_bin: "{{ minishift_oc_env.stdout_lines[0] | regex_replace('export PATH=\\\"(.*):\\$PATH\\\"', '\\1') }}/oc" +- shell: | + eval $(minishift oc-env) + echo $PATH + register: oc_path -- name: Dynamically found oc binary to be at - debug: - msg: "oc path: {{ minishift_oc_bin }}" +- name: Deploy Tower + block: + - name: Login as admin + shell: "oc login -u system:admin" -- name: Login as admin - shell: "{{ minishift_oc_bin }} login {{ minishift_ip.stdout }}:8443 -u system:admin" + - name: Create privileged user service account awx + shell: "oc adm policy add-scc-to-user privileged system:serviceaccount:{{ awx_dev_project }}:awx" -- name: Create privileged user service account awx - shell: "{{ minishift_oc_bin }} adm policy add-scc-to-user privileged system:serviceaccount:{{ awx_dev_project }}:awx" + - name: Unattach AWX dev tree volume locally + shell: "minishift hostfolder remove awx || true" -- name: Authenticate with OpenShift via token - shell: "{{ minishift_oc_bin }} login {{ minishift_ip.stdout }}:8443 -u admin -p admin" + - name: Attach AWX dev tree volume locally + shell: "minishift hostfolder add -t sshfs --source {{ devtree_directory }} --target /mnt/sda1/awx awx" -- name: Unattach AWX dev tree volume locally - shell: "minishift hostfolder remove awx || true" + - name: Unmount AWX dev volume + shell: "minishift hostfolder umount awx || true" -- name: Attach AWX dev tree volume locally - shell: "minishift hostfolder add -t sshfs --source {{ devtree_directory }} --target /mnt/sda1/awx awx" + - name: Mount AWX dev volume + shell: minishift hostfolder mount awx -- name: Unmount AWX dev volume - shell: "minishift hostfolder umount awx || true" + - name: Get Project Detail + shell: "oc get project {{ awx_dev_project }}" + register: project_details + ignore_errors: yes -- name: Mount AWX dev volume - shell: minishift hostfolder mount awx + - name: Get Postgres Service Detail + shell: "oc describe svc postgresql -n {{ awx_dev_project }}" + register: postgres_svc_details + ignore_errors: yes -- name: Authenticate with OpenShift via token - shell: "{{ minishift_oc_bin }} login -u admin -p admin" + - name: Create AWX Openshift Project + shell: "oc new-project {{ awx_dev_project }}" + when: project_details.rc != 0 -- name: Get Project Detail - shell: "{{ minishift_oc_bin }} get project {{ awx_dev_project }}" - register: project_details - ignore_errors: yes + - name: Stage serviceacct.yml + template: + src: serviceacct.yml.j2 + dest: /tmp/serviceacct.yml -- name: Get Postgres Service Detail - shell: "{{ minishift_oc_bin }} describe svc postgresql -n {{ awx_dev_project }}" - register: postgres_svc_details - ignore_errors: yes + - name: Apply svc account + shell: "oc apply -f /tmp/serviceacct.yml && rm -rf /tmp/serviceaccount.yml" -- name: Create AWX Openshift Project - shell: "{{ minishift_oc_bin }} new-project {{ awx_dev_project }}" - when: project_details.rc != 0 + - name: Stage hostfolderpvc.yml + template: + src: hostfolderpvc.yml.j2 + dest: /tmp/hostfolderpvc.yml -- name: Stage serviceacct.yml - template: - src: serviceacct.yml.j2 - dest: /tmp/serviceacct.yml + - name: Create PV for host folder + shell: "oc apply -f /tmp/hostfolderpvc.yml && rm -rf /tmp/hostfolderpvc.yml" -- name: Apply svc account - shell: "{{ minishift_oc_bin }} apply -f /tmp/serviceacct.yml ; rm -rf /tmp/serviceaccount.yml" + - name: Stage volumeclaim.yml + template: + src: volumeclaim.yml.j2 + dest: /tmp/volumeclaim.yml -- name: Stage hostfolderpvc.yml - template: - src: hostfolderpvc.yml.j2 - dest: /tmp/hostfolderpvc.yml + - name: Create PV for host folder + shell: "oc apply -f /tmp/volumeclaim.yml && rm -rf /tmp/volumeclaim.yml" -- name: Create PV for host folder - shell: "{{ minishift_oc_bin }} apply -f /tmp/hostfolderpvc.yml ; rm -rf /tmp/hostfolderpvc.yml" + - name: Deploy and Activate Postgres + shell: "oc new-app --template=postgresql-persistent -e MEMORY_LIMIT={{ pg_memory_limit|default('512') }}Mi -e NAMESPACE=openshift -e DATABASE_SERVICE_NAME=postgresql -e POSTGRESQL_USER={{ pg_username|default('awx') }} -e POSTGRESQL_PASSWORD={{ pg_password|default('awx') }} -e POSTGRESQL_DATABASE={{ pg_database|default('awx') }} -e VOLUME_CAPACITY={{ pg_volume_capacity|default('5')}}Gi -e POSTGRESQL_VERSION=9.5 -n {{ awx_dev_project }}" + when: postgres_svc_details is defined and postgres_svc_details.rc != 0 + register: openshift_pg_activate -- name: Stage volumeclaim.yml - template: - src: volumeclaim.yml.j2 - dest: /tmp/volumeclaim.yml + - name: Wait for Postgres to activate + pause: + seconds: 15 + when: openshift_pg_activate|changed -- name: Create PV for host folder - shell: "oc apply -f /tmp/volumeclaim.yml ; rm -rf /tmp/volumeclaim.yml" + - name: Template configmap + template: + src: configmap.yml.j2 + dest: "/tmp/configmap.yml" -- name: Deploy and Activate Postgres - shell: "{{ minishift_oc_bin }} new-app --template=postgresql-persistent -e MEMORY_LIMIT={{ pg_memory_limit|default('512') }}Mi -e NAMESPACE=openshift -e DATABASE_SERVICE_NAME=postgresql -e POSTGRESQL_USER={{ pg_username|default('awx') }} -e POSTGRESQL_PASSWORD={{ pg_password|default('awx') }} -e POSTGRESQL_DATABASE={{ pg_database|default('awx') }} -e VOLUME_CAPACITY={{ pg_volume_capacity|default('5')}}Gi -e POSTGRESQL_VERSION=9.5 -n {{ awx_dev_project }}" - when: postgres_svc_details is defined and postgres_svc_details.rc != 0 - register: openshift_pg_activate + - name: Create configmap + shell: "oc apply -f /tmp/configmap.yml && rm -rf /tmp/configmap.yml" -- name: Wait for Postgres to activate - pause: - seconds: 15 - when: openshift_pg_activate|changed + - name: Template deployment + template: + src: hostdev.yml.j2 + dest: "/tmp/hostdev.yml" -- name: Template configmap - template: - src: configmap.yml.j2 - dest: "/tmp/configmap.yml" + - name: Create deployment + shell: "oc apply -f /tmp/hostdev.yml && rm -rf /tmp/hostdev.yml" -- name: Create configmap - shell: "{{ minishift_oc_bin }} apply -f /tmp/configmap.yml ; rm -rf /tmp/configmap.yml" - -- name: Template deployment - template: - src: hostdev.yml.j2 - dest: "/tmp/hostdev.yml" - -- name: Create deployment - shell: "{{ minishift_oc_bin }} apply -f /tmp/hostdev.yml ; rm -rf /tmp/hostdev.yml" - -- name: Please login - debug: - msg: "Login at https://{{ minishift_ip.stdout }}:8443 with admin / admin" + - name: Please login + debug: + msg: "Login at https://{{ minishift_ip.stdout }}:8443 with admin / admin" + environment: + PATH: '{{ oc_path.stdout }}'