diff options
| author | Kenny Woodson <kwoodson@redhat.com> | 2015-10-29 11:14:51 -0400 | 
|---|---|---|
| committer | Kenny Woodson <kwoodson@redhat.com> | 2015-10-29 11:14:51 -0400 | 
| commit | 9bbaa824da5e1a049cdec1a6523c3841d713386c (patch) | |
| tree | 93e80f1577ad0f2f5f8931b493c50cd9aa657c77 /playbooks/common/openshift-etcd | |
| parent | 15df494fb781dd1509854eeb366e981930b52c22 (diff) | |
| parent | 16d1bce0be2f8c3942489630adcb7030aecadc55 (diff) | |
| download | openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.tar.gz openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.tar.bz2 openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.tar.xz openshift-9bbaa824da5e1a049cdec1a6523c3841d713386c.zip  | |
Merge pull request #763 from openshift/master
Merge master into prod.
Diffstat (limited to 'playbooks/common/openshift-etcd')
| -rw-r--r-- | playbooks/common/openshift-etcd/config.yml | 97 | ||||
| l--------- | playbooks/common/openshift-etcd/filter_plugins | 1 | ||||
| l--------- | playbooks/common/openshift-etcd/lookup_plugins | 1 | ||||
| l--------- | playbooks/common/openshift-etcd/roles | 1 | ||||
| -rw-r--r-- | playbooks/common/openshift-etcd/service.yml | 18 | 
5 files changed, 118 insertions, 0 deletions
diff --git a/playbooks/common/openshift-etcd/config.yml b/playbooks/common/openshift-etcd/config.yml new file mode 100644 index 000000000..952960652 --- /dev/null +++ b/playbooks/common/openshift-etcd/config.yml @@ -0,0 +1,97 @@ +--- +- name: Set etcd facts needed for generating certs +  hosts: oo_etcd_to_config +  roles: +  - openshift_facts +  tasks: +  - openshift_facts: +      role: "{{ item.role }}" +      local_facts: "{{ item.local_facts }}" +    with_items: +      - role: common +        local_facts: +          hostname: "{{ openshift_hostname | default(None) }}" +          public_hostname: "{{ openshift_public_hostname | default(None) }}" +          deployment_type: "{{ openshift_deployment_type }}" +  - name: Check status of etcd certificates +    stat: +      path: "{{ item }}" +    with_items: +    - /etc/etcd/server.crt +    - /etc/etcd/peer.crt +    - /etc/etcd/ca.crt +    register: g_etcd_server_cert_stat_result +  - set_fact: +      etcd_server_certs_missing: "{{ g_etcd_server_cert_stat_result.results | map(attribute='stat.exists') +                                    | list | intersect([false])}}" +      etcd_cert_subdir: etcd-{{ openshift.common.hostname }} +      etcd_cert_config_dir: /etc/etcd +      etcd_cert_prefix: + +- name: Create temp directory for syncing certs +  hosts: localhost +  connection: local +  sudo: false +  gather_facts: no +  tasks: +  - name: Create local temp directory for syncing certs +    local_action: command mktemp -d /tmp/openshift-ansible-XXXXXXX +    register: g_etcd_mktemp +    changed_when: False + +- name: Configure etcd certificates +  hosts: oo_first_etcd +  vars: +    etcd_generated_certs_dir: /etc/etcd/generated_certs +    etcd_needing_server_certs: "{{ hostvars +                                  | oo_select_keys(groups['oo_etcd_to_config']) +                                  | oo_filter_list(filter_attr='etcd_server_certs_missing') }}" +    sync_tmpdir: "{{ hostvars.localhost.g_etcd_mktemp.stdout }}" +  roles: +  - etcd_certificates +  post_tasks: +  - name: Create a tarball of the etcd certs +    command: > +      tar -czvf {{ etcd_generated_certs_dir }}/{{ item.etcd_cert_subdir }}.tgz +        -C {{ etcd_generated_certs_dir }}/{{ item.etcd_cert_subdir }} . +    args: +      creates: "{{ etcd_generated_certs_dir }}/{{ item.etcd_cert_subdir }}.tgz" +    with_items: etcd_needing_server_certs +  - name: Retrieve the etcd cert tarballs +    fetch: +      src: "{{ etcd_generated_certs_dir }}/{{ item.etcd_cert_subdir }}.tgz" +      dest: "{{ sync_tmpdir }}/" +      flat: yes +      fail_on_missing: yes +      validate_checksum: yes +    with_items: etcd_needing_server_certs + +- name: Configure etcd hosts +  hosts: oo_etcd_to_config +  vars: +    sync_tmpdir: "{{ hostvars.localhost.g_etcd_mktemp.stdout }}" +    etcd_url_scheme: https +    etcd_peer_url_scheme: https +    etcd_peers_group: oo_etcd_to_config +  pre_tasks: +  - name: Ensure certificate directory exists +    file: +      path: "{{ etcd_cert_config_dir }}" +      state: directory +  - name: Unarchive the tarball on the etcd host +    unarchive: +      src: "{{ sync_tmpdir }}/{{ etcd_cert_subdir }}.tgz" +      dest: "{{ etcd_cert_config_dir }}" +    when: etcd_server_certs_missing +  roles: +  - etcd +  - role: nickhammond.logrotate + +- name: Delete temporary directory on localhost +  hosts: localhost +  connection: local +  sudo: false +  gather_facts: no +  tasks: +  - file: name={{ g_etcd_mktemp.stdout }} state=absent +    changed_when: False diff --git a/playbooks/common/openshift-etcd/filter_plugins b/playbooks/common/openshift-etcd/filter_plugins new file mode 120000 index 000000000..99a95e4ca --- /dev/null +++ b/playbooks/common/openshift-etcd/filter_plugins @@ -0,0 +1 @@ +../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-etcd/lookup_plugins b/playbooks/common/openshift-etcd/lookup_plugins new file mode 120000 index 000000000..ac79701db --- /dev/null +++ b/playbooks/common/openshift-etcd/lookup_plugins @@ -0,0 +1 @@ +../../../lookup_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-etcd/roles b/playbooks/common/openshift-etcd/roles new file mode 120000 index 000000000..e2b799b9d --- /dev/null +++ b/playbooks/common/openshift-etcd/roles @@ -0,0 +1 @@ +../../../roles/
\ No newline at end of file diff --git a/playbooks/common/openshift-etcd/service.yml b/playbooks/common/openshift-etcd/service.yml new file mode 100644 index 000000000..0bf69b22f --- /dev/null +++ b/playbooks/common/openshift-etcd/service.yml @@ -0,0 +1,18 @@ +--- +- name: Populate g_service_masters host group if needed +  hosts: localhost +  gather_facts: no +  tasks: +  - fail: msg="new_cluster_state is required to be injected in this playbook" +    when: new_cluster_state is not defined + +  - name: Evaluate g_service_etcd +    add_host: name={{ item }} groups=g_service_etcd +    with_items: oo_host_group_exp | default([]) + +- name: Change etcd state on etcd instance(s) +  hosts: g_service_etcd +  connection: ssh +  gather_facts: no +  tasks: +    - service: name=etcd state="{{ new_cluster_state }}"  | 
