83 lines
1.7 KiB
YAML
83 lines
1.7 KiB
YAML
---
|
|
|
|
- hosts: consul
|
|
vars:
|
|
consul_config_dir: /etc/consul.d
|
|
consul_data_dir: /opt/consul
|
|
consul_install_dir: /usr/local/bin
|
|
become: true
|
|
tasks:
|
|
|
|
- name: install required UNZIP
|
|
package:
|
|
name: unzip
|
|
|
|
- name: add the CONSUL group
|
|
group:
|
|
name: consul
|
|
state: present
|
|
gid: 199
|
|
|
|
- name: add the CONSUL user
|
|
user:
|
|
name: consul
|
|
comment: CONSUL user
|
|
state: present
|
|
uid: 199
|
|
|
|
- name: install CONSUL from HashiCorp
|
|
unarchive:
|
|
src: https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip
|
|
dest: /usr/local/bin
|
|
remote_src: yes
|
|
mode: 0755
|
|
owner: consul
|
|
group: consul
|
|
|
|
- name: create CONSUL required data folders
|
|
file:
|
|
path: /opt/consul
|
|
state: directory
|
|
mode: '0755'
|
|
recurse: yes
|
|
owner: consul
|
|
group: consul
|
|
|
|
- name: create CONSUL required config folders
|
|
file:
|
|
path: /etc/consul.d
|
|
state: directory
|
|
mode: '0755'
|
|
recurse: yes
|
|
owner: consul
|
|
group: consul
|
|
|
|
- name: copy CONSUL systemd script
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: /etc/consul.d
|
|
owner: consul
|
|
group: consul
|
|
with_items:
|
|
- consul/configs/consul.hcl
|
|
- consul/configs/service-ssh.hcl
|
|
|
|
- name: send consul configuration file
|
|
template:
|
|
dest: "{{ consul_config_dir }}/config.json"
|
|
src: consul.config.j2
|
|
|
|
- name: ensure consul service file exists
|
|
template:
|
|
dest: /etc/systemd/system/consul.service
|
|
src: consul.service.j2
|
|
force: yes
|
|
mode: 0644
|
|
|
|
- name: enable CONSUL systemd script
|
|
service:
|
|
name: consul
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
state: restarted
|