Ansible:如何将文件、目录或脚本从本地主机复制到远程主机?

已发表: 2019-02-24

如何使用 Ansible 将文件从本地主机复制到远程主机

作为 IT 管理部门的一部分,人们处理lots of scripts和命令行工具。 我敢肯定,您每天都会遇到将文件或脚本复制到数千台远程主机的情况。

IT 部门的人不只是登录到每一个thousands of hosts并手动运行脚本。 这就是 Ansible 出现的原因。 Ansible 是一款非常强大的 IT 管理解决方案,可供我们免费使用。

在本教程中,我们将介绍使用 Ansible 将文件复制到远程主机的步骤。

我们要做什么?

将文件crunchify.txt文件从位置/opt/ashah/到远程主机192.66.129.83的目标目录/opt/ashah/

第1步

在 Linux Ubuntu 或 macOS 上安装 Ansible。 按照教程了解详细步骤。

第2步

让我们了解本教程的一些基础知识和文件位置:

  • 配置文件位置:/etc/ansible/ansible.cfg
  • 脚本文件:/opt/ashah/crunchify.yml
  • 主机文件:/opt/ashah/hosts
  • 要复制的文件:/opt/ashah/crunchify.txt(测试文件)

第三步

crunchify.yml文件内容。

第四步

hosts文件内容。 确保将 IP 地址更改为远程主机。

第 5 步

使用以下内容创建文件crunchify.txt

第 6 步

运行以下命令将文件复制到远程主机:

  • Command :ansible-playbook -b -vvv -u root crunchify.yml -kkkk –extra-vars “crunchify-group” -i hosts

让我们了解所有参数:

  • -b :使用 become 运行操作(与 —become 相同)。
  • -vvv :详细模式(-vvv 更多,-vvvv 启用连接调试)。
  • -u :以该用户身份连接(默认=无)。
  • -kkkk : 询问连接密码。
  • –extra-vars :如果文件名以 @ 开头,则将其他变量设置为 key=value 或 YAML/JSON。
  • -i :指定清单主机路径或逗号分隔的主机列表。

而已。 您已成功复制文件。

如何验证文件是否已复制到新的远程主机?

只需登录到远程主机并检查位置/opt/ashah ,您将看到文件crunchify.txt

如何将目录内容复制到另一个目录?

只需更改crunchify.yml文件的srcdesc值。 这是一个更新的 crunchify.yml 文件。

/opt/ashah/文件夹下的所有文件现在将被复制到远程主机。

如果您对使用 Ansible 将文件处理到远程位置有任何疑问,请告诉我。