-
Notifications
You must be signed in to change notification settings - Fork 1
1.1 Plataformes de desenvolupament
Odoo és compatible de forma oficial amb sistemes Windows i GNU/Linux, essent Fedora i Ubuntu les distribucions escollides per aquest últim sistema.
Atès que a l'Institut Puig Castellar, desenvolupadors del projecte IMS, es fa servir Ubuntu com a distribució oficial a les aules informàtiques, s'escull aquesta distribució per al desenvolupament i manteniment de l'IMS.
S'ofereixen diferents plataformes de desenvolupament, a escollir pel desenvolupador.
IsardVDI és un servei públic finançat pel Departament d’Educació de la Generalitat de Catalunya i desenvolupat amb tecnologies lliures i gratuïtes per professors i alumnes de l’Escola del Treball.
L'equip de desenvolupadors de l'IMS, com a membres del Departament d'Informàtica de l'Institut Puig Castellar, disposen de comptes d'usuari per a IsardVDI. Aquest servei ofereix màquines al núvol accessibles via VPN i, per tant, accessibles des de qualsevol ubicació. Cal tenir en compte, però, que no disposa d'un sistema de snapshots, però si permet la virtualització niuada i, en conseqüència, es pot combinar IsardVDI amb contenidors LXC/LXD essent aquesta la solució recomanada.
Cal accedir al lloc web d'IsardVDI i introduir les credencials; si no es disposa de credencials, cal demanar-les al cap de departament d'informàtica de l'Institut Puig Castellar.
Un cop dins IsardVDI, es poden crear nous escriptoris de forma senzilla fent servir l'opció disponible a tal efecte:
Un cop a dins, cal escollir un nom per a la màquina virtual que es vol crear i escollir-ne la plantilla que es vol fer servir per a crear aquesta nova màquina (la descripció s'agafarà automàticament de la plantilla). Tot i que no és obligatori, es recomana fer servir la plantilla "Ubuntu Server 22.04 LTS" compartida per l'usuari "Fernando Porrino Serrano", que automatitza part de les configuracions que es faran servir per a treballar amb l'IMS:
IsardVDI permet configurar la quantitat de CPUs i memòria RAM que tindrà disponible la màquina:
Els usuaris d'IsardVDI tenen una limitació en la quantitat de CPUs i memòria RAM que poden fer servir, que cal repartir entre les màquines que estiguin engegades al mateix temps. Es considera que les opcions predeterminades respecte de la quantitat de RAM i CPUs és l'apropiada per a treballar amb comoditat, però es pot modificar si es considera adient.
IsardVDI permet configurar diferents targetes de xarxa per a les màquines, essent les recomanades les anomenades “Default”, “Wireguard VPN” i “Personal”:
A continuació es detalla el funcionament de les diferents xarxes:
- Default: és una interfície que només dona accés a internet, les màquines virtuals d’Isard no es poden comunicar entre si fent servir aquesta xarxa.
- Wireguard VPN: és una interfície que permet comunicar un ordinador personal (el de casa) amb una màquina virtual d’IsardVDI. Més endavant s’explica com.
- Personal: és una interfície que permet que totes les màquines virtuals d’IsardVDI d’un mateix usuari es puguin comunicar entre si. Cada màquina pot establir una adreça IP fixa i una màscara, que determinarà a quina xarxa es troba i quina visibilitat té amb altres màquines.
- Puigcastellar1: és una interfície que permet que totes les màquines virtuals d’IsardVDI de diferents usuaris es puguin comunicar entre si. Es pot fer servir una IP fixa o demanar adreça a un servidor DHCP configurant el netplan.
- PuigcatsellarX: són interfícies similars a Puigcastellar1, però no proveeix de servidor DHCP i cal establir les direccions a mà; les màquines de diferents interfícies no es poden veure entre si.
Cal tenir en compte que els scripts de desplegament preparen les màquines per a treballar amb les interfícies “default” (enp1so), “wireguard vpn” (enp2so) i “personal” (enp3s0) i també inclouen una opció anomenada “dhcp-server” que permet muntar un servidor DHCP sobre la xarxa “personal” (enp3s0); alhora, tots els scripts permeten configurar les màquines amb IP fixa o sol·licitar-la a un servidor DHCP sobre aquesta xarxa.
Algunes màquines virtuals, per exemple les que comparteix l'usuari "Fernando Porrino Serrano" i que es recomanen per al desenvolupament de l'IMS si es fa servir IsardVDI, inclouen un script de desplegament que s’executa automàticament durant el primer login:
Aquest instal·lador permet configurar automàticament una màquina i deixar-la preparada amb certes aplicacions instal·lades i configurades; aquests són els scripts més comúns:
- NONE: si esculls aquesta opció, es tancarà l’instal·lador i no farà res, tampoc tornarà a aparèixer en reiniciar la màquina.
- dhcp-server: munta un servidor DHCP que donarà servei a la xarxa privada que escollis, fent servir la interfície enp3s0 (la que a IsardVDI s’anomena “personal”).
- ubuntu-server-2204: deixa preparada la màquina actual amb les configuracions bàsiques per a treballar amb Ubuntu Server (ssh, configuracions de xarxa, etc.).
- ubuntu-desktop-2204: deixa preparada la màquina actual amb les configuracions bàsiques per a treballar amb Ubuntu Desktop (ssh, configuracions de xarxa, etc.).
La forma més còmoda de treballar amb les màquines d'IsardVDI és fent servir un túnel per a establir una connexió ssh entre la màquina del desenvolupador i la màquina remota d’IsardVDI. Per a fer-ho cal muntar una VPN primer:
- Primer cal descarregar el fitxer de configuració del client:
-
Després cal instal·lar l’aplicació wireguard que permet fer connexions amb VPNs pròpies, a Ubuntu es pot fer amb
sudo apt install wireguard-tools
-
Cal moure el fitxer descarregat dins de la carpeta de configuració de wireguard, a Ubuntu es pot fer amb
sudo cp isard-vpn.conf /etc/wireguard/
-
Ara cal activar aquesta nova xarxa virtual a l’inici de la sessió, a Ubuntu és fàcil amb
sudo systemctl enable wg-quick@isard-vpn
-
Finalment, activem la xarxa manualment per no haver de reiniciar, a Ubuntu es pot fer amb:
sudo systemctl start wg-quick@isard-vpn
-
A partir d’aquest moment, es pot veure com es disposa d’una nova targeta de xarxa virtual que ens dona una adreça IP privada amb:
ip -c a
-
Com es pot observar, apareix una xarxa anomenada isard-vdi que fa servir l’adreça 10.0.0.52 (podria variar al teu ordinador):
- Si es miren les xarxes disponibles a les màquines virtuals d’Isard, ha d'aparèixer també una adreça similar a la interfície enp2s0:
-
Això vol dir que des de la màquina real, és possible connectar-se a la màquina remota amb ssh:
ssh [email protected]
-
Si la màquina virtual d’IsardVDI no mostra aquesta adreça o aquesta interfície, es deu al fet que la configuració no és la correcta. Cal que la xarxa “Wireguard VPN” es trobi activada dins la configuració de la màquina a IsardVDI, en segona posició (perquè quedi identificada dins la màquina virtual com a enp2s0), i que el netplan tingui el DHCP activat per a aquesta targeta. Les plantilles d’IsardVDI que tenen dins la descripció “Scripts de desplegament” ja tenen aquesta configuració, però cal escollir alguna opció d’instal·lació en engegar-les perquè quedin correctament configurades (les opcions “ubuntu-server” o “ubuntu-desktop” són les opcions bàsiques recomanables per a començar a treballar amb màquines netes).
Si s'han seguit els passos del punt anterior, el primer que cal fer és arrencar la màquina virtual:
A continuació es poden fer servir diferents visors per a connectar-se a la màquina, el més ràpid de fer servir és el visor de navegador, però el que funciona millor és el visor SPICE (necessita tenir instal·lat un paquet anomenat virt-viewer):
El visor mostrarà l'adreça privada de l'ínterfície enp2s0 o pot consultar-se manualment amb la comanda ip -c a
. Amb aquesta adreça, és possible connectar-se remotament a la màquina virtual amb la comanda ssh <username>@<ip-address>
.
Si es vol connectar amb SSH sense fer servir cap contrassenya, només cal generar una clau pública (si no s'ha generat cap anteriorment) i enviar-la cap al servidor:
ssh-keygen -t rsa
ssh-copy-id -i $HOME/.ssh/id_rsa.pub <username>@<ip-address>
Una opció recomanable per a desenvolupar l'IMS són els contenidors, i LXC/LXD és un bon candidat per a Ubuntu donat la seva lleugeresa. A continuació es mostra un breu tutorial d'instal·lació i ús.
sudo apt install lxc
lxd init --auto
lxc launch ubuntu:22.04 <container-name>
lxc list
lxc snapshot <container-name> <snapshot-name>
lxc restore <container-name> <snapshot-name>
lxc exec <container-name> -- /bin/bash
sed -i "s|PasswordAuthentication no|PasswordAuthentication yes|g" /etc/ssh/sshd_config
echo "LoginGraceTime 120" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo "StrictModes yes " >> /etc/ssh/sshd_config
systemctl restart sshd
passwd
VirtualBox ofereix una interfície gràfica que pot resultar més còmoda que la terminal, però que resulta més pesada en la gestió de recursos, donat que es treballa amb màquines virtuals completes i no amb contenidors.
Per a aquest tutorial s'ha fet servir una OVA que inclou un Ubuntu Server 22.04.1 LTS configurat per a acceptar connexions remotes amb SSH.
Primer de tot cal descarregar l'OVA que inclou la màquina virtual amb la qual es vol treballar i importar-la amb VirtualBox:
La màquina virtual ja es troba configurada, però es recomana comprovar que tots els recursos es troben correctament assignats i que els dispositius de xarxa són els correctes:
La màquina virtual fa servir la targeta de xarxa de l'amfitrió per a demanar una adreça IP al router per DHCP simulant ser un nou ordinador connectat a la xarxa, perquè això funcioni, cal confirmar que la targeta correcta ha estat seleccionada:
De forma predeterminada, la màquina virtual fa servir una CPU i 2GB de RAM, recursos suficients per a treballar amb comoditat, però es poden modificar a voluntat.
Es recomana arrencar la màquina virtual en "mode sense pantalla" per a reduir el consum de recursos:
La màquina virtual està preparada per a mostrar la seva adreça IP dins la vista prèvia:
VirtualBox ofereix una interfície gràfica per a crear o restaurar snapshots:
Per a crear un nou snapshot, només cal fer servir el botó corresponent (es pot fer en calent amb la màquina virtual en marxa):
Per a recuperar un snapshot, cal apagar la màquina, sel·leccionar quin snapshot cal recuperar i prèmer el botó corresponent:
Per connectar-se, només cal obrir un terminal i fer servir la comanda "ssh":
ssh usuari@<ip-maquina-virtual>
- Usuari: usuari
- Contrasenya: usuari
Una altra plataforma de desenvolupament ràpida de desplegar és podman, que és el substitut de docker. Podman ja es troba als repositoris oficials d'Ubuntu 22.04 i per a instal·lar-lo només cal fer servir el gestor de paquets aptitude:
sudo apt install podman
Algunes comandes útils són:
- Mostra l'estat de tots els contenidors existents a la màquina amfitriona:
podman ps -a
- Mostra els logs del contenidor concret indicat:
podman logs nomContenidor
- Elimina el "pod" i tots els contenidors que hi pertanyen:
podman pod rm odb
- Arrencar un "pod":
podman pod start nomContenidor
- Aturar un "pod":
podman pod stop nomContenidor
Crear contenidors i "pods" és senzill però s'entén millor amb un exemple, per aquest motiu es recomana mirar la secció instal·lació d'Odoo amb podman.