使用ansible 批量安装node_exporter

方式:

1)使用unarchive模块解压node_exporter的软件包到远程主机的/opt目录下

2)  执行启动脚本,启动node_exporter

步骤:

1.在hosts文件下加入被管理的主机清单(这里添加为zookeeper组),和连接密钥

$ cat /etc/ansible/hosts
[zookeeper]
10.30.19.101:22022
10.30.33.21:22022
10.30.21.70:22022
10.30.25.219:22022
[es:vars]
ansible_ssh_private_key_file='/root/ssh.pem'

2.在ansible本地下载node_exporter二进制包:

$ wget https://download.fastgit.org/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz

3.编写启动/停止脚本,启动node_export 仅需要在解压后的目录下执行./node_exporter即可,我们可以编写node_exporter的启动脚本,通过script模块在被管理的机子上执行,即可完成node_exporter的启动,以下是node_exporter的启动脚本(这里更改了一些启动参数)

$ cat start.sh
#!/bin/bash
nohup /opt/node_exporter/node_exporter --collector.disable-defaults \
 --collector.cpu \
 --collector.diskstats \
 --collector.loadavg \
 --collector.meminfo \
 --collector.netdev \
 --collector.netstat \
 --collector.filesystem \
 --collector.vmstat \
 --collector.uname \
 --collector.time \
 --collector.infiniband \
 --collector.stat \
 --log.level="error" > /opt/node_exporter/nohup.txt &

$ cat stop.sh
#!/bin/bash
i=`netstat -ntlp | grep node_exporter | awk '{print $7}' | awk -F '/' '{print $1}'`
kill -15 $i

解压node_exporter压缩包,将start.sh和stop.sh放入node_exporter目录下并重新打包node_exporter目录:

$ tar -xvf node_exporter-1.2.2.linux-amd64.tar.gz
$ copy start.sh node_exporter-1.2.2.linux-amd64
$ copy stop.sh node_exporter-1.2.2.linux-amd64
$ tar -czvf node_exporter-1.2.2.linux-amd64.tar.gz node_exporter-1.2.2.linux-amd64

4..编写安装node_exporter的playbook

playbook内容为:通过unarchive模块将node_exporter的二进制包解压到被管理的主机上,重命名解压后的目录,执行启动脚本,启动node_exporter。

$ cat node_exporter.yaml
---
 - hosts: zookeeper
   remote_user: tier2
   tasks:
     - name: copy node_exporter
       unarchive:
         src: /root/ansible/node_exporter/node_exporter-1.2.2.linux-amd64.tar.gz
         dest: /opt
     - name: rename
       shell: 'mv /opt/node_exporter-1.2.2.linux-amd64 /opt/node_exporter'
     - name: start
       shell: 'chmod +x /opt/node_exporter/start.sh && chmod +x /opt/node_exporter/stop.sh && /opt/node_exporter/start.sh'

5.执行ansible-playbook node_exporter.yaml,完成!


版权声明:本文为lovely_nn原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。