diff options
Diffstat (limited to 'tasks')
| -rw-r--r-- | tasks/main.yml | 57 | ||||
| -rw-r--r-- | tasks/runit.yml | 25 | ||||
| -rw-r--r-- | tasks/tls.yml | 17 |
3 files changed, 99 insertions, 0 deletions
diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..866f00e --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,57 @@ +--- +- set_fact: "node_exporter_extract_dir=node_exporter-{{node_exporter_version}}.{{node_exporter_os}}-{{node_exporter_architecture}}" +- name: Create configuration directory + file: + state: directory + dest: "{{node_exporter_home_dir}}/conf" + mode: '0700' +- name: Download Node Exporter + get_url: + url: "{{node_exporter_url}}" + dest: "{{node_exporter_home_dir}}/node_exporter-{{node_exporter_version}}.tgz" + mode: '0600' + checksum: 'sha256:{{node_exporter_checksum}}' +# There's a bug in become_user that doesn't set permissions on the temp directory +# which is asinine when my user has sudo persmissions. +- name: Extract Node exporter + shell: | + #!/bin/sh + set -e + if ! [ -e "{{node_exporter_home_dir}}/{{node_exporter_extract_dir}}" ] ; then + cd "{{node_exporter_home_dir}}" + tar xzf node_exporter-{{node_exporter_version}}.tgz + exit 50 + fi + register: res + changed_when: res is defined and res.rc == 50 + ignore_errors: true + notify: Restart node_exporter +- name: Link node_exporter directory + file: + state: link + src: '{{node_exporter_extract_dir}}' + dest: '{{node_exporter_home_dir}}/node_exporter' + force: yes +- name: Link configuration files + file: + state: link + src: '../conf/{{item}}' + dest: '{{node_exporter_home_dir}}/node_exporter/{{item}}' + force: yes + loop: + - web_config.yml + notify: Restart node_exporter +- name: Include tls tasks + include_tasks: tls.yml + when: node_exporter_tls +- name: Write node_exporter configuration file + copy: + content: '{{node_exporter_web_config | to_nice_yaml}}' + dest: '{{node_exporter_home_dir}}/conf/web_config.yml' + mode: '0600' + notify: Restart node_exporter + tags: + - configuration + when: node_exporter_web_config is defined +- name: Include Runit tasks + include_tasks: runit.yml diff --git a/tasks/runit.yml b/tasks/runit.yml new file mode 100644 index 0000000..ce5b8f4 --- /dev/null +++ b/tasks/runit.yml @@ -0,0 +1,25 @@ +--- +- name: Install Runit service directory + file: + state: directory + path: /etc/sv/node_exporter + mode: '0755' +- name: Install Runit service command + template: + src: node_exporter.runit + dest: /etc/sv/node_exporter/run + mode: '755' +- name: Install supervise symlink + file: + state: link + force: yes + src: /tmp/supervise.node_exporter + dest: /etc/sv/node_exporter/supervise + follow: false +- name: Enable Node Exporter service + file: + state: link + force: yes + src: /etc/sv/node_exporter + dest: /var/service/node_exporter + follow: false diff --git a/tasks/tls.yml b/tasks/tls.yml new file mode 100644 index 0000000..42bb0fe --- /dev/null +++ b/tasks/tls.yml @@ -0,0 +1,17 @@ +--- +- name: Copy CA certificate + copy: + content: '{{node_exporter_tls_ca}}' + dest: '{{node_exporter_home_dir}}/conf/ca.crt' + notify: Restart node_exporter +- name: Copy TLS Key + copy: + content: '{{node_exporter_tls_key}}' + dest: '{{node_exporter_home_dir}}/conf/key' + mode: '0600' + notify: Restart node_exporter +- name: Copy TLS cert + copy: + content: '{{node_exporter_tls_crt}}' + dest: '{{node_exporter_home_dir}}/conf/crt' + notify: Restart node_exporter |
