main.yml 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. ---
  2. ######################################################################)
  3. # Users, projects, and privileges
  4. - name: Run pre-install Management validation checks
  5. include_tasks: validate.yml
  6. # This creates a service account allowing Container Provider
  7. # integration (managing OCP/Origin via MIQ/Management)
  8. - name: Enable Container Provider Integration
  9. import_role:
  10. role: openshift_manageiq
  11. - name: "Ensure the Management '{{ openshift_management_project }}' namespace exists"
  12. oc_project:
  13. state: present
  14. name: "{{ openshift_management_project }}"
  15. display_name: "{{ openshift_management_project_description }}"
  16. node_selector: "{{ openshift_management_nodeselector }}"
  17. - name: Create and Authorize Management Accounts
  18. include_tasks: accounts.yml
  19. ######################################################################
  20. # STORAGE - Initialize basic storage class
  21. - name: Determine the correct NFS host if required
  22. include_tasks: storage/nfs_server.yml
  23. when: openshift_management_storage_class in ['nfs', 'nfs_external']
  24. #---------------------------------------------------------------------
  25. # * nfs - set up NFS shares on the first master for a proof of concept
  26. - name: Create required NFS exports for Management app storage
  27. include_tasks: storage/nfs.yml
  28. when: openshift_management_storage_class == 'nfs'
  29. #---------------------------------------------------------------------
  30. # * external - NFS again, but pointing to a pre-configured NFS server
  31. - name: Note Storage Type - External NFS
  32. debug:
  33. msg: "Setting up external NFS storage, openshift_management_storage_class is {{ openshift_management_storage_class }}"
  34. when: openshift_management_storage_class == 'nfs_external'
  35. #---------------------------------------------------------------------
  36. # * cloudprovider - use an existing cloudprovider based storage
  37. - name: Note Storage Type - Cloud Provider
  38. debug:
  39. msg: Validating cloud provider storage type, openshift_management_storage_class is 'cloudprovider'
  40. when: openshift_management_storage_class == 'cloudprovider'
  41. #---------------------------------------------------------------------
  42. # * preconfigured - don't do anything, assume it's all there ready to go
  43. - name: Note Storage Type - Preconfigured
  44. debug:
  45. msg: Skipping storage configuration, openshift_management_storage_class is 'preconfigured'
  46. when: openshift_management_storage_class == 'preconfigured'
  47. ######################################################################
  48. # APPLICATION TEMPLATE
  49. - name: Install the Management app and PV templates
  50. include_tasks: template.yml
  51. ######################################################################
  52. # APP & DB Storage
  53. # For local/external NFS backed installations
  54. - name: "Create the required App and DB PVs using {{ openshift_management_storage_class }}"
  55. include_tasks: storage/create_nfs_pvs.yml
  56. when: openshift_management_storage_class in ['nfs', 'nfs_external']
  57. ######################################################################
  58. # CREATE APP
  59. - name: Note the correct ext-db template name
  60. set_fact:
  61. openshift_management_template_name: "{{ __openshift_management_flavor }}-ext-db"
  62. when: __openshift_management_use_ext_db
  63. - name: Note the correct podified db template name
  64. set_fact:
  65. openshift_management_template_name: "{{ __openshift_management_flavor }}"
  66. when: not __openshift_management_use_ext_db
  67. - name: Ensure the Management App is created
  68. oc_process:
  69. namespace: "{{ openshift_management_project }}"
  70. template_name: "{{ openshift_management_template_name }}"
  71. create: True
  72. params: "{{ openshift_management_template_parameters }}"
  73. - name: Wait for the app to come up. May take several minutes, 30s check intervals, {{ openshift_management_pod_rollout_retries }} retries
  74. command: "oc logs {{ __openshift_management_flavor }}-0 -n {{ openshift_management_project }}"
  75. register: app_seeding_logs
  76. until: app_seeding_logs.stdout.find('Server starting complete') != -1
  77. delay: 30
  78. retries: "{{ openshift_management_pod_rollout_retries }}"