UNPKG

@installdoc/ansible-gas-station

Version:

An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤

92 lines (79 loc) 2.77 kB
--- - name: Ensure Megabyte Labs configuration directory exists file: mode: 0700 path: "{{ item }}" state: directory loop: - ~/.config - ~/.config/megabytelabs - name: Download the netdata kickstart.sh file get_url: url: https://my-netdata.io/kickstart.sh dest: ~/.config/megabytelabs/netdata-kickstart.sh register: kickstart_file - name: "Ensure {{ app_name }} is installed and up-to-date" # noqa 301 503 command: bash ~/.config/megabytelabs/netdata-kickstart.sh --dont-wait --stable-channel --disable-telemetry register: netdata_install when: kickstart_file.changed - name: Determine whether or not to add kernel optimizations for netdata set_fact: kernel_deduper: "{{ (netdata_install is defined) and (netdata_install.stdout is defined) \ and ('You have a kernel memory de-duper' in netdata_install.stdout) }}" - name: "Add optimization for kernel memory de-duper (/sys/kernel/mm/ksm/run)" command: echo 1 >/sys/kernel/mm/ksm/run when: kernel_deduper - name: "Add optimization for kernel memory de-duper (/sys/kernel/mm/ksm/sleep_millisecs)" command: echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs when: kernel_deduper - name: Ensure JOBS section is enabled in the config file lineinfile: path: /etc/netdata/go.d/wmi.conf regex: "^ [JOBS]" line: " [JOBS]" when: monitor_windows - name: Configure WMI to add Windows servers to monitoring blockinfile: path: /etc/netdata/go.d/wmi.conf insertafter: "^ [ JOBS ]" block: | jobs: {% for item in netdata_win_setting %} - name: {{ item.name }} url: http://{{ item.ip }}:9182/metrics" {% endfor %} when: monitor_windows - name: Restart netdata service: name: netdata state: restarted when: kernel_deduper - name: Check if netdata instance was claimed by netdata.cloud stat: path: ~/.config/megabytelabs/netdata-claimed register: netdata_claim - name: Wait for netdata to stabilize wait_for: timeout: 3 when: - not netdata_claim.stat.exists - netdata_room is defined - netdata_token is defined - name: Add instance to netdata cloud command: "netdata-claim.sh -token={{ netdata_token }} -rooms={{ netdata_room }} -url={{ netdata_claim_url }}" args: creates: ~/.config/megabytelabs/netdata-claimed ignore_errors: true register: netdata_claimed_status when: - not netdata_claim.stat.exists - netdata_room is defined - netdata_token is defined - name: Create configuration if the netdata claim was successful file: mode: 0600 path: ~/.config/megabytelabs/netdata-claimed state: touch when: - not (netdata_claimed_status.failed | default(false)) - not (netdata_claimed_status.skipped | default(false))