7f71883d09
I ran into this problem where the formula can't download and install Consul: https://github.com/saltstack/salt/issues/38730 As a work around, I'm making the download URL configurable. Not sure if many other people will find this useful, so if you don't want to merge it that's fine. For me it's only a temporary fix until I can upgrade Salt.
79 lines
1.7 KiB
Text
79 lines
1.7 KiB
Text
{% from "consul/map.jinja" import consul with context %}
|
|
|
|
consul-dep-unzip:
|
|
pkg.installed:
|
|
- name: unzip
|
|
|
|
consul-bin-dir:
|
|
file.directory:
|
|
- name: /usr/local/bin
|
|
- makedirs: True
|
|
|
|
# Create consul user
|
|
consul-user:
|
|
group.present:
|
|
- name: consul
|
|
user.present:
|
|
- name: consul
|
|
- createhome: false
|
|
- system: true
|
|
- groups:
|
|
- consul
|
|
- require:
|
|
- group: consul
|
|
|
|
# Create directories
|
|
consul-config-dir:
|
|
file.directory:
|
|
- name: /etc/consul.d
|
|
- user: consul
|
|
- group: consul
|
|
|
|
consul-runtime-dir:
|
|
file.directory:
|
|
- name: /var/consul
|
|
- user: consul
|
|
- group: consul
|
|
|
|
consul-data-dir:
|
|
file.directory:
|
|
- name: /usr/local/share/consul
|
|
- user: consul
|
|
- group: consul
|
|
- makedirs:
|
|
|
|
# Install agent
|
|
consul-download:
|
|
file.managed:
|
|
- name: /tmp/consul_{{ consul.version }}_linux_amd64.zip
|
|
- source: https://{{ consul.download_host }}/consul/{{ consul.version }}/consul_{{ consul.version }}_linux_amd64.zip
|
|
- source_hash: sha256={{ consul.hash }}
|
|
- unless: test -f /usr/local/bin/consul-{{ consul.version }}
|
|
|
|
consul-extract:
|
|
cmd.wait:
|
|
- name: unzip /tmp/consul_{{ consul.version }}_linux_amd64.zip -d /tmp
|
|
- watch:
|
|
- file: consul-download
|
|
|
|
consul-install:
|
|
file.rename:
|
|
- name: /usr/local/bin/consul-{{ consul.version }}
|
|
- source: /tmp/consul
|
|
- require:
|
|
- file: /usr/local/bin
|
|
- watch:
|
|
- cmd: consul-extract
|
|
|
|
consul-clean:
|
|
file.absent:
|
|
- name: /tmp/consul_{{ consul.version }}_linux_amd64.zip
|
|
- watch:
|
|
- file: consul-install
|
|
|
|
consul-link:
|
|
file.symlink:
|
|
- target: consul-{{ consul.version }}
|
|
- name: /usr/local/bin/consul
|
|
- watch:
|
|
- file: consul-install
|