(1) 使用ansible让被控机输出基本信息 (2) 使用ansible在被控机中建立一个文件夹:/root/你的姓名缩写 (3) 在主控端中建立一个文件,你的姓名缩写.txt。然后把这个文件通过ansible传递至(2)中的文件夹下 (4) 使用ansible,让被控端输出root目录下所有的文件或文件夹 (5)在主控端编写一个shell脚本hello.sh,内容为输出hello world。将这个脚本通过ansible让被控端执行。
时间: 2024-01-25 11:01:52 浏览: 107
好的,你的问题是如何使用Ansible实现以下任务:
1. 让被控机输出基本信息
2. 在被控机中建立一个文件夹:/root/你的姓名缩写
3. 在主控端中建立一个文件,你的姓名缩写.txt。然后把这个文件通过ansible传递至(2)中的文件夹下
4. 让被控端输出root目录下所有的文件或文件夹
5. 在主控端编写一个shell脚本hello.sh,内容为输出hello world。将这个脚本通过ansible让被控端执行。
下面是对你的问题的回答:
1. 让被控机输出基本信息
```yaml
- name: 获取系统信息
gather_facts: yes
tasks:
- name: 显示系统信息
debug:
var: ansible_facts
```
2. 在被控机中建立一个文件夹:/root/你的姓名缩写
```yaml
- name: 在被控机上创建文件夹
hosts: target
tasks:
- name: 创建文件夹
file:
path: /root/{{ lookup('env','USER')[:2] }}
state: directory
```
3. 在主控端中建立一个文件,你的姓名缩写.txt。然后把这个文件通过ansible传递至(2)中的文件夹下
```yaml
- name: 在主控端创建文件
hosts: control
tasks:
- name: 创建文件
copy:
content: "这是一些内容"
dest: "{{ lookup('env','HOME') }}/{{ lookup('env','USER')[:2] }}.txt"
- name: 将文件传输到被控机
hosts: target
tasks:
- name: 传输文件
copy:
src: "{{ lookup('env','HOME') }}/{{ lookup('env','USER')[:2] }}.txt"
dest: "/root/{{ lookup('env','USER')[:2] }}/"
```
4. 让被控端输出root目录下所有的文件或文件夹
```yaml
- name: 获取文件列表
hosts: target
tasks:
- name: 获取文件列表
find:
paths: /root/
file_type: any
register: files
- name: 显示文件列表
debug:
var: files.files
```
5. 在主控端编写一个shell脚本hello.sh,内容为输出hello world。将这个脚本通过ansible让被控端执行。
```yaml
- name: 在主控端创建hello.sh脚本
hosts: control
tasks:
- name: 创建脚本
copy:
content: "#!/bin/bash\n echo 'hello world'"
dest: "{{ lookup('env','HOME') }}/hello.sh"
mode: 0755
- name: 在被控机上执行脚本
hosts: target
tasks:
- name: 执行脚本
command: /bin/bash /root/hello.sh
```
阅读全文