(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 浏览: 36
下面是实现上述需求的Ansible Playbook文件:
```yaml
- name: 输出被控机基本信息
hosts: all
tasks:
- name: 输出主机名
debug:
msg: "Hostname is {{ inventory_hostname }}"
- name: 输出IP地址
debug:
msg: "IP address is {{ ansible_default_ipv4.address }}"
- name: 输出操作系统信息
debug:
msg: "Operating system is {{ ansible_distribution }} {{ ansible_distribution_version }}"
- name: 在被控机中建立文件夹
hosts: all
tasks:
- name: 建立文件夹
file:
path: "/root/{{ lookup('env', 'USER') }}"
state: directory
- name: 传递文件至被控机
hosts: all
tasks:
- name: 复制文件
copy:
src: "{{ lookup('env', 'HOME') }}/{{ lookup('env', 'USER') }}.txt"
dest: "/root/{{ lookup('env', 'USER') }}/"
- name: 输出被控机/root目录下的文件
hosts: all
tasks:
- name: 输出文件
shell: "ls /root"
- name: 在被控机上执行shell脚本
hosts: all
tasks:
- name: 传递脚本
copy:
src: "hello.sh"
dest: "/tmp/"
- name: 执行脚本
shell: "/bin/bash /tmp/hello.sh"
```
其中,第1个任务输出主机名、IP地址和操作系统信息。第2个任务在被控机的/root目录下建立一个文件夹,文件夹的名称是当前用户的姓名缩写。第3个任务传递一个文件至被控机的/root/姓名缩写目录下。第4个任务输出被控机/root目录下的所有文件。第5个任务传递一个shell脚本至被控机的/tmp目录下,并在被控机上执行该脚本。