脚本文件如下
#!/bin/bash
#配置开机启动node_exporter
tar -zxf node_exporter-0.18.0.linux-amd64.tar.gz
cp -R node_exporter-*/node_exporter /usr/local/bin/node_exporter
echo "---验证版本---"
node_exporter --version
#创建工作目录
mkdir -p /var/lib/node_exporter
#创建并编写配置启动项配置文件
cat > /usr/lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl start node_exporter && systemctl enable node_exporter
echo "---验证---"
systemctl status node_exporter
echo "---开机自启动---"
systemctl list-unit-files | grep node_exporter
echo "---监听端口---"
ss -ntlp | grep 9100
#清除无用包
rm -rf ./node_exporter-*
运行一个playbook
playbook中包含安装基础软件包 拷贝脚本文件 运行脚本文件
vim script.yml
- hosts: ansible-node2
tasks:
- name: 安装基础软件包
yum:
name: "{{ item }}"
state: installed
with_items:
- wget
- lrzsz
- tree
- net-tools
- hosts: ansible-node2
tasks:
- name: 拷贝node_exporter-0.18.0.linux-amd64.tar.gz安装包
copy: src=/root/node_exporter-0.18.0.linux-amd64.tar.gz dest=/root/node_exporter-0.18.0.linux-amd64.tar.gz owner=root group=root backup=yes
- hosts: ansible-node2
tasks:
- name: 拷贝node_exporter.sh脚本
copy: src=/root/node_exporter.sh dest=/root/node_exporter.sh owner=root group=root mode=0755 backup=yes
- hosts: ansible-node2
tasks:
- name: 运行node_exporter.sh脚本
shell: sh node_exporter.sh
检查playbook语法
ansible-playbook script.yml --syntax-check
单独拷贝文件到目标机器
ansible ansible-node3 -m copy -a "src=/root/node_exporter.sh dest=/root/node_exporter.sh
backup=yes"
解析:
-m 指定使用哪个模块
src=执行ansible的机器
dest=目标机器
src指定的是文件则dest也必须指定文件
src指定的是目录则dest也必须指定目录
backup=yes 备份远程节点上的原始文件,在拷贝之前。如果发生什么意外,原始文件还能使用。
网友评论