При настройке удаленных серверов с помощью Ansible вы можете столкнуться с ситуацией, когда вам необходимо получить файлы из репозитория Git.
Это может быть пакет программного обеспечения из публичного репозитория или файлы конфигурации из частного репозитория.
Чтобы удаленно клонировать git-репозиторий с помощью Ansible, вы можете добавить в свой Playbook следующие записи.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
Не волнуйтесь.
Я объясню, что означают эти параметры и как это сделать, на примере!
Клонирование Git-репозиториев с помощью Ansible
Я предполагаю, что вы уже знакомы с основами Ansible, такими как инвентори, плейбуки и т.д.
Если нет, вы можете просмотреть нашу серию уроков по Ansible
- 📜 Понимание основных компонентов Ansible – часть 1
- 📜 Как установить и настроить ноду управления Ansible – Часть 2
- 📜 Как настроить управляемые узлы Ansible и запустить специальные команды – часть 3
- 📜 Как использовать статические и динамические файлы inventory в Ansible – часть 4
- 📜 Как создать шаблоны в Ansible для создания конфигураций на управляемых узлах – часть 7
Необходимые условия
На вашей локальной машине должен быть установлен Ansible.
Этот экземпляр Ansible выступает в качестве узла управления для всех удаленных узлов.
Используя хост управления, вы можете создавать плейбуки и таски для выполнения на указанных удаленных машинах.
Если вы решили следовать этому руководству, убедитесь, что у вас есть:
- Один управляющий узел и один удаленный узел.
- Пары ключей SSH. Открытый ключ управляющего узла должен быть доступен в файле authorized_keys на удаленных узлах.
- Пользователь с привилегиями sudo на удаленных узлах ( не root).
- Доступ на запись к каталогу на удаленном узле для хранения содержимого клонированного репозитория.
Настройка файла инвентори Ansible
.Прежде чем продолжить, необходимо настроить инвентаризации для Ansible.
Инвентари Ansible – это файл, содержащий информацию об удаленных серверах, которыми вы хотите управлять с помощью Ansible.
По умолчанию этот файл находится в /etc/ansible/hosts.
Создайте этот файл вручную, если он не создан.
Добавьте IP-адрес удаленного хоста в этот файл:
vim /etc/ansible/hosts
192.168.1.10
Сохраните файл.
Клонирование Git-репозитория с помощью Ansible плейбука
Теперь, когда у вас настроен файл инвентаризации и имеются SSH-ключи для доступа к удаленным узлам с узла управления, вы можете создать сборник Ansible Playbook.
Используя текстовый редактор, например Vim, создайте файл YAML.
vim clone.yaml
Отредактируйте файл и добавьте следующие записи.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
🐧 Как сохранить файл в Vi / Vim и выйти
🤾♂️ 8 способов выхода из текстового редактора Vim в Linux
В приведенном выше плейбуке вы начали с определения новой задачи и дали ей имя “Clone a GitHub repository”.
Далее вы используете модуль git, чтобы указать ссылку на репозиторий SQLite GitHub.
Затем вы определяете место назначения для клонированного репозитория.
Это локальный каталог на удаленной машине.
Вы устанавливаете атрибут clone в yes, чтобы клонировать репозиторий и обновить его с помощью атрибута update.
Чтобы запустить плейбук, используйте команду:
ansible-playbook clone.yaml
Если плейбук не работает из-за аутентификации SSH, вы можете указать имя пользователя с помощью флага -u:
ansible-playbook -u debian clone.yaml
После выполнения тасков вы должны получить репозиторий, клонированный в указанный каталог.
. С помощью этой информации вы сможете использовать Git-репозитории с Ansible в соответствии с вашими требованиями.
Если у вас есть вопросы или предложения, пожалуйста, оставьте комментарий в поле, расположенном ниже.