node_exporter方式一:

node_exporter.yml

- hosts: 192.168.0.16
  user: root
  gather_facts: false
  tasks: 
  - name: install node_exporter
    unarchive: src=node_exporter-1.1.2.linux-amd64.tar.gz dest=/usr/local/
  - name: create link
    file: path=/usr/local/node_exporter src=/usr/local/node_exporter-1.1.2.linux-amd64 state=link
  - name: add service file
    copy: src=node_exporter.service dest=/usr/lib/systemd/system/
  - name: enable service
    shell: systemctl enable node_exporter.service
  - name: start service
    shell: systemctl start node_exporter.service

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=/usr/local/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


node_exporter方式二:

node_exporter.yml
node_exporter/
├── files
│   ├── node_exporter-1.1.2.linux-amd64.tar.gz
│   └── node_exporter.service
├── tasks
│   ├── install.yml
│   └── main.yml
└── templates

node_exporter.yml

- hosts: temp
  remote_user: root
  roles:
  - role: node_exporter

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=/usr/local/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

install.yml

- name: install node_exporter
  unarchive: src=node_exporter-1.1.2.linux-amd64.tar.gz dest=/usr/local/
- name: create link
  file: path=/usr/local/node_exporter src=/usr/local/node_exporter-1.1.2.linux-amd64 state=link
- name: add service file
  copy: src=node_exporter.service dest=/usr/lib/systemd/system/
- name: start service
  service: name=node_exporter state=started enabled=yes

main.yml

- include: install.yml


mysqld_exporter:

mysqld_exporter.yml
mysqld_exporter/
├── files
│   ├── mysqld_exporter-0.13.0.linux-amd64.tar.gz
│   └── mysqld_exporter.service
├── tasks
│   ├── install.yml
│   └── main.yml
└── templates
    └── my.cnf.j2

mysqld_exporter.yml

- hosts: temp
  remote_user: root
  roles:
  - role: mysqld_exporter
  vars: 
  - username: root
  - passwd: 123456

mysqld_exporter.service

[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure

[Install]
WantedBy=multi-user.target

install.yml

- name: install mysqld_exporter
  unarchive: src=mysqld_exporter-0.13.0.linux-amd64.tar.gz dest=/usr/local/
- name: create link
  file: path=/usr/local/mysqld_exporter src=/usr/local/mysqld_exporter-0.13.0.linux-amd64 state=link
- name: add service file
  copy: src=mysqld_exporter.service dest=/usr/lib/systemd/system/
- name: add .my.cnf file
  template: src=my.cnf.j2 dest=/usr/local/mysqld_exporter/.my.cnf
- name: start service
  service: name=mysqld_exporter state=started enabled=yes

main.yml

- include: install.yml

my.cnf.j2

[client]
user={{ username }}
password={{ passwd }}