systemd_units.yml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. ---
  2. # systemd_units.yml is included both in the openshift_master role and in the upgrade
  3. # playbooks.
  4. - name: include push_via_dns.yml tasks
  5. include_tasks: push_via_dns.yml
  6. - name: Set HA Service Info for containerized installs
  7. set_fact:
  8. containerized_svc_dir: "/etc/systemd/system"
  9. ha_svc_template_path: "docker-cluster"
  10. when:
  11. - openshift_is_containerized | bool
  12. - name: include registry_auth tasks
  13. include_tasks: registry_auth.yml
  14. - name: Disable the legacy master service if it exists
  15. systemd:
  16. name: "{{ openshift_service_type }}-master"
  17. state: stopped
  18. enabled: no
  19. masked: yes
  20. ignore_errors: true
  21. - name: Remove the legacy master service if it exists
  22. file:
  23. path: "{{ containerized_svc_dir }}/{{ openshift_service_type }}-master.service"
  24. state: absent
  25. ignore_errors: true
  26. when:
  27. - not l_is_master_system_container | bool
  28. # This is the image used for both HA and non-HA clusters:
  29. - name: Pre-pull master image
  30. command: >
  31. docker pull {{ osm_image }}:{{ openshift_image_tag }}
  32. register: l_pull_result
  33. changed_when: "'Downloaded newer image' in l_pull_result.stdout"
  34. when:
  35. - openshift_is_containerized | bool
  36. - not l_is_master_system_container | bool
  37. - name: Create the ha systemd unit files
  38. template:
  39. src: "{{ ha_svc_template_path }}/atomic-openshift-master-{{ item }}.service.j2"
  40. dest: "{{ containerized_svc_dir }}/{{ openshift_service_type }}-master-{{ item }}.service"
  41. when:
  42. - not l_is_master_system_container | bool
  43. with_items:
  44. - api
  45. - controllers
  46. register: l_create_ha_unit_files
  47. - command: systemctl daemon-reload
  48. when:
  49. - l_create_ha_unit_files is changed
  50. # end workaround for missing systemd unit files
  51. - name: enable master services
  52. systemd:
  53. name: "{{ openshift_service_type }}-master-{{ item }}"
  54. enabled: yes
  55. with_items:
  56. - api
  57. - controllers
  58. when:
  59. - not l_is_master_system_container | bool
  60. - name: Preserve Master API Proxy Config options
  61. command: grep PROXY /etc/sysconfig/{{ openshift_service_type }}-master-api
  62. register: l_master_api_proxy
  63. failed_when: false
  64. changed_when: false
  65. - name: Preserve Master API AWS options
  66. command: grep AWS_ /etc/sysconfig/{{ openshift_service_type }}-master-api
  67. register: master_api_aws
  68. failed_when: false
  69. changed_when: false
  70. - name: Create the master api service env file
  71. template:
  72. src: "{{ ha_svc_template_path }}/atomic-openshift-master-api.j2"
  73. dest: /etc/sysconfig/{{ openshift_service_type }}-master-api
  74. backup: true
  75. notify:
  76. - restart master api
  77. - name: Restore Master API Proxy Config Options
  78. when:
  79. - l_master_api_proxy.rc == 0
  80. - "'http_proxy' not in openshift.common"
  81. - "'https_proxy' not in openshift.common"
  82. lineinfile:
  83. dest: /etc/sysconfig/{{ openshift_service_type }}-master-api
  84. line: "{{ item }}"
  85. with_items: "{{ l_master_api_proxy.stdout_lines | default([]) }}"
  86. - name: Restore Master API AWS Options
  87. when:
  88. - master_api_aws.rc == 0
  89. - not (openshift_cloudprovider_kind is defined and openshift_cloudprovider_kind == 'aws' and openshift_cloudprovider_aws_access_key is defined and openshift_cloudprovider_aws_secret_key is defined)
  90. lineinfile:
  91. dest: /etc/sysconfig/{{ openshift_service_type }}-master-api
  92. line: "{{ item }}"
  93. with_items: "{{ master_api_aws.stdout_lines | default([]) }}"
  94. no_log: True
  95. - name: Preserve Master Controllers Proxy Config options
  96. command: grep PROXY /etc/sysconfig/{{ openshift_service_type }}-master-controllers
  97. register: master_controllers_proxy
  98. failed_when: false
  99. changed_when: false
  100. - name: Preserve Master Controllers AWS options
  101. command: grep AWS_ /etc/sysconfig/{{ openshift_service_type }}-master-controllers
  102. register: master_controllers_aws
  103. failed_when: false
  104. changed_when: false
  105. - name: Create the master controllers service env file
  106. template:
  107. src: "{{ ha_svc_template_path }}/atomic-openshift-master-controllers.j2"
  108. dest: /etc/sysconfig/{{ openshift_service_type }}-master-controllers
  109. backup: true
  110. notify:
  111. - restart master controllers
  112. - name: Restore Master Controllers Proxy Config Options
  113. lineinfile:
  114. dest: /etc/sysconfig/{{ openshift_service_type }}-master-controllers
  115. line: "{{ item }}"
  116. with_items: "{{ master_controllers_proxy.stdout_lines | default([]) }}"
  117. when:
  118. - master_controllers_proxy.rc == 0
  119. - "'http_proxy' not in openshift.common"
  120. - "'https_proxy' not in openshift.common"
  121. - name: Restore Master Controllers AWS Options
  122. lineinfile:
  123. dest: /etc/sysconfig/{{ openshift_service_type }}-master-controllers
  124. line: "{{ item }}"
  125. with_items: "{{ master_controllers_aws.stdout_lines | default([]) }}"
  126. when:
  127. - master_controllers_aws.rc == 0
  128. - not (openshift_cloudprovider_kind is defined and openshift_cloudprovider_kind == 'aws' and openshift_cloudprovider_aws_access_key is defined and openshift_cloudprovider_aws_secret_key is defined)