diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/etcd/defaults/main.yaml | 1 | ||||
| -rw-r--r-- | roles/etcd/files/etcdctl.sh | 11 | ||||
| -rw-r--r-- | roles/etcd/meta/main.yml | 1 | ||||
| -rw-r--r-- | roles/etcd/tasks/etcdctl.yml | 6 | ||||
| -rw-r--r-- | roles/etcd/tasks/main.yml | 112 | ||||
| -rw-r--r-- | roles/etcd/templates/etcd.docker.service | 4 | ||||
| -rw-r--r-- | roles/etcd/templates/etcdctl.sh.j2 | 12 | ||||
| -rw-r--r-- | roles/etcd_common/defaults/main.yml | 3 | ||||
| -rw-r--r-- | roles/etcd_server_certificates/meta/main.yml | 2 | ||||
| -rw-r--r-- | roles/openshift_etcd_ca/tasks/main.yml | 1 | 
10 files changed, 75 insertions, 78 deletions
| diff --git a/roles/etcd/defaults/main.yaml b/roles/etcd/defaults/main.yaml index 29153f4df..e45f53219 100644 --- a/roles/etcd/defaults/main.yaml +++ b/roles/etcd/defaults/main.yaml @@ -13,5 +13,4 @@ etcd_listen_peer_urls: "{{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_peer_  etcd_advertise_client_urls: "{{ etcd_url_scheme }}://{{ etcd_ip }}:{{ etcd_client_port }}"  etcd_listen_client_urls: "{{ etcd_url_scheme }}://{{ etcd_ip }}:{{ etcd_client_port }}" -etcd_data_dir: /var/lib/etcd/  etcd_systemd_dir: "/etc/systemd/system/{{ etcd_service }}.service.d" diff --git a/roles/etcd/files/etcdctl.sh b/roles/etcd/files/etcdctl.sh deleted file mode 100644 index 0e324a8a9..000000000 --- a/roles/etcd/files/etcdctl.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -# Sets up handy aliases for etcd, need etcdctl2 and etcdctl3 because -# command flags are different between the two. Should work on stand -# alone etcd hosts and master + etcd hosts too because we use the peer keys. -etcdctl2() { - /usr/bin/etcdctl --cert-file /etc/etcd/peer.crt --key-file /etc/etcd/peer.key --ca-file /etc/etcd/ca.crt -C https://`hostname`:2379 ${@} -} - -etcdctl3() { - ETCDCTL_API=3 /usr/bin/etcdctl --cert /etc/etcd/peer.crt --key /etc/etcd/peer.key --cacert /etc/etcd/ca.crt --endpoints https://`hostname`:2379 ${@} -} diff --git a/roles/etcd/meta/main.yml b/roles/etcd/meta/main.yml index e0c70a181..689c07a84 100644 --- a/roles/etcd/meta/main.yml +++ b/roles/etcd/meta/main.yml @@ -24,3 +24,4 @@ dependencies:    - service: etcd peering      port: "{{ etcd_peer_port }}/tcp"  - role: etcd_server_certificates +- role: etcd_common diff --git a/roles/etcd/tasks/etcdctl.yml b/roles/etcd/tasks/etcdctl.yml index 649ad23c1..6cb456677 100644 --- a/roles/etcd/tasks/etcdctl.yml +++ b/roles/etcd/tasks/etcdctl.yml @@ -4,9 +4,9 @@    when: not openshift.common.is_atomic | bool  - name: Configure etcd profile.d alises -  copy: -    src: etcdctl.sh -    dest: /etc/profile.d/etcdctl.sh +  template: +    dest: "/etc/profile.d/etcdctl.sh" +    src: etcdctl.sh.j2      mode: 0755      owner: root      group: root diff --git a/roles/etcd/tasks/main.yml b/roles/etcd/tasks/main.yml index c09da3b61..8853740e5 100644 --- a/roles/etcd/tasks/main.yml +++ b/roles/etcd/tasks/main.yml @@ -10,51 +10,45 @@    package: name=etcd{{ '-' + etcd_version if etcd_version is defined else '' }} state=present    when: not etcd_is_containerized | bool -- name: Pull etcd container -  command: docker pull {{ openshift.etcd.etcd_image }} -  register: pull_result -  changed_when: "'Downloaded newer image' in pull_result.stdout" +- block: +  - name: Pull etcd container +    command: docker pull {{ openshift.etcd.etcd_image }} +    register: pull_result +    changed_when: "'Downloaded newer image' in pull_result.stdout" + +  - name: Install etcd container service file +    template: +      dest: "/etc/systemd/system/etcd_container.service" +      src: etcd.docker.service    when:    - etcd_is_containerized | bool    - not openshift.common.is_etcd_system_container | bool -- name: Install etcd container service file -  template: -    dest: "/etc/systemd/system/etcd_container.service" -    src: etcd.docker.service -  when: -  - etcd_is_containerized | bool -  - not openshift.common.is_etcd_system_container | bool - -  # Start secondary etcd instance for third party integrations  # TODO: Determine an alternative to using thirdparty variable - -- name: Create configuration directory -  file: -    path: "{{ etcd_conf_dir }}" -    state: directory -    mode: 0700 -  when: etcd_is_thirdparty | bool +- block: +  - name: Create configuration directory +    file: +      path: "{{ etcd_conf_dir }}" +      state: directory +      mode: 0700    # TODO: retest with symlink to confirm it does or does not function -- name: Copy service file for etcd instance -  copy: -    src: /usr/lib/systemd/system/etcd.service -    dest: "/etc/systemd/system/{{ etcd_service }}.service" -    remote_src: True -  when: etcd_is_thirdparty | bool - -- name: Create third party etcd service.d directory exists -  file: -    path: "{{ etcd_systemd_dir }}" -    state: directory -  when: etcd_is_thirdparty | bool - -- name: Configure third part etcd service unit file -  template: -    dest: "{{ etcd_systemd_dir }}/custom.conf" -    src: custom.conf.j2 +  - name: Copy service file for etcd instance +    copy: +      src: /usr/lib/systemd/system/etcd.service +      dest: "/etc/systemd/system/{{ etcd_service }}.service" +      remote_src: True + +  - name: Create third party etcd service.d directory exists +    file: +      path: "{{ etcd_systemd_dir }}" +      state: directory + +  - name: Configure third part etcd service unit file +    template: +      dest: "{{ etcd_systemd_dir }}/custom.conf" +      src: custom.conf.j2    when: etcd_is_thirdparty    # TODO: this task may not be needed with Validate permissions @@ -80,28 +74,28 @@    command: systemctl daemon-reload    when: etcd_is_thirdparty | bool -- name: Disable system etcd when containerized -  systemd: -    name: etcd -    state: stopped -    enabled: no -    masked: yes -    daemon_reload: yes -  when: -  - etcd_is_containerized | bool -  - not openshift.common.is_etcd_system_container | bool -  register: task_result -  failed_when: "task_result|failed and 'could not' not in task_result.msg|lower" - -- name: Install etcd container service file -  template: -    dest: "/etc/systemd/system/etcd_container.service" -    src: etcd.docker.service -  when: etcd_is_containerized | bool and not openshift.common.is_etcd_system_container | bool - -- name: Install Etcd system container -  include: system_container.yml -  when: etcd_is_containerized | bool and openshift.common.is_etcd_system_container | bool +- block: +  - name: Disable system etcd when containerized +    systemd: +      name: etcd +      state: stopped +      enabled: no +      masked: yes +      daemon_reload: yes +    when: not openshift.common.is_etcd_system_container | bool +    register: task_result +    failed_when: "task_result|failed and 'could not' not in task_result.msg|lower" + +  - name: Install etcd container service file +    template: +      dest: "/etc/systemd/system/etcd_container.service" +      src: etcd.docker.service +    when: not openshift.common.is_etcd_system_container | bool + +  - name: Install Etcd system container +    include: system_container.yml +    when: openshift.common.is_etcd_system_container | bool +  when: etcd_is_containerized | bool  - name: Validate permissions on the config dir    file: diff --git a/roles/etcd/templates/etcd.docker.service b/roles/etcd/templates/etcd.docker.service index ae059b549..c8ceaa6ba 100644 --- a/roles/etcd/templates/etcd.docker.service +++ b/roles/etcd/templates/etcd.docker.service @@ -5,9 +5,9 @@ Requires=docker.service  PartOf=docker.service  [Service] -EnvironmentFile=/etc/etcd/etcd.conf +EnvironmentFile={{ etcd_conf_file }}  ExecStartPre=-/usr/bin/docker rm -f {{ etcd_service }} -ExecStart=/usr/bin/docker run --name {{ etcd_service }} --rm -v /var/lib/etcd:/var/lib/etcd:z -v /etc/etcd:/etc/etcd:ro --env-file=/etc/etcd/etcd.conf --net=host --entrypoint=/usr/bin/etcd {{ openshift.etcd.etcd_image }} +ExecStart=/usr/bin/docker run --name {{ etcd_service }} --rm -v {{ etcd_data_dir }}:{{ etcd_data_dir }}:z -v {{ etcd_conf_dir }}:{{ etcd_conf_dir }}:ro --env-file={{ etcd_conf_file }} --net=host --entrypoint=/usr/bin/etcd {{ openshift.etcd.etcd_image }}  ExecStop=/usr/bin/docker stop {{ etcd_service }}  SyslogIdentifier=etcd_container  Restart=always diff --git a/roles/etcd/templates/etcdctl.sh.j2 b/roles/etcd/templates/etcdctl.sh.j2 new file mode 100644 index 000000000..ac7d9c72f --- /dev/null +++ b/roles/etcd/templates/etcdctl.sh.j2 @@ -0,0 +1,12 @@ +#!/bin/bash +# Sets up handy aliases for etcd, need etcdctl2 and etcdctl3 because +# command flags are different between the two. Should work on stand +# alone etcd hosts and master + etcd hosts too because we use the peer keys. +etcdctl2() { + /usr/bin/etcdctl --cert-file {{ etcd_peer_cert_file }} --key-file {{ etcd_peer_key_file }} --ca-file {{ etcd_peer_ca_file }} -C https://`hostname`:2379 ${@} + +} + +etcdctl3() { + ETCDCTL_API=3 /usr/bin/etcdctl --cert {{ etcd_peer_cert_file }} --key {{ etcd_peer_key_file }} --cacert {{ etcd_peer_ca_file }} --endpoints https://`hostname`:2379 ${@} +} diff --git a/roles/etcd_common/defaults/main.yml b/roles/etcd_common/defaults/main.yml index c5efb0a0c..d12e6a07f 100644 --- a/roles/etcd_common/defaults/main.yml +++ b/roles/etcd_common/defaults/main.yml @@ -35,3 +35,6 @@ etcd_ip: "{{ ansible_default_ipv4.address }}"  etcd_is_atomic: False  etcd_is_containerized: False  etcd_is_thirdparty: False + +# etcd dir vars +etcd_data_dir: /var/lib/etcd/ diff --git a/roles/etcd_server_certificates/meta/main.yml b/roles/etcd_server_certificates/meta/main.yml index 98c913dba..b453f2bd8 100644 --- a/roles/etcd_server_certificates/meta/main.yml +++ b/roles/etcd_server_certificates/meta/main.yml @@ -13,4 +13,4 @@ galaxy_info:    - cloud    - system  dependencies: -- role: openshift_etcd_ca +- role: etcd_ca diff --git a/roles/openshift_etcd_ca/tasks/main.yml b/roles/openshift_etcd_ca/tasks/main.yml deleted file mode 100644 index ed97d539c..000000000 --- a/roles/openshift_etcd_ca/tasks/main.yml +++ /dev/null @@ -1 +0,0 @@ ---- | 
