date: 2021-01-13title: Ansible安装node_exporter #标题
tags: ansible #标签
categories: ansible # 分类

记录下ansible批量安装node_exporter的playbook。

目录结构

  1. $ tree .
  2. .
  3. ├── hosts # 主机清单
  4. ├── install_node_exporter.yml # playbook
  5. └── roles
  6. └── install_node_exporter # role
  7. ├── files
  8. └── node_exporter-1.0.1.linux-amd64.tar.gz # 二进制包
  9. └── tasks
  10. └── main.yml # task列表文件

playbook文件

  1. $ cat install_node_exporter.yml
  2. ---
  3. - hosts: pod7
  4. remote_user: middleware
  5. gather_facts: no
  6. roles:
  7. - install_node_exporter

tasks/main.yml文件

  1. $ cat main.yml
  2. ---
  3. # tasks file for install_node_exporter
  4. - name: "拷贝 node_exporter"
  5. unarchive:
  6. src: node_exporter-1.0.1.linux-amd64.tar.gz
  7. dest: /apps/usr/exporter/
  8. owner: middleware
  9. mode: 0755
  10. creates: /apps/usr/exporter/node_exporter-1.0.1.linux-amd64/node_exporter
  11. - name: "创建软链接"
  12. file:
  13. src: /apps/usr/exporter/node_exporter-1.0.1.linux-amd64
  14. dest: /apps/usr/exporter/node_exporter
  15. state: link
  16. owner: middleware
  17. - name: "启动 node_exporter"
  18. shell:
  19. nohup /apps/usr/exporter/node_exporter/node_exporter &> /dev/null &
  20. - name: "确定 9100 端口在监听"
  21. wait_for:
  22. host: 0.0.0.0
  23. port: 9100
  24. delay: 2

执行结果

  1. # 如果你的部分机器可能已经启动了node_exporter,那么最好先停一下
  2. $ ansible -i hosts pod7 -m shell -a "pkill -9 node_exporter"
  3. # 执行playbook
  4. $ ansible-playbook -i hosts install_node_exporter.yml

返回结果如下:

Ansible安装node_exporter - 图1