vault-cluster
77 строк · 2.2 Кб
1---
2- name: Create consul_s*.json file
3hosts: consul-clients
4become: true
5gather_facts: false
6
7vars:
8retry_join: "{{ groups['consul-servers'] | to_json }}"
9
10tasks:
11
12- name: Create consul config directory
13file:
14path: /etc/consul
15state: directory
16owner: consul
17group: consul
18mode: '0750'
19
20- name: Ensure consul_c*.json file exists
21copy:
22content: |
23{
24"server": false,
25"node_name": "{{ inventory_hostname }}",
26"datacenter": "{{ datacenter }}",
27"data_dir": "/home/consul/client/data",
28"bind_addr": "{{ ansible_host }}",
29"client_addr": "127.0.0.1",
30"retry_join": {{ retry_join }},
31"log_level": "DEBUG",
32"enable_syslog": true,
33"encrypt": "{{ encrypt }}",
34}
35dest: "/etc/consul/{{ inventory_hostname | replace('-', '_') }}.json"
36owner: consul
37group: consul
38mode: '0600'
39
40- name: Create consul service file
41copy:
42content: |
43[Unit]
44Description=Consul client agent
45Requires=network-online.target
46After=network-online.target
47
48[Service]
49User=consul
50Group=consul
51PIDFile=/var/run/consul/consul_agent.pid
52PermissionsStartOnly=true
53ExecStartPre=-/bin/mkdir -p /var/run/consul
54ExecStartPre=/bin/chown -R consul:consul /var/run/consul
55ExecStart=/bin/consul agent \
56-config-file=/etc/consul/{{ inventory_hostname | replace('-', '_') }}.json \
57-pid-file=/var/run/consul/consul_agent.pid
58ExecReload=/bin/kill -HUP $MAINPID
59KillMode=process
60KillSignal=SIGTERM
61Restart=on-failure
62RestartSec=42s
63
64[Install]
65WantedBy=multi-user.target
66
67dest: "/etc/systemd/system/{{ inventory_hostname | replace('-', '_') }}.service"
68owner: root
69group: root
70mode: '0644'
71
72- name: Enable and start consul service
73systemd:
74name: "{{ inventory_hostname | replace('-', '_') }}"
75enabled: yes
76state: restarted
77daemon_reload: yes
78