Ansible: как скопировать файл, каталог или сценарий с локального хоста на удаленный хост?

Опубликовано: 2019-02-24

Как скопировать файлы с локального хоста на удаленный хост с помощью Ansible

Как часть отдела управления ИТ, люди имеют дело с lots of scripts и инструментов командной строки. Я уверен, что вы ежедневно сталкиваетесь с ситуацией, когда вам приходится копировать файлы или сценарии на тысячи удаленных хостов.

Сотрудники ИТ-отдела не просто подключаются к каждой thousands of hosts и запускают скрипт вручную. Вот почему на сцену выходит Ansible. Ansible — очень мощное решение для управления ИТ, доступное для нас бесплатно.

В этом руководстве мы рассмотрим шаги по копированию файлов на удаленный хост с помощью Ansible.

Что мы собираемся делать?

Скопируйте файл crunchify.txt из папки /opt/ashah/ в каталог назначения удаленного хоста 192.66.129.83 /opt/ashah/ .

Шаг 1

Установите Ansible на Linux Ubuntu или macOS. Следуйте инструкциям, чтобы пройти подробные шаги.

Шаг 2

Давайте разберемся с некоторыми основами и расположением файлов для этого руководства:

  • Расположение файла конфигурации: /etc/ansible/ansible.cfg
  • Файл сценария: /opt/ashah/crunchify.yml
  • файл hosts: /opt/ashah/hosts
  • файл для копирования: /opt/ashah/crunchify.txt (тестовый файл)

Шаг 3

содержимое файла crunchify.yml .

Шаг-4

hosts содержимое файла. Обязательно измените IP-адрес на удаленный хост.

Шаг-5

Создайте файл crunchify.txt с указанным ниже содержимым.

Шаг-6

Запустите эту команду, чтобы скопировать файл на удаленный хост:

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

разберемся во всех параметрах:

  • -b : запускать операции со словом «становиться» (то же самое, что и —становиться).
  • -vvv : подробный режим (-vvv для получения дополнительной информации, -vvvv для включения отладки соединения).
  • -u : подключиться как этот пользователь (по умолчанию = Нет).
  • -kkkk : запросить пароль для подключения.
  • --extra-vars : установить дополнительные переменные в виде ключ=значение или YAML/JSON, если имя файла начинается с @.
  • -i : указать путь к хосту инвентаризации или список хостов, разделенных запятыми.

Вот и все. Вы успешно скопировали файл.

Как проверить, скопирован ли файл на новый удаленный хост?

Просто войдите на удаленный хост и проверьте местоположение /opt/ashah , и вы увидите файл crunchify.txt

Как скопировать содержимое каталога в другой каталог?

Просто измените значения src и desc в файле crunchify.yml . Вот обновленный файл crunchify.yml.

Все файлы в папке /opt/ashah/ теперь будут скопированы на удаленные хосты.

Дайте мне знать, если у вас есть какие-либо вопросы по копированию файла в удаленное место с помощью Ansible.