Salta el contingut

Taller - Informació i Ajuda en la realització

Objectius

  • Treballar amb Python
  • Desplegar utilitzant Ansible
  • Actualitzar "sense por" utilitzant Ansible
  • Desplegar i Actualitzar "massivament" utilitzant Ansible

Requeriments

Màquines destí

  • Durant el taller sería convenient disposar de màquines virtuals per realitzar-hi el desplegament.
  • També podeu utilitzar Dockers a inicialitzats amb Bash i amb accés a la xarxa.

El Repositori a clonar és públic, pel que el podreu clonar sense problemes tant mitjançant HTTPS com amb SSH.

git clone git@github.com:ytturi/pygrn_xerrada_ansible.git
git clone https://github.com/ytturi/pygrn_xerrada_ansible.git

Warning

Recordeu que si cloneu per SSH, haureu de generar abans les claus SSL.

Configuració local

Per tal d'utilitzar ansible, necessitem tenir python instalat. Com sempre, és recomanable instalar-lo en un virtualenv.

mkvirtualenv ansible
pip install ansible

També caldrà configurar-nos un entorn per l'Ansible, per exemple seguint l'esquelet de les diapositives.

# Creem el directori arrel
mkdir ~/projectes/pygrn_ansible
cd ~/projectes/pygrn_ansible

# Creem el directori de tasques
mkdir tasks

# Creem el fitxer d'inventari amb les direccions corresponents
vim inventory.yml

A partir d'aqui podem treballar amb la tasca "tasks/deploy_docs.yml"

Documentació

Contingut utilitzat per aquesta documentació

  • MkDocs, tractat en la xerrada sobre contingut estàtic
    • Extensió Admonition, una extensió que ens permet utilitzar "Notes". Originaria de rST, realitza un recuadre de contingut amb un títol.
    • Extensió Details, la trobem dins del paquet PyMdown. Ens permet afegir notes com Admonition, però desplegables.
    • Tema Material, un tema per la documentació MKDOCS i ReadTheDocs, que millora gràficament aquesta pàgina
  • Virtualenv, aquesta llibreria que segurament ja coneixeu i ens permet no instalar coses directament al sistema.

Exemple de fitxer YML per Ansible

Possibles mòduls de Ansible que us vindràn bé

  • APT, ens permet realitzar les diferents funcionalitats del APT de Debian.
  • GIT, ens permet fer els desplegaments i actualitzacions corresponents de GIT.
  • PIP, ens permet tractar amb llibreries i Virtualenvs
  • SYSTEMD, ens permet gestionar els serveis de la màquina
  • Tractament de fitxers:
    • FILE, actualitzar els atributs dels fitxers i/o realitzar links
    • COPY, copiar un fitxer des d'on despleguem a les màquines destí
    • TEMPLATE, realitzar un fitxer a partir del valor de diferents variables
    • LineInFile, assegurar-nos que hi ha (o no) una línia en el fitxer
    • REPLACE, reemplaça totes les instàncies de les línies indicades pel valor indicat
  • Execució remota de shell:
    • SCRIPT, ens permet executar un script de shell, ja estigui en local o en remot, en el servidor remot
    • SHELL, permet executar una comanda en el servidor remot.
    • COMMAND, executa una comanda en el servidor remot