Ansible Pull

Ansible Pull



Ansible és una de les eines d'automatització gratuïtes i de codi obert més potents. És una eina versàtil que ens permet automatitzar una varietat de tasques com ara la gestió de la configuració, el desplegament d'aplicacions i molt més mitjançant SSH.

Quan pensem en Ansible, considerem un únic node de control que gestiona i configura tots els altres nodes definits. Tanmateix, Ansible ofereix una opció més descentralitzada mitjançant la utilitat ansible-pull. Aquesta utilitat permet als nodes gestionats extreure les configuracions d'un dipòsit de control de versions.

En aquesta publicació, explorarem com treballar amb l'ordre ansible-pull i proporcionarem alguns exemples bàsics.







Quan utilitzar l'Ansible Pull

Abans d'endinsar-nos en la part pràctica del tutorial, entenem alguns escenaris habituals en què potser haureu d'utilitzar l'ansible-pull.



Entorns dinàmics - En un entorn dinàmic, com ara la infraestructura del núvol, on els nodes poden ser efímers, permetre'ls configurar-se a l'arrencada pot ser avantatjós.



Evitar punts centrals de fallada - Quan s'utilitza un únic node de control, pot provocar un únic punt de fallada on es perden els nodes de control de totes les configuracions i s'han de reconstruir.





Entorns de vora - L'extracció de configuracions pot ser més eficient si teniu ubicacions de vora amb connectivitat limitada a les zones centrals.

Requisits:

Abans d'aprofundir en els exemples, assegureu-vos que teniu el següent:



  • Ansible instal·lat als vostres nodes
  • Un repositori VCS (com Git) que conté els vostres llibres de jugades Ansible
  • Claus o credencials SSH adequades per accedir al repositori

Ansible Pull Command

A continuació es mostra la sintaxi de l'ordre ansible-pull:

ansible-pull [-h] [--versió] [-v] [--private-key PRIVATE_KEY_FILE]
[-u USUARI_REMOTO] [-c CONNEXION] [-T TEMPS D'EXPLICAT]
[--ssh-common-args SSH_COMMON_ARGS]
[--sftp-extra-args SFTP_EXTRA_ARGS]
[--scp-extra-args SCP_EXTRA_ARGS]
[--ssh-extra-args SSH_EXTRA_ARGS]
[-k | --connection-password-file CONNECTION_PASSWORD_FILE]
[--vault-id VAULT_IDS]
[--demanar-la-contrasenya-de-volador | --vault-password-file VAULT_PASSWORD_FILES]
[-e EXTRA_VARS] [-t TAGS] [--skip-tags SKIP_TAGS]
[-i INVENTARI] [--list-hosts] [-l SUBSET] [-M MODULE_PATH]
[-K | --become-password-file BECOME_PASSWORD_FILE]
[--purge] [-o] [-s SLEEP] [-f] [-d DEST] [-U URL] [--full]
[-C CHECKOUT] [--accept-host-key] [-m MODULE_NAME]
[--verify-commit] [--clean] [--track-subs] [--check]
[--diff]
[playbook.yml ..

Ansible Pull bàsic

L'ús més bàsic d'ansible-pull és extreure i aplicar un llibre de jugades des d'un dipòsit. La sintaxi de l'ordre és la següent:

ansible-pull -U

Per exemple:

ansible-pull -U git://github.com/linuxhint/ansible-repo.git main.yml

Un cop executem l'ordre anterior, l'ordre d'extracció d'Ansible farà:

  • Clonar el repositori especificat
  • Executeu el llibre de jocs especificat (main.yml)

Programació d'Ansible Pull amb Cron

L'aplicació més comuna i útil de la funció ansible-pull és que els nodes comprovin periòdicament si hi ha actualitzacions al dipòsit mitjançant treballs cron. Un exemple de demostració és el següent:

0 * * * * /usr/local/bin/ansible-pull -U https://github.com/username/repo.git site.yml > /var/log/ansible-pull.log

Això ens permet automatitzar l'operació d'extracció del dipòsit de destinació i obtenir els canvis de repo. Si hi ha cap canvi, Ansible els realitzarà i s'assegurarà que els nodes tinguin la darrera configuració definida als llibres de jugades.

Conclusió

Vam explorar treballar amb l'ordre ansible-pull per revertir les operacions típiques d'Ansible obtenint les configuracions d'un sistema de control de versions en lloc d'impulsar la configuració des d'un node central.