--- - hosts: "{{hosts}}" tasks: # 创建目录 - name: create data directory file: path: "{{ item }}" state: directory recurse: yes owner: root group: root with_items: - /data/server - /data/logs # 发送压缩包 - name: copy node_exporter-0.18.1.linux-amd64.tar.gz to /data/server/ copy: src: src/node_exporter-0.18.1.linux-amd64.tar.gz dest: /data/server/ # 解压 - name: unarchive node_exporter-0.18.1.linux-amd64.tar.gz to /data/server/ unarchive: src: src/node_exporter-0.18.1.linux-amd64.tar.gz dest: /data/server/ owner: root group: root creates: /data/server/node_exporter-0.18.1.linux-amd64 # 复制supervisor配置文件 - name: copy node_exporter.ini copy: src=conf/node_exporter.ini dest=/etc/supervisord.d/node_exporter.ini notify: supervisorctl update # 立即执行 handlers - meta: flush_handlers # 延迟5s,等待node_exporter启动 - name: sleep 5 shell: sleep 5 # 检查进程 - name: check node_exporter process shell: ps -ef | grep node_exporter | grep -v "grep" | wc -l register: check_process # 检查端口 - name: check node_exporter port shell: netstat -ntpl | grep "9100" | wc -l register: check_port - debug: var=check_process - debug: var=check_port # 判断启动有没有成功 - name: check node_exporter status debug: msg: "node_exporter is running" when: - check_process.stdout == "1" - check_port.stdout == "1" # 尝试重启 - name: restart node_exporter shell: supervisorctl restart node_exporter when: - check_process.stdout == "0" - check_port.stdout == "0" handlers: - name: supervisorctl update shell: supervisorctl update