📅  最后修改于: 2023-12-03 15:29:24.601000             🧑  作者: Mango
Ansible是一款自动化运维工具,通过对主机进行配置管理、应用程序部署以及任务协调等功能,可以实现快速高效的基础架构管理。在Ansible中,复制文件是一项常见任务,而其中一种复制方式是通过Shell/Bash命令来实现。
下面是使用Shell/Bash复制文件的方式:
- name: Copy file using Shell/Bash
hosts: server
tasks:
- name: Copy file using Shell/Bash command
shell: cp /src_file /dest_folder/
shell
:指定使用的Shell/Bash命令,此处为cp
。/src_file
:源文件的路径和文件名。/dest_folder/
:目标文件夹的路径,注意要以/
结尾。除了复制文件,复制文件夹同样也是一项常见的任务。下面是使用Shell/Bash复制文件夹的方式:
- name: Copy directory using Shell/Bash
hosts: server
tasks:
- name: Copy directory using Shell/Bash command
shell: cp -r /src_directory /dest_directory
shell
:指定使用的Shell/Bash命令,此处为cp
。-r
:表示递归复制文件夹及其中所有内容。/src_directory
:源文件夹的路径。/dest_directory
:目标文件夹的路径。在Ansible中,使用Shell/Bash命令复制远程主机的文件也是非常容易的。只需要在命令中指定主机用户名、主机地址和密码即可。
- name: Copy remote file from host1 to host2
hosts: host2
tasks:
- name: Copy file from host1
shell: scp user1@host1:/src_file /dest_folder/ --password pass01
shell
:指定使用的Shell/Bash命令,此处为scp
。user1
:源主机的用户名。host1
:源主机的IP地址。/src_file
:源文件的路径和文件名。/dest_folder/
:目标文件夹的路径,注意要以/
结尾。--password pass01
:源主机的密码。通过Shell/Bash命令可以实现Ansible的文件拷贝功能,包括复制文件、复制文件夹以及复制远程主机文件等。需要注意的是,复制文件夹的时候需要增加-r
参数,表示递归复制文件夹及其中所有内容。而复制远程主机的文件则需要指定主机用户名、主机地址和密码等信息。