天天看點

ansible批量安裝node-exporter

安裝ansible

Nginx

 yum install ansible -y

方法一、使用指令批量發送

SQL

 1、建立相應的目錄

 mkdir -p /opt/node-export

cd /opt/node-export/

2、下載下傳node-exporter和建立對應的啟動檔案

 wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

tar xf node_exporter-1.3.1.linux-amd64.tar.gz

node_exporter-1.3.1.linux-amd64/

3、啟動檔案

cat node-exporter.service

[Unit]

Description=Prometheus node_exporter

Requires=network.target remote-fs.target

After=network.target remote-fs.target

[Service]

Type=simple

User=root

Group=root

ExecStart=/opt/node_exporter/node_exporter --web.listen-address=0.0.0.0:9100

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=5s

[Install]

WantedBy=multi-user.target

4、建立對應的ip位址

[root@k8s-master node-export]# cat iplist.txt

[20220504]

172.16.5.122

172.16.5.146

5、遠端拷貝檔案

[root@k8s-master node-export]# ansible 20220504 -m copy -a "src=./node_exporter dest=/opt/node-exporter/  backup=yes" -i iplist.txt

[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details

172.16.5.122 | CHANGED => {

    "ansible_facts": {

        "discovered_interpreter_python": "/usr/bin/python"

    },

    "changed": true,

    "checksum": "6b88b4e8e0b109cb70d0410fea7df35692fe1216",

    "dest": "/opt/node-exporter/node_exporter",

    "gid": 0,

    "group": "root",

    "md5sum": "e105cbe3e43cc6e133a83358db009d36",

    "mode": "0644",

    "owner": "root",

    "size": 18228926,

    "src": "/root/.ansible/tmp/ansible-tmp-1651660508.81-32118-215511342287544/source",

    "state": "file",

    "uid": 0

}

172.16.5.146 | CHANGED => {

    "ansible_facts": {

        "discovered_interpreter_python": "/usr/bin/python"

    },

    "changed": true,

    "checksum": "6b88b4e8e0b109cb70d0410fea7df35692fe1216",

    "dest": "/opt/node-exporter/node_exporter",

    "gid": 0,

    "group": "root",

    "md5sum": "e105cbe3e43cc6e133a83358db009d36",

    "mode": "0644",

    "owner": "root",

    "size": 18228926,

    "src": "/root/.ansible/tmp/ansible-tmp-1651660508.8-32120-197167126853989/source",

    "state": "file",

    "uid": 0

}

6、發送服務自啟動配置檔案

[root@k8s-master node-export]# ansible 20220504 -m copy -a "src=./files/node-exporter.service  dest=/usr/lib/systemd/system/  backup=yes" -i iplist.txt

[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details

172.16.5.122 | CHANGED => {

    "ansible_facts": {

        "discovered_interpreter_python": "/usr/bin/python"

    },

    "changed": true,

    "checksum": "8523709e50be5c4e1218feafa8b22baf30e5e682",

    "dest": "/usr/lib/systemd/system/node-exporter.service",

    "gid": 0,

    "group": "root",

    "md5sum": "2168230bbf44d0bf8bff4539bce3a357",

    "mode": "0644",

    "owner": "root",

    "size": 367,

    "src": "/root/.ansible/tmp/ansible-tmp-1651660799.58-4285-252476952854520/source",

    "state": "file",

    "uid": 0

}

7、建立自啟動檔案

[root@k8s-master node-export]# ansible 20220504 -m shell -a "systemctl enable node-exporter.service" -i iplist.txt

[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details

172.16.5.146 | CHANGED | rc=0 >>

Created symlink from /etc/systemd/system/multi-user.target.wants/node-exporter.service to /usr/lib/systemd/system/node-exporter.service.

172.16.5.122 | CHANGED | rc=0 >>

Created symlink from /etc/systemd/system/multi-user.target.wants/node-exporter.service to /usr/lib/systemd/system/node-exporter.service.

8、賦權限

[root@k8s-master node-export]# ansible 20220504 -m shell -a "chmod 755 /opt/node-exporter/node_exporter" -i iplist.txt

9、自啟動檔案

[root@k8s-master node-export]# ansible 20220504 -m shell -a "systemctl start node-exporter.service" -i iplist.txt 

[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details

172.16.5.146 | CHANGED | rc=0 >>

172.16.5.122 | CHANGED | rc=0 >>

方法二、ansible 部署Prometheus node_exporter通過playbook

1、編寫site.yaml檔案

YAML

1、建立工作目錄

[root@k8s-master ~]# mkdir -p /opt/node-export

[root@k8s-master ~]# cd /opt/node-export/

2、配置site.yaml

[root@k8s-master node-export]# cat  site.yaml

- hosts: node-exporter

  tasks:

    - name: copy node_exporter

      copy:

        src: /opt/node-export/node_exporter

        dest: /opt/node-exporter/

        owner: root

        group: root

        mode: 755

    - name: copy node-exporter.service

      copy:

        src: files/node-exporter.service

        dest: /usr/lib/systemd/system/

      notify:

        - call restart service

    - name: 開機自啟動

      shell: systemctl enable node-exporter.service

    - name: 啟動服務

      shell: systemctl start node-exporter.service

2、建立node_exporter二進制檔案和相關的配置

2.1、建立目錄files

CoffeeScript

[root@k8s-master node-export]# mkdir files

[root@k8s-master node-export]# cd files/

[root@k8s-master files]#wget  https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

備注:files檔案裡面包含node_exporter二進制檔案;開機自啟檔案node-exporter.service;node_exporter開機自啟服務自定義端口配置node-exporter

2.2、編輯node_exporter開機自啟動服務等配置檔案

Makefile

[root@k8s-master node-export]# cat  files/node-exporter.service

[Unit]

Description=Prometheus node_exporter

Requires=network.target remote-fs.target

After=network.target remote-fs.target

[Service]

Type=simple

User=root

Group=root

ExecStart=/opt/node_exporter/node_exporter --web.listen-address=0.0.0.0:9100

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=5s

[Install]

WantedBy=multi-user.target

2.3、給/etc/ansible/hosts添加所有的主機

CoffeeScript

[root@k8s-master node-export]# vim /etc/ansible/hosts

[node-exporter]

172.16.5.122

172.16.5.146

2.4、執行ansible-playbook

Go

[root@k8s-master node-export]# ansible-playbook site.yaml