Při konfiguraci vzdálených serverů pomocí Ansible se můžete setkat s případy, kdy potřebujete získat soubory z úložiště Git. Může se jednat o softwarový balíček z veřejných úložišť nebo konfigurační soubory v soukromém úložišti.
Chcete-li naklonovat git repo vzdáleně pomocí Ansible, můžete do své Playbooku přidat položky jako je tato.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
neboj. Vysvětlím, co tyto parametry znamenají a jak to udělat, pomocí ukázkového tutoriálu.
Klonování úložišť Git pomocí Ansible
Předpokládám, že jste již obeznámeni se základy Ansible, jako je inventář, playbooky atd. Pokud ne, můžete sledovat naši sérii výukových programů Ansible.
Předpoklad
Na místním počítači musíte mít nainstalovaný Ansible. Tato instance Ansible funguje jako řídicí uzel pro všechny vzdálené hostitele. Pomocí řídicího uzlu můžete vytvářet sešity a úlohy, které se mají provádět na zadaných vzdálených počítačích.
Pokud se rozhodnete postupovat podle tohoto návodu, ujistěte se, že máte:
- Jeden řídicí uzel a jeden vzdálený hostitel.
- Páry klíčů SSH. Veřejný klíč řídicího uzlu musí být dostupný v souboru autorizovaných klíčů ve vzdálených hostitelích.
- Uživatel bez oprávnění root s funkcí
sudo
oprávnění na vzdálených hostitelích. - Přístup k zápisu do adresáře na vzdáleném hostiteli pro uložení obsahu klonovaného úložiště.
Nastavit Ansible Inventory
Než budete pokračovat dále, musíte nastavit inventář Ansible. Inventář Ansible je soubor, který obsahuje informace o vzdálených serverech, které chcete spravovat pomocí Ansible.
Ve výchozím nastavení je soubor umístěn v /etc/ansible/hosts
. Pokud se tento soubor neukončí, vytvořte jej ručně.
Přidejte IP adresu vzdáleného hostitele do tohoto souboru:
vim /etc/ansible/hosts
Mohlo by to vypadat takto:
Uložte soubor.
Klonování úložiště Git pomocí příručky Ansible
Nyní, když máte nakonfigurovaný soubor inventáře a klíče SSH pro přístup ke vzdáleným hostitelům z řídicího uzlu, můžete vytvořit Ansible Playbook.
Pomocí textového editoru, jako je Vim, vytvořte soubor YAML.
vim clone.yaml
Upravte soubor a přidejte následující položky.
---
- hosts: all
tasks:
- name: Clone a github repository
git:
repo: https://github.com/sqlite/sqlite.git
dest: /home/debian/repos/
clone: yes
update: yes
Ve výše uvedené příručce jste začali definováním nového úkolu a dali jste mu název „Klonovat úložiště GitHub“.
Dále používáte git
modul k určení odkazu na úložiště SQLite GitHub.
Poté pokračujte v definování cíle pro klonované úložiště. Toto je místní adresář na vzdáleném počítači.
Atribut clone nastavíte na yes, abyste naklonovali úložiště a aktualizovali jej pomocí atributu update.
Pro spuštění playbooku použijte příkaz:
ansible-playbook clone.yaml
Pokud playbook selže kvůli ověření SSH, můžete zadat uživatelské jméno pomocí parametru -u jako:
ansible-playbook -u debian clone.yaml
Po provedení úloh byste měli mít úložiště naklonované do určeného adresáře.
Můžete se přihlásit ke vzdálenému hostiteli a ověřit, zda bylo úložiště správně naklonováno:
To by vám mělo poskytnout slušnou představu o klonování úložiště Git pomocí Ansible. S těmito informacemi byste měli být schopni používat úložiště Git s Ansible na základě vašich požadavků.
Pokud máte nějaké dotazy nebo návrhy, zanechte prosím níže komentář.