generate_hawkular_certificates.yaml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. ---
  2. - name: generate hawkular-metrics certificates
  3. include: setup_certificate.yaml
  4. vars:
  5. component: hawkular-metrics
  6. hostnames: "hawkular-metrics,{{ openshift_metrics_hawkular_hostname }}"
  7. changed_when: no
  8. - name: generate hawkular-cassandra certificates
  9. include: setup_certificate.yaml
  10. vars:
  11. component: hawkular-cassandra
  12. hostnames: hawkular-cassandra
  13. changed_when: no
  14. - slurp: src={{ openshift_metrics_certs_dir }}/hawkular-cassandra-truststore.pwd
  15. register: cassandra_truststore_password
  16. - slurp: src={{ openshift_metrics_certs_dir }}/hawkular-metrics-truststore.pwd
  17. register: hawkular_truststore_password
  18. - stat: path="{{openshift_metrics_certs_dir}}/{{item}}"
  19. register: pwd_file_stat
  20. with_items:
  21. - hawkular-metrics.pwd
  22. - hawkular-metrics.htpasswd
  23. - hawkular-jgroups-keystore.pwd
  24. changed_when: no
  25. - set_fact:
  26. pwd_files: "{{pwd_files | default({}) | combine ({item.item: item.stat}) }}"
  27. with_items: "{{pwd_file_stat.results}}"
  28. changed_when: no
  29. - name: Create temp directory local on control node
  30. local_action: command mktemp -d
  31. register: local_tmp
  32. changed_when: False
  33. - name: generate password for hawkular metrics and jgroups
  34. local_action: copy dest="{{ local_tmp.stdout}}/{{ item }}.pwd" content="{{ 15 | oo_random_word }}"
  35. with_items:
  36. - hawkular-metrics
  37. - hawkular-jgroups-keystore
  38. when: "not pwd_files['{{ item }}.pwd'].exists"
  39. - name: generate htpasswd file for hawkular metrics
  40. local_action: >
  41. shell htpasswd -ci
  42. '{{ local_tmp.stdout }}/hawkular-metrics.htpasswd' hawkular
  43. < '{{ local_tmp.stdout }}/hawkular-metrics.pwd'
  44. when: "not pwd_files['hawkular-metrics.htpasswd'].exists"
  45. - name: copy local generated passwords to target
  46. copy:
  47. src: "{{local_tmp.stdout}}/{{item}}"
  48. dest: "{{openshift_metrics_certs_dir}}/{{item}}"
  49. with_items:
  50. - hawkular-metrics.pwd
  51. - hawkular-metrics.htpasswd
  52. - hawkular-jgroups-keystore.pwd
  53. when: "not pwd_files['{{ item }}'].exists"
  54. - include: import_jks_certs.yaml
  55. - local_action: file path="{{local_tmp.stdout}}" state=absent
  56. changed_when: False
  57. - name: read files for the hawkular-metrics secret
  58. shell: >
  59. printf '%s: ' '{{ item }}'
  60. && base64 --wrap 0 '{{ openshift_metrics_certs_dir }}/{{ item }}'
  61. register: hawkular_secrets
  62. with_items:
  63. - ca.crt
  64. - hawkular-metrics.crt
  65. - hawkular-metrics.keystore
  66. - hawkular-metrics-keystore.pwd
  67. - hawkular-metrics.truststore
  68. - hawkular-metrics-truststore.pwd
  69. - hawkular-metrics.pwd
  70. - hawkular-metrics.htpasswd
  71. - hawkular-jgroups.keystore
  72. - hawkular-jgroups-keystore.pwd
  73. - hawkular-cassandra.crt
  74. - hawkular-cassandra.pem
  75. - hawkular-cassandra.keystore
  76. - hawkular-cassandra-keystore.pwd
  77. - hawkular-cassandra.truststore
  78. - hawkular-cassandra-truststore.pwd
  79. changed_when: false
  80. - set_fact:
  81. hawkular_secrets: |
  82. {{ hawkular_secrets.results|map(attribute='stdout')|join('
  83. ')|from_yaml }}
  84. - name: generate hawkular-metrics-secrets secret template
  85. template:
  86. src: secret.j2
  87. dest: "{{ mktemp.stdout }}/templates/hawkular_metrics_secrets.yaml"
  88. vars:
  89. name: hawkular-metrics-secrets
  90. labels:
  91. metrics-infra: hawkular-metrics
  92. data:
  93. hawkular-metrics.keystore: >
  94. {{ hawkular_secrets['hawkular-metrics.keystore'] }}
  95. hawkular-metrics.keystore.password: >
  96. {{ hawkular_secrets['hawkular-metrics-keystore.pwd'] }}
  97. hawkular-metrics.truststore: >
  98. {{ hawkular_secrets['hawkular-metrics.truststore'] }}
  99. hawkular-metrics.truststore.password: >
  100. {{ hawkular_secrets['hawkular-metrics-truststore.pwd'] }}
  101. hawkular-metrics.keystore.alias: "{{ 'hawkular-metrics'|b64encode }}"
  102. hawkular-metrics.htpasswd.file: >
  103. {{ hawkular_secrets['hawkular-metrics.htpasswd'] }}
  104. hawkular-metrics.jgroups.keystore: >
  105. {{ hawkular_secrets['hawkular-jgroups.keystore'] }}
  106. hawkular-metrics.jgroups.keystore.password: >
  107. {{ hawkular_secrets['hawkular-jgroups-keystore.pwd'] }}
  108. hawkular-metrics.jgroups.alias: "{{ 'hawkular'|b64encode }}"
  109. when: name not in metrics_secrets.stdout_lines
  110. changed_when: no
  111. - name: generate hawkular-metrics-certificate secret template
  112. template:
  113. src: secret.j2
  114. dest: "{{ mktemp.stdout }}/templates/hawkular_metrics_certificate.yaml"
  115. vars:
  116. name: hawkular-metrics-certificate
  117. labels:
  118. metrics-infra: hawkular-metrics
  119. data:
  120. hawkular-metrics.certificate: >
  121. {{ hawkular_secrets['hawkular-metrics.crt'] }}
  122. hawkular-metrics-ca.certificate: >
  123. {{ hawkular_secrets['ca.crt'] }}
  124. when: name not in metrics_secrets.stdout_lines
  125. changed_when: no
  126. - name: generate hawkular-metrics-account secret template
  127. template:
  128. src: secret.j2
  129. dest: "{{ mktemp.stdout }}/templates/hawkular_metrics_account.yaml"
  130. vars:
  131. name: hawkular-metrics-account
  132. labels:
  133. metrics-infra: hawkular-metrics
  134. data:
  135. hawkular-metrics.username: "{{ 'hawkular'|b64encode }}"
  136. hawkular-metrics.password: >
  137. {{ hawkular_secrets['hawkular-metrics.pwd'] }}
  138. when: name not in metrics_secrets.stdout_lines
  139. changed_when: no
  140. - name: generate cassandra secret template
  141. template:
  142. src: secret.j2
  143. dest: "{{ mktemp.stdout }}/templates/cassandra_secrets.yaml"
  144. vars:
  145. name: hawkular-cassandra-secrets
  146. labels:
  147. metrics-infra: hawkular-cassandra
  148. data:
  149. cassandra.keystore: >
  150. {{ hawkular_secrets['hawkular-cassandra.keystore'] }}
  151. cassandra.keystore.password: >
  152. {{ hawkular_secrets['hawkular-cassandra-keystore.pwd'] }}
  153. cassandra.keystore.alias: "{{ 'hawkular-cassandra'|b64encode }}"
  154. cassandra.truststore: >
  155. {{ hawkular_secrets['hawkular-cassandra.truststore'] }}
  156. cassandra.truststore.password: >
  157. {{ hawkular_secrets['hawkular-cassandra-truststore.pwd'] }}
  158. cassandra.pem: >
  159. {{ hawkular_secrets['hawkular-cassandra.pem'] }}
  160. when: name not in metrics_secrets
  161. changed_when: no
  162. - name: generate cassandra-certificate secret template
  163. template:
  164. src: secret.j2
  165. dest: "{{ mktemp.stdout }}/templates/cassandra_certificate.yaml"
  166. vars:
  167. name: hawkular-cassandra-certificate
  168. labels:
  169. metrics-infra: hawkular-cassandra
  170. data:
  171. cassandra.certificate: >
  172. {{ hawkular_secrets['hawkular-cassandra.crt'] }}
  173. cassandra-ca.certificate: >
  174. {{ hawkular_secrets['hawkular-cassandra.pem'] }}
  175. when: name not in metrics_secrets.stdout_lines
  176. changed_when: no