summaryrefslogtreecommitdiffstats
path: root/roles/etcd_ca/tasks/main.yml
blob: 4e68bc962d5d386637fe395004c97784788fd011 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
- name: Install openssl
  action: "{{ ansible_pkg_mgr }} name=openssl state=present"
  when: not etcd_is_atomic | bool
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- file:
    path: "{{ item }}"
    state: directory
    mode: 0700
    owner: root
    group: root
  with_items:
  - "{{ etcd_ca_new_certs_dir }}"
  - "{{ etcd_ca_crl_dir }}"
  - "{{ etcd_ca_dir }}/fragments"
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- command: cp /etc/pki/tls/openssl.cnf ./
  args:
    chdir: "{{ etcd_ca_dir }}/fragments"
    creates: "{{ etcd_ca_dir }}/fragments/openssl.cnf"
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- template:
    dest: "{{ etcd_ca_dir }}/fragments/openssl_append.cnf"
    src: openssl_append.j2
    backup: true
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- assemble:
    src: "{{ etcd_ca_dir }}/fragments"
    dest: "{{ etcd_openssl_conf }}"
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- name: Check etcd_ca_db exist
  stat: path="{{ etcd_ca_db }}"
  register: etcd_ca_db_check
  changed_when: false
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- name: Touch etcd_ca_db file
  file:
    path: "{{ etcd_ca_db }}"
    state: touch
  when: etcd_ca_db_check.stat.isreg is not defined
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- copy:
    dest: "{{ etcd_ca_serial }}"
    content: "01"
    force: no
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true

- command: >
    openssl req -config {{ etcd_openssl_conf }} -newkey rsa:4096
    -keyout {{ etcd_ca_key }} -new -out {{ etcd_ca_cert }}
    -x509 -extensions {{ etcd_ca_exts_self }} -batch -nodes
    -days {{ etcd_ca_default_days }}
    -subj /CN=etcd-signer@{{ ansible_date_time.epoch }}
  args:
    chdir: "{{ etcd_ca_dir }}"
    creates: "{{ etcd_ca_cert }}"
  environment:
    SAN: 'etcd-signer'
  delegate_to: "{{ etcd_ca_host }}"
  run_once: true