使用playbook在所有受管节点生成一个文件,/tmp/节点名.txt ,文件内容为 该节点IP: 该节点主机名: 该节点内存大小: 该节点cpu核心数:
时间: 2024-03-03 14:47:39 浏览: 133
好的,我明白了。下面是使用Ansible playbook实现在所有受管节点生成一个文件,/tmp/节点名.txt,文件内容为该节点IP、该节点主机名、该节点内存大小和该节点CPU核心数的步骤:
1. 创建一个名为`create_file.yml`的playbook文件。
2. 在playbook文件中,使用`hosts`关键字指定受管节点的IP地址或主机名。
3. 定义一个task,使用`gather_facts`模块收集受管节点的系统信息。
4. 定义一个task,使用`copy`模块将收集到的信息写入到文件中。
5. 在写入文件之前,使用`set_fact`模块将收集到的信息存储到变量中,以便在后续的task中使用。
6. 使用`delegate_to`关键字将task委托给受管节点执行。
下面是具体的实现步骤:
```
---
- name: Create file on managed nodes
hosts: all
gather_facts: yes
tasks:
- name: Get system information
set_fact:
node_ip: "{{ ansible_default_ipv4.address }}"
node_name: "{{ ansible_hostname }}"
node_memory: "{{ ansible_memory_mb.real.total }}"
node_cpu_cores: "{{ ansible_processor_cores }}"
- name: Write information to file
copy:
content: |
Node IP: {{ node_ip }}
Node Name: {{ node_name }}
Node Memory: {{ node_memory }}
Node CPU Cores: {{ node_cpu_cores }}
dest: /tmp/{{ node_name }}.txt
delegate_to: "{{ inventory_hostname }}"
```
这个playbook将在所有受管节点上执行,收集节点的系统信息,将信息写入到文件中,并将文件保存在`/tmp`目录下,以节点名命名。
阅读全文