📜  ansible 复制 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:29:24.601000             🧑  作者: Mango

Ansible 复制 - Shell/Bash

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参数,表示递归复制文件夹及其中所有内容。而复制远程主机的文件则需要指定主机用户名、主机地址和密码等信息。