|
4 | 4 | - group_vars/alpha-vault.yml |
5 | 5 | tasks: |
6 | 6 | - name: make sure httplib2 is installed |
| 7 | + run_once: true |
7 | 8 | become: true |
8 | 9 | apt: package=python-httplib2 state=present |
9 | 10 |
|
10 | | - - name: get seal status |
11 | | - tags: [unseal] |
12 | | - run_once: true |
13 | | - uri: |
14 | | - method=GET |
15 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/sys/seal-status |
16 | | - HEADER_X-Vault-Token="{{ vault_auth_token }}" |
17 | | - return_content=yes |
18 | | - register: seal_status |
19 | | - |
20 | | - - name: unseal vault |
21 | | - tags: [unseal] |
22 | | - run_once: true |
23 | | - when: seal_status.json.sealed |
24 | | - uri: |
25 | | - method=PUT |
26 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/sys/unseal |
27 | | - HEADER_X-Vault-Token="{{ vault_auth_token }}" |
28 | | - body_format=json |
29 | | - body='{{ item | to_json }}' |
30 | | - with_items: |
31 | | - - key: "{{ vault_token_01 }}" |
32 | | - - key: "{{ vault_token_02 }}" |
33 | | - - key: "{{ vault_token_03 }}" |
34 | | - |
35 | 11 | - name: put values into vault |
36 | 12 | run_once: true |
37 | 13 | when: write_values is defined |
|
56 | 32 |
|
57 | 33 | - name: mount aws backend in vault |
58 | 34 | run_once: true |
59 | | - when: write_values is defined and mounts.json['aws/'] is not defined |
| 35 | + when: write_values is defined and mounts.json['aws_1h/'] is not defined |
60 | 36 | uri: |
61 | 37 | method=POST |
62 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/sys/mounts/aws |
| 38 | + follow_redirects=all |
| 39 | + url=http://{{ ansible_default_ipv4.address }}:8200/v1/sys/mounts/aws_1h |
63 | 40 | HEADER_X-Vault-Token="{{ vault_auth_token }}" |
64 | 41 | body_format=json |
65 | 42 | body='{{ item | to_json }}' |
66 | 43 | status_code=204 |
67 | 44 | with_items: |
68 | 45 | - type: "aws" |
| 46 | + config: |
| 47 | + default_lease_ttl: "3600s" # 1 hour, in seconds |
| 48 | + max_lease_ttl: "3600s" # 1 hour, in seconds |
69 | 49 |
|
70 | 50 | - name: configure aws root credentials |
71 | 51 | run_once: true |
72 | 52 | when: (write_values is defined and write_root_creds is defined) or (write_values is defined and mounts.json['aws/'] is not defined) |
73 | 53 | uri: |
74 | 54 | method=POST |
75 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/aws/config/root |
| 55 | + follow_redirects=all |
| 56 | + url=http://{{ ansible_default_ipv4.address }}:8200/v1/aws_1h/config/root |
76 | 57 | HEADER_X-Vault-Token="{{ vault_auth_token }}" |
77 | 58 | body_format=json |
78 | 59 | body='{{ item | to_json }}' |
|
88 | 69 | when: write_values is defined |
89 | 70 | uri: |
90 | 71 | method=GET |
91 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/aws/roles/dock-init |
| 72 | + follow_redirects=all |
| 73 | + url=http://{{ ansible_default_ipv4.address }}:8200/v1/aws_1h/roles/dock-init |
92 | 74 | HEADER_X-Vault-Token="{{ vault_auth_token }}" |
93 | 75 | status_code=200,404 |
94 | 76 | register: role |
|
98 | 80 | when: write_values is defined and role.status == 404 |
99 | 81 | uri: |
100 | 82 | method=POST |
101 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/aws/roles/dock-init |
| 83 | + follow_redirects=all |
| 84 | + url=http://{{ ansible_default_ipv4.address }}:8200/v1/aws_1h/roles/dock-init |
102 | 85 | HEADER_X-Vault-Token="{{ vault_auth_token }}" |
103 | 86 | body_format=json |
104 | 87 | body='{{ item | to_json | replace("\\\\", "") }}' |
105 | 88 | status_code=204 |
106 | 89 | register: creds |
107 | 90 | with_items: |
108 | 91 | - policy: "{{ vault_seed_policy }}" |
109 | | - |
110 | | - - name: seal vault |
111 | | - run_once: true |
112 | | - uri: |
113 | | - method=PUT |
114 | | - url=http://{{ ansible_default_ipv4.address }}:8200/v1/sys/seal |
115 | | - HEADER_X-Vault-Token="{{ vault_auth_token }}" |
116 | | - status_code=204 |
0 commit comments