使用 Ansible 将文件从一台服务器复制到另一台服务器
Copy Files from one server to another using Ansible
我想使用 Ansible 将文件从一台服务器复制到另一台服务器。
下面是例子
Server A ------> Server B
Server C ------> Server D
我在服务器 A 上有一个文件,特别想将该文件复制到服务器 B,服务器 C 到 D 也是如此。将文件保存到目的地的文件夹是相同的。我可以为 2 或 3 个主机做这件事。但是我如何动态创建让我们说 100 个节点来复制特定的单个文件,仅分配给所需的服务器。
您可以使用 fetch
and copy
的组合来执行此操作。
假设库存结构如下:
[source-servers]
ServerA
ServerC
[dest-servers]
ServerB source-server=ServerA
ServerD source-server=ServerB
然后运行以下fetch
任务:
- name: fetch file from source servers
hosts: source-servers
fetch:
src: /path/to/file
dest: /tmp
将ServerA上的文件/path/to/file
复制到/tmp/ServerA/path/to/file
下的Ansible控制主机,将ServerB上的/path/to/file
复制到/tmp/ServerB/path/to/file
[=25=下的Ansible控制主机]
然后我们需要确保每个 dest-servers
都定义了一个变量,说明它在单独的主机变量文件中的主机变量下与哪个服务器配对,或者in line in the inventory同上。
然后我们可以通过这个 copy
任务将正确的文件放在右边 dest-server
:
- name: copy the paired files to the right servers
hosts: dest-servers
copy:
src: "/tmp/{{ source-server }}/path/to/file"
dest: /path/to/dest
我想使用 Ansible 将文件从一台服务器复制到另一台服务器。 下面是例子
Server A ------> Server B
Server C ------> Server D
我在服务器 A 上有一个文件,特别想将该文件复制到服务器 B,服务器 C 到 D 也是如此。将文件保存到目的地的文件夹是相同的。我可以为 2 或 3 个主机做这件事。但是我如何动态创建让我们说 100 个节点来复制特定的单个文件,仅分配给所需的服务器。
您可以使用 fetch
and copy
的组合来执行此操作。
假设库存结构如下:
[source-servers]
ServerA
ServerC
[dest-servers]
ServerB source-server=ServerA
ServerD source-server=ServerB
然后运行以下fetch
任务:
- name: fetch file from source servers
hosts: source-servers
fetch:
src: /path/to/file
dest: /tmp
将ServerA上的文件/path/to/file
复制到/tmp/ServerA/path/to/file
下的Ansible控制主机,将ServerB上的/path/to/file
复制到/tmp/ServerB/path/to/file
[=25=下的Ansible控制主机]
然后我们需要确保每个 dest-servers
都定义了一个变量,说明它在单独的主机变量文件中的主机变量下与哪个服务器配对,或者in line in the inventory同上。
然后我们可以通过这个 copy
任务将正确的文件放在右边 dest-server
:
- name: copy the paired files to the right servers
hosts: dest-servers
copy:
src: "/tmp/{{ source-server }}/path/to/file"
dest: /path/to/dest