ansible-playbooks

another attempt to have everything organized ...
git clone https://git.e1e0.net/ansible-playbooks.git
Log | Files | Refs | README | LICENSE

main.yml (2669B)


      1 ---
      2 - name: Create the node_exporter group
      3   group:
      4     name: "{{ node_exporter_system_group }}"
      5     state: present
      6     system: true
      7   when: node_exporter_system_group != "root"
      8 
      9 - name: Create the node_exporter user
     10   user:
     11     name: "{{ node_exporter_system_user }}"
     12     groups: "{{ node_exporter_system_group }}"
     13     append: true
     14     shell: /usr/sbin/nologin
     15     system: true
     16     create_home: false
     17     home: /
     18   when: node_exporter_system_user != "root"
     19 
     20 - name: create opt/bin
     21   file:
     22     name: /opt/bin
     23     state: directory
     24     owner: root
     25     group: root
     26     mode: '0755'
     27 
     28 - block:
     29     - name: Get checksum list from github
     30       set_fact:
     31         _checksums: "{{ lookup('url', 'https://github.com/prometheus/node_exporter/releases/download/v' + node_exporter_version + '/sha256sums.txt', wantlist=True) | list }}"
     32       run_once: true
     33 
     34     - name: "Get checksum for {{ go_arch }} architecture"
     35       set_fact:
     36         node_exporter_checksum: "{{ item.split(' ')[0] }}"
     37       with_items: "{{ _checksums }}"
     38       when:
     39         - "( go_os + '-' + go_arch + '.tar.gz') in item"
     40 
     41 - name: Download node_exporter tarball
     42   get_url:
     43     url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}.tar.gz"
     44     dest: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}.tar.gz"
     45     checksum: "sha256:{{ node_exporter_checksum }}"
     46     mode: '0755'
     47     owner: root
     48     group: root
     49   register: _download_binary
     50   until: _download_binary is succeeded
     51   retries: 5
     52   delay: 2
     53 
     54 - name: Unpack node_exporter tarball
     55   unarchive:
     56     remote_src: yes
     57     src: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}.tar.gz"
     58     dest: "/tmp"
     59     creates: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}/node_exporter"
     60 
     61 - name: Propagate node_exporter binaries
     62   copy:
     63     remote_src: yes
     64     src: "/tmp/node_exporter-{{ node_exporter_version }}.{{ go_os }}-{{ go_arch }}/node_exporter"
     65     dest: "/opt/bin/node_exporter"
     66     mode: 0755
     67     owner: root
     68     group: root
     69   notify: restart node_exporter
     70 
     71 - name: node_exporter service
     72   template:
     73     src: files/node_exporter.service.j2
     74     dest: /etc/systemd/system/node_exporter.service
     75     owner: root
     76     group: root
     77     mode: '0644'
     78   register: node_exporter_unit_file
     79   when: go_os == "linux"
     80 
     81 - name: reload systemd daemon
     82   command: systemctl daemon-reload
     83   when:
     84     - node_exporter_unit_file.changed
     85     - go_os == "linux"
     86 
     87 - name: enable and start (linux)
     88   service:
     89     name: node_exporter
     90     enabled: yes
     91     state: started
     92   when: go_os == "linux"