Практический пример
В этом разделе мы рассмотрим практический пример использования Ansible для копирования файла с узла управления на удаленный хост.
Подготовка среды
Для этого примера предположим, что у вас есть следующая настройка:
- Узел управления: система Ubuntu 22.04 с установленным Ansible
- Удаленный хост: система Ubuntu 22.04
Убедитесь, что у вас есть доступ по SSH к удаленному хосту и что пользователь ansible
на узле управления имеет необходимые разрешения для подключения к удаленному хосту.
Создание Ansible-плейбука
Создайте новый файл с именем copy_file.yml
на узле управления и добавьте следующее содержимое:
- hosts: all
tasks:
- name: Copy a file
copy:
src: /path/to/local/file.txt
dest: /path/to/remote/file.txt
owner: myuser
group: mygroup
mode: "0644"
В этом плейбуке:
hosts: all
указывает на все хосты, определенные в вашем Ansible-инвентаре.
- Модуль
copy
используется для копирования файла file.txt
из локального пути /path/to/local/file.txt
в удаленный путь /path/to/remote/file.txt
.
- Файл будет принадлежать пользователю
myuser
и группе mygroup
и будет иметь разрешения 0644
(чтение и запись для владельца, только чтение для группы и других).
Запуск Ansible-плейбука
Для запуска плейбука выполните следующую команду на узле управления:
ansible-playbook copy_file.yml
Ansible подключится к удаленному(ым) хосту(ам) по SSH, скопирует файл и установит соответствующие права владения и разрешения.
Проверка результата
После запуска плейбука вы можете войти на удаленный хост и убедиться, что файл был успешно скопирован:
ssh myuser@remote_host
ls -l /path/to/remote/file.txt
Это должно отобразить файл с ожидаемыми правами владения и разрешениями.
Следуя этому практическому примеру, вы узнали, как использовать модуль copy
в Ansible для копирования файла с узла управления на удаленный хост. Вы можете адаптировать этот подход к своим конкретным сценариям использования и требованиям и продолжить изучать богатую функциональность, которую Ansible предоставляет для автоматизации инфраструктуры.