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: