diff --git a/ansible/consul-services.yml b/ansible/consul-services.yml new file mode 100644 index 00000000..37f268ed --- /dev/null +++ b/ansible/consul-services.yml @@ -0,0 +1,7 @@ +--- +- hosts: rabbitmq +- hosts: redis + +- hosts: vault + roles: + - { role: consul-services } diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index bb53bebe..7495f4a3 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -1,6 +1,7 @@ --- # registry settings registry_env: "prod" +registry_port: 80 # for docker stop old container stop_time: 5 @@ -102,4 +103,3 @@ shiva_port: 3000 # swarm swarm_master_port: 2375 - diff --git a/ansible/roles/consul-services/tasks/main.yml b/ansible/roles/consul-services/tasks/main.yml new file mode 100644 index 00000000..e1c31d56 --- /dev/null +++ b/ansible/roles/consul-services/tasks/main.yml @@ -0,0 +1,37 @@ +--- +- name: make /etc/consul.d folder + sudo: yes + file: + path=/etc/consul.d + state=directory + +- name: remove all current configs + sudo: yes + shell: rm -f /etc/consul.d/*.json + +- name: put service files in place + sudo: yes + template: + dest=/etc/consul.d/{{ item.name }}.json + src=service.json + with_items: + - name: 'datadog' + host_address: '{{ datadog_host_address }}' + tags: ['master'] + port: '{{ datadog_port }}' + - name: 'rabbitmq' + host_address: '{{ rabbit_host_address }}' + tags: ['master'] + port: '{{ rabbit_port }}' + - name: 'redis' + host_address: '{{ redis_host_address }}' + tags: ['master'] + port: '{{ redis_port }}' + - name: 'registry' + host_address: '{{ registry_host }}' + tags: ['master'] + port: '{{ registry_port }}' + +- name: send consul SIGUP to reload services + sudo: yes + shell: pkill --signal SIGHUP consul diff --git a/ansible/roles/consul-services/templates/service.json b/ansible/roles/consul-services/templates/service.json new file mode 100644 index 00000000..c875e3c5 --- /dev/null +++ b/ansible/roles/consul-services/templates/service.json @@ -0,0 +1,8 @@ +{ + "service": { + "name": "{{ item.name }}", + "tags": [ "{{ item.tags | join('","') }}" ], + "address": "{{ item.host_address }}", + "port": {{ item.port }} + } +}