bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
vagrant

Aquesta és una revisió antiga del document


Vagrant

Vagrant és una eina de codi lliure desenvolupada per HashiCorp per automatitzar la creació i gestió de màquines virtuals. La podriem classificar dins les eines de DevOps conegudes com a Infraestructure as Code. Vagrant no és un virtualitzador, només automatitza tasques de forma programàtica, pel què necessita que tinguem instal·lat algun provider com VirtualBox o VMware.

La web oficial és https://www.vagrantup.com/

Està pensada per poques màquines i per entorns de desenvolupament i test. Si el què volem és creació de moltes màquines per entorns de producció segurament el què necessitem son eines com Terraform.

Vagrant és particularment útil quan necessitem recrear un entorn molts cops, ja sigui per testejar eines, configuracions, etc. i poder clarificar el típic cas de «en la meva màquina funciona».

Instal·lació

Les instruccions oficials les teniu aquí: https://www.vagrantup.com/downloads

Però en Ubuntu sol estar als repositoris i s'instal·la fàcilment amb un clàssic

$ sudo apt install vagrant

Recordeu que Vagrant no virtualitza, sinó que automatitza tasques amb algun virtualitzador provider. Per tant, caldrà que tinguem instal·lat VirtualBox, VMware o similars. En GNU/Linux el més fàcil és instal·lar VirtualBox:

$ sudo apt install virtualbox

Es recomana utilitzar una màquina física Ubuntu 22.04 (LTS) amb

  • VirtualBox 7.0 (no és el de la versió dels repositoris de Ubuntu 22.04, cal anar a virtualbox.org)
  • Instal·lar Vagrant segons les indicacions de la web oficial vagrantup.com, amb els seus propis repositoris APT.


Definicions

  • Vagrantfile : arxiu on es defineixen les VMs de les que volem automatizar la seva creació i configuració.
  • box : imatge de disc de VM per utilitzar inicialment en el nostre entorn. Podem trobar un catàleg a la Vagrant Cloud. Hi ha imatges oficials de distribucions de GNU/Linux clàssiques però també imatges binàries de gent que hi carrega la seva configuració particularitzada o d'altres SO com Windows o MacOS.


Creant una VM

Cada «escenari» de VMs Vagrant necessitarà una carpeta on situar un arxiu d'inici Vagrantfile.

Creem una carpeta i inicialitzem un Vagrantfile amb la imatge ubuntu/focal64 :

$ mkdir -p makines/makina1
$ cd makines/makina1
$ vagrant init ubuntu/jammy64
$ vagrant up

Això hauria de ser prou per posar en marxa la màquina Ubuntu Focal Fossa dins el virtualitzador que tinguem a la nostra màquina host. Ens podem connectar a la màquina acabada de crear amb:

$ vagrant ssh

I ja podrem treballar sobre la nostra màquina :) Per fer un exemple ràpid, instal·larem Apache i visitarem la web creada:

vagrant@ubuntu-focal $ sudo apt update
vagrant@ubuntu-focal $ sudo apt install -y apache2
vagrant@ubuntu-focal $ ip address


Xarxa

Amb la darrera instrucció podrem veure la IP de la màquina creada, que probablement sigui una 10.0.2.15. Si esteu fent servir VirtualBox, en la configuració per defecte la xarxa està en NAT, pel què no puc accedir a la màquina que acabo de crear. Per accedir a l'Apache que acabo de crear tinc diverses opcions, per exemple:

  • Configurar la xarxa en mode bridge.
  • Fent un port forwarding a la màquina host.

Port forwarding

Provarem el port forwarding, al Vagrant file ja ens surt un exemple.

Sortim de la shell amb CTRL+D, i editem el Vagrantfile per a fer aquest canvi. Descomentem la línia:

config.vm.network "forwarded_port", guest: 80, host: 8080

Xarxa privada

També podríem configurar la interfície en modalitat host-only network, sol fer-se d'aquesta manera al Vagrantfile:

config.vm.network "private_network", ip: "192.168.33.110"

Si el VirtualBox ens dona error al crear la xarxa, podem editar la configuració de xarxa de VirtualBox per permetre les IPs de les VMs:

/etc/vbox/networks.conf
* 0.0.0.0/0 ::/0

Accedint els serveis

I ara reiniciem la màquina amb la nova configuració:

$ vagrant reload

Ara podem accedir a la web de la nova VM mitançant el browser de la màquina host a través del forwarded port:

http://localhost:8080

O bé directament a la IP de la màquina si està en modalitat xarxa interna:

http://192.168.33.110

I si voleu comprovar que realment és la nostra nova màquina, personalitzeu la default page d'Apache:

vagrant@ubuntu-focal:~$ sudo -s
root@ubuntu-focal:/home/vagrant# echo "<h1>Maquina vagrant</h1>" > /var/www/html/index.html 

Revisiteu la pàgina i… Voilà!

Resum de comandes utilitzades:

vagrant init <box>
vagrant up
vagrant ssh
vagrant reload


Exercicis

Exercici 1

Investiga com utilitzar aquestes comandes bàsiques:

vagrant halt
vagrant suspend
vagrant resume
vagrant destroy

Exercici 2

Cerca informació per configurar:

  1. El hostname de la màquina virtualitzada (anomena-la, per exemple, «zeus»).
  2. Configurar un terminal de xarxa en mode bridge.
  3. Fer un script que automatitzi la instal·lació de Docker en la nova màquina creada.
  4. Connectar-te via SSH sense fer vagrant ssh (la info de connexió es mostra amb vagrant ssh-config).

Exercici 3

Cerca informació del provider VirtualBox i modifica el Vagrantfile adequadament per:

  1. Eliminar la interfície gràfica.
  2. Canviar el nom de la màquina dins del VirtualBox (que surti un nom sense números o codis).
  3. Configurar la VM perquè disposi de 2 CPUs.
  4. Augmentar la RAM a 2048 MB.

Exercici 4

Fes un Vagrantfile que crei una màquina amb les següents característiques:

  1. Debian darrera versió.
  2. Que tingui com a hostname el teu nom i també com a nom de màquina en el VirtualBox.
  3. Amb un Apache i PHP preinstal·lat.
  4. Que redirigeixi el port 80 de la web d'Apache al port 9090 de la màquina host.
  5. Amb una pàgina per defecte en PHP amb el missatge «El servidor de <el_vostre_nom>» i que ens mostri el phpinfo();
  6. Amb el mòdul userdir d'Apache activat.
  7. Amb un usuari «manolo» creat.
  8. Que l'usuari «manolo» tingui una web pròpia accessible per userdir que mostri «Hola soc el Manolo» i el phpinfo();

Exercici 5: Wordpress

Volem fer proves amb Wordpress i automatitzarem la configuració del servei en una VM amb Vagrant.

Requeriments:

  1. El Wordpress ha de ser la darrera versió en català.
  2. Ha d'estar preinstal·lat amb les taules creades i un usuari vagrant/vagrant.
  3. El nom del blog ha de ser «El meu blog vagrant».
  4. Ha de permetre que es carreguin imatges.

Es recomana seguir aquest guió per al script del Vagrantfile:

  1. Instal·lar dependències (apache, mariadb, etc.).
  2. Crear usuari, bd i permisos a mariadb.
  3. Descarregar arxiu ZIP de Wordpress en català i descomprimir.
  4. Configurar wp-config.php amb credencials per a BD (a partir de wp-config-sample.php).
  5. Es recomana utilitzar la comanda sed per modificar l'arxiu wp-config.php copiat de wp-config-sample.php
  6. Ajustar permisos per a les càrregues d'arxius com imatges.
  7. Crear taules del blog i configurar usuari vagrant/vagrant. Es pot solventar de diverses formes:
    • Amb una crida curl que simuli la introducció de les dades del formulari d'instal·lació que ens facilita Wordpress després de configurar la BD.
    • Amb la utilitat via comandes wp-cli.org

Segurament el darrer pas de crear les taules del blog pot ser el menys habitual. El hack recomanat per fer el curl que crearà les taules es pot fer com segueix:

  • Accedir a la web d'instal·lació.
  • Introduir les dades
  • Utilitzar l'inspector de HTML de les eines de desenvolupador del navegador, i modificar el
    <form method="post">

    per

    <form method="get">
  • Enviar el formulari. Les dades que necessitem les tenim davant nostre a la URL.
  • Elaborar la comanda curl amb -X POST i -d «…les-dades-que-apareixen-a-la-URL-dp-del-&…»

…et voilà!

Exercici 6: Cluster Proxmox

Crearem un cluster Proxmox (PVE) de 3 nodes amb Vagrant.

  1. Partirem d'una imatge de Proxmox 9 de l'usuari castor/proxmox.
  2. Ha de tenir suficient RAM (4G) i CPU (2) per node (PVE requereix recursos)
  3. Les VMs han de tenir les adreces 192.168.40.21 , .22 i .23
  4. Documentació disponible:
    • Instal·lació de Proxmox per a Debian 12 per a la configuració bàsica dels nodes.
    • PVE Cluster Manager per la clusterització dels nodes.
  5. Configurar NFS per TCP si dona error de UDP (nfs_udp:false).

Recomanacions per al script de creació:

  1. Es poden aprovisionar diversos scripts, s'executaran seqüencialment.
  2. No utilitzar «apt install» («apt» falla en alguns casos) sinó «apt-get install -y» (-y de «yes» evita que demani confirmació).
  3. Arranjar el fitxer /etc/hosts (el que ve a la imatge no funciona bé per clusteritzar). Ho podeu fer amb la comanda sed o similars:
    • Eliminar la linia del /etc/hosts que diu «pve.example.com»
    • Proxmox requereix que a l'arxiu /etc/hosts hi hagi la IP pública del node, no serveix el loopback 127.0.0.1 o similars. Elimineu la línia que diu «nodeX» de /etc/hosts i afegiu la IP del node en qüestió.
  4. Fer reboot afegint el paràmetres reboot:true al provision shell del script (si ho fem dins del script falla pq no espera el reinici).
  5. Al node1 caldrà crear el cluster amb la comanda «pvecm create mycluster»
  6. A la resta de nodes cal esperar (sleep) i anar-los afegint seqüencialment al cluster iniciat al node1. Esperar 10« x <numero_de_node>
  7. Per automatitzar ens convé buscar sempre versions de les instruccions que no siguin interactives. En el cas que no tinguem mes remei, com passa a l'afegir els nodes amb «pvecm add <ip>» es poden introduir els paràmetres amb la redirecció «. Ens demana introduir la contrasenya d'admin i respondre «yes», per tant serà algo com:
    pvecm add <ip> -force << EOF
    <contrasenya>
    yes
    EOF
vagrant.1761145160.txt.gz · Darrera modificació: 2025/10/22 14:59 per enric_mieza_sanchez