--- # Copyright 2015, Rackspace US, Inc., Mirantis Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Remove self signed cert for regen file: dest: "{{ item }}" state: "absent" with_items: - "{{ galera_ssl_ca_cert }}" - "{{ galera_ssl_cert }}" - "{{ galera_ssl_key }}" when: - galera_ssl_self_signed_regen | bool - inventory_hostname == galera_server_bootstrap_node - name: Create galera CA cert command: > openssl req -new -nodes -x509 -subj "{{ galera_ssl_ca_self_signed_subject }}" -keyout {{ galera_ssl_key | dirname }}/galera-ca.key -out {{ galera_ssl_ca_cert }} creates={{ galera_ssl_ca_cert }} when: - inventory_hostname == galera_server_bootstrap_node notify: Restart all mysql - name: Get CA key contents and store as var slurp: src: "{{ galera_ssl_ca_cert }}" register: galera_ca changed_when: false when: - inventory_hostname == galera_server_bootstrap_node - name: Register a fact for the CA key set_fact: galera_server_ca_key: "{{ galera_ca.content }}" when: - inventory_hostname == galera_server_bootstrap_node - name: Create galera ssl request command: > openssl req -new -nodes -sha256 -subj "{{ galera_ssl_self_signed_subject }}" -days 3650 -keyout {{ galera_ssl_key }} -out {{ galera_ssl_ca_cert | dirname }}/galera-req.pem -extensions v3_ca creates={{ galera_ssl_ca_cert | dirname }}/galera-req.pem register: create_galera_ssl_request when: - inventory_hostname == galera_server_bootstrap_node notify: Restart all mysql - name: Convert generated SSL key to valid format for Galera command: > openssl rsa -in {{ galera_ssl_key }} -out {{ galera_ssl_key }} when: - create_galera_ssl_request | changed - inventory_hostname == galera_server_bootstrap_node notify: Restart all mysql - name: Get REQ key contents and store as var slurp: src: "{{ galera_ssl_ca_cert | dirname }}/galera-req.pem" register: galera_req changed_when: false when: - inventory_hostname == galera_server_bootstrap_node - name: Register a fact for the REQ key set_fact: galera_server_req_key: "{{ galera_req.content }}" when: - inventory_hostname == galera_server_bootstrap_node - name: Create galera ssl cert command: > openssl x509 -req -days 3650 -in {{ galera_ssl_ca_cert | dirname }}/galera-req.pem -CA {{ galera_ssl_ca_cert }} -CAkey {{ galera_ssl_key | dirname }}/galera-ca.key -out {{ galera_ssl_cert }} -set_serial 01 creates={{ galera_ssl_cert }} when: - inventory_hostname == galera_server_bootstrap_node notify: Restart all mysql - name: Get CERT key contents and store as var slurp: src: "{{ galera_ssl_cert }}" register: galera_cert changed_when: false when: - inventory_hostname == galera_server_bootstrap_node - name: Register a fact for the CERT key set_fact: galera_server_cert_key: "{{ galera_cert.content }}" when: - inventory_hostname == galera_server_bootstrap_node - name: Copy CA cert and key (SELF) copy: content: "{{ hostvars[galera_server_bootstrap_node][item.key] | b64decode }}" dest: "{{ item.dest }}" owner: "mysql" group: "mysql" mode: "{{ item.mode | default('0640') }}" with_items: - key: "galera_server_ca_key" dest: "{{ galera_ssl_ca_cert }}" - key: "galera_server_req_key" dest: "{{ galera_ssl_cert }}" - key: "galera_server_cert_key" dest: "{{ galera_ssl_key }}" mode: "0600" when: - inventory_hostname != galera_server_bootstrap_node notify: Restart all mysql