--- - name: 部署Node Exporter hosts: "{{ target_hosts | default('all') }}" become: yes vars: exporter_version: "1.7.0" exporter_port: 9100 tasks: - name: 创建用户 user: name: node_exporter system: yes shell: /usr/sbin/nologin create_home: no - name: 下载Node Exporter get_url: url: "https://github.com/prometheus/node_exporter/releases/download/v{{ exporter_version }}/node_exporter-{{ exporter_version }}.linux-amd64.tar.gz" dest: /tmp/node_exporter.tar.gz - name: 解压 unarchive: src: /tmp/node_exporter.tar.gz dest: /tmp remote_src: yes - name: 安装二进制 copy: src: "/tmp/node_exporter-{{ exporter_version }}.linux-amd64/node_exporter" dest: /usr/local/bin/node_exporter mode: '0755' remote_src: yes - name: 创建Systemd服务 copy: content: | [Unit] Description=Node Exporter After=network.target [Service] User=node_exporter ExecStart=/usr/local/bin/node_exporter --web.listen-address=:{{ exporter_port }} Restart=always [Install] WantedBy=multi-user.target dest: /etc/systemd/system/node_exporter.service - name: 启动服务 systemd: name: node_exporter state: started enabled: yes daemon_reload: yes - name: 验证 shell: curl -s http://localhost:{{ exporter_port }}/metrics | head -5 register: metrics changed_when: false - name: 显示状态 debug: msg: "Node Exporter运行在端口 {{ exporter_port }}"