一、安装和配置
1、安装Ansible:
sudo apt install ansible
2、配置inventory文件:
[webserver]
192.168.1.100 ansible_user=ubuntu ansible_ssh_private_key_file=/path/to/private_key
3、在目标主机上安装Python和SSH服务器:
sudo apt-get install python ssh
二、基础用法
1、使用Ansible fetch从远程服务器获取文件:
ansible webserver -m fetch -a "src=/etc/hosts dest=/tmp/"
2、将多个文件合并到一个目录:
ansible webserver -m fetch -a "src=/var/log/syslog* dest=/tmp/flat mode=600 flat=yes"
3、将结果存储在本地文件:
ansible webserver -m fetch -a "src=/var/log/syslog dest=/tmp/" --become --become-user=root --ask-become-pass --private-key=path/to/key
三、高级用法
1、指定ssh证书:
ansible webserver -m fetch -a "src=/etc/hosts dest=/tmp/" --key-file=~/path/to/key.pem
2、过滤结果:
ansible webserver -m fetch -a "src=/var/log/syslog dest=/tmp/" --args 'grep -v test'
3、自定义目标文件名:
ansible webserver -m fetch -a "src=/etc/hosts dest=/tmp/new_name"
4、使用sudo权限:
ansible webserver -m fetch -a "src=/var/log/syslog dest=/tmp/" --become --ask-become-pass
四、结合playbook使用
1、定义任务:
- name: Fetch logs from webserver
hosts: webserver
gather_facts: no
remote_user: ubuntu
tasks:
- name: Get syslog
fetch:
src: /var/log/syslog
dest: /tmp/syslog
tags:
- logs
2、运行playbook:
ansible-playbook fetch_logs.yml
五、总结
Ansible fetch是一个非常强大的工具,可以轻松地从远程服务器获取文件并将其下载到本地。此外,它还可以结合playbook使用,使得管理服务器变得更简单。无论你是在构建复杂的系统还是仅仅需要从远程服务器获取文件,Ansible Fetch都是一个必不可少的工具。