OVH. VPS Essential jaumebalmes.net

De wikijoan
Salta a la navegació Salta a la cerca

Compte d'usuari

  • jquintana@jaumebalmes.net / k******I_k

VPS Essential

ESSENTIAL

10 € + IVA/mes
Compromiso de 12 meses (-8%)
**Compromiso de 24 meses (-15%) -> 8,50 € + IVA/mes

2 vCore
4 GB
80 GB SSD NVMe
500 Mb/s Ilimitado*

Sólo distribución
Ubuntu versió 21.10
Europa Occidental, Francia, Estrasburgo (SBG)

Snapshot: NO
Almacenamiento adicional: NO
Backup automatizado: NO
Su VPS acaba de instalarse con el siguiente sistema operativo/distribución:
Ubuntu 21.10

PARÁMETROS DE ACCESO:
Dirección IPv4 del VPS: 5.196.26.105
Nombre del VPS: vps-89148e22.vps.ovh.net
En el VPS se ha configurado la siguiente cuenta de administrador:
Usuario: ubuntu
Contraseña: 8**********

PARA EMPEZAR:
Si es la primera vez que se conecta a un VPS, le recomendamos que consulte la siguiente guía:
http://www.ovh.es/g1260.como-conectarse-a-un-vps

Posta a punt

Passos previs

sudo apt-get install joe
sudo apt-get install unzip

Instal·lar Apache

sudo apt-get install apache2

ja tenim el Apache instal·lat i funcionant

Instal·lar mysql

$ sudo apt-get install mysql-server
$ sudo su
# mysql -h localhost -u root
mysql>

Per entrar al mysql sense haver de fer sudo, hem de fer:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'k*******';
mysql> FLUSH PRIVILEGES;

ara ja puc entrar al mysql amb l'usuari normal:

mysql> exit
# exit
$ mysql -h localhost -u root -pk*******
mysql>

Important:

$ sudo apt-get install php php-cli php-mysql
$ sudo apt-get install libapache2-mod-php

PHP-MySQL mínim

<?php
$servername = "localhost";
$username = "nom_usuari";
$password = "********";
$dbname = "nom_usuari";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id,nom FROM PROVA";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]." - Nom: ".$row["nom"]."<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>

Connexions remotes al mysql

3 passos:

1. Activar el Firewall i obrir el port 3306. compte!: sembla ser que això no és necessari. Està obert el port 3306 per defecte?

$ nc -zv vps-89148e22.vps.ovh.net 3306
Connection to vps-89148e22.vps.ovh.net 3306 port [tcp/mysql] succeeded!

2. Configurar my.cnf i permetre connexions remotes.

Editar /etc/mysql/mysql.conf.d/mysqld.cnf

# bind-address            = 127.0.0.1

n'hi ha prou en comentar aquesta línia, que per defecte està descomentada (activada) i, important, reiniciar MySQL.

3. Que l'usuari amb què ens volem connectar tingui permisos de connexió remota:

CREATE USER nom_usuari@localhost IDENTIFIED BY 'keiL2lai';
CREATE USER 'nom_usuari'@'%' IDENTIFIED BY 'keiL2lai';
GRANT ALL ON nom_usuari.* TO 'nom_usuari'@'%' WITH GRANT OPTION;
flush privileges;

I ara ja ens podem connectar:

$ mysql -h vps-89148e22.vps.ovh.net -u nom_usuari -pkeiL2lai -D nom_bd

I des de PHP:

<?php
$servername = "vps-89148e22.vps.ovh.net";
$username = "nom_usuari";
$password = "keiL2lai";
$dbname = "nom_bd";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
?>

SSH sense demanar password

3 passos molt simples. Es tracta de generar una clau pública en el portàtil, i enviar-la al servidor, per tal de què confïi en el portàtil.

$ ssh-keygen -b 4096 -t rsa

Es generen dos fitxers: la clau privada i la clau pública:

  • .ssh/id_rsa
  • .ssh/id_rsa.pub
$ ssh-copy-id ubuntu@vps-89148e22.vps.ovh.net

i ara ja podem entrar:

$ ssh ubuntu@vps-89148e22.vps.ovh.net
$ scp hola.txt ubuntu@vps-89148e22.vps.ovh.net:/home/ubuntu

NOTA: per tal de què funcioni el directori home de l'usuari només pot ser writable per ell mateix (permisos 755).

A Windows

En una instal·lació de Windows, les comandes ssh i scp ja estan instal·lades. Per tant, no cal instal·lar Putty (tot i que també es pot utilitzar si és la teva preferència).

Igual que a Linux:

ssh-keygen -b 4096 -t rsa

Es generen dos fitxers: la clau privada i la clau pública:

  • .ssh/id_rsa
  • .ssh/id_rsa.pub

Hem de copiar la clau pública al servidor. Com que la comanda ssh-copy-id no existeix a Windows, no passa res, ho farem manualment. Primer entrem al servidor:

$ ssh nom_usuari@vps-89148e22.vps.ovh.net
$ mkdir .ssh
$ nano .ssh/authorized_keys

I el que fem ara és copiar tot el contingut del fitxer local .ssh/id_rsa.pub a dins del fitxer authorized_keys que acabem de crear manualment. Això es pot fer de vàries maneres, però amb un copiar-enganxar també funciona.

El contingut que hem de copiar és similar a:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDhJDOxRW5PSIb1RRo...

I acaba amb el nom de la vostra màquina local.

Sortim de la sessió remota ($ exit) i ja podem tornar a entrar sense que ens demani el password:

$ ssh nom_usuari@vps-89148e22.vps.ovh.net

Instal·lar Docker

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Aquesta instrucció ja no funciona. El que ha funcionat és:

To install Docker for Kali 2020.1 debian amd64 run the following:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/docker-ce-archive-keyring.gpg > /dev/null

then:

echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list

sudo apt-get update

sudo apt-get install docker-ce

i ja tinc instal·lat el docker. Per tal de no utilitzar sudo:

$ sudo groupadd docker (ja existeix)
$ sudo usermod -aG docker $USER

I ja puc fer el primer contenidor de prova:

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:4c5f3db4f8a54eb1e017c385f683a2de6e06f75be442dc32698c9bbe6c861edd
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly
$ docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
1e09e771f789   hello-world   "/hello"   28 seconds ago   Exited (0) 28 seconds ago             boring_proskuriakova

Instal·lar docker-compose

Creació s'usuaris

Amb l'usauri ubuntu creem els usuaris. Per ex, per crear l'usuari nom_usuari:

sudo useradd -d /home/nom_usuari -s /bin/bash -m nom_usuari
sudo passwd nom_usuari

sudo mkdir /home/nom_usuari/html
sudo su
# sudo echo "Benvingut nom_usuari" > /home/nom_usuari/html/index.html
sudo chown -R nom_usuari:nom_usuari /home/nom_usuari
# exit
sudo chmod -R 755 /home/nom_usuari

Editem el fitxer de configuració de l'Apache:

sudo nano /etc/apache2/sites-available/000-default.conf

    Alias /nom_usuari "/home/nom_usuari/html/"
    <Directory "/home/nom_usuari/html/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.html default.html index.php
    </Directory>


sudo /etc/init.d/apache2 restart

i ja funciona:

Si volem que aquest usuari sigui del grup sudoers:

$ usermod -aG sudo nom_usuari

Ara que ja tenim l'usuari creat, aquest usuari ja pot fer ssh:

$ ssh nom_usuari@vps-89148e22.vps.ovh.net

Per tal de que l'usauri es pugui canviar el seu password:

nom_usuari$ passwd

Per tal de poder entrar per SSH sense que demani el password, veure més amunt.

Creació de bases de dades dels alumnes

Des del root del mysql:

CREATE DATABASE nom_usuari DEFAULT CHARACTER SET utf8; 
CREATE USER nom_usuari@localhost IDENTIFIED BY 'keiL2lai';
GRANT ALL ON nom_usuari.* TO nom_usuari@localhost WITH GRANT OPTION;

I ara l'usuari nom_usuari ja pot entrar a la base de dades nom_usuari:

$ ssh nom_usuari@vps-89148e22.vps.ovh.net
nom_usuari@vps-89148e22:~$ mysql -h localhost -u nom_usuari -pkeiL2lai nom_usuari
mysql>

I té permisos per fer allò que vulgui en aquesta bd.

Instal·lació de Node

$ sudo apt-get install nodejs
$ nodejs --version
v12.22.5

$ sudo apt-get install npm
$ npm --version
7.5.2

No són les últimes versions. Per instal·lar les últimes versions:

1. First, clear the npm cache:

$ npm cache clean -f

2. Install n, Node's version manager:

$ sudo npm install -g n

3. With the n module installed, you can use it to:

$ sudo n latest
  installing : node-v17.8.0
       mkdir : /usr/local/n/versions/node/17.8.0
       fetch : https://nodejs.org/dist/v17.8.0/node-v17.8.0-linux-x64.tar.xz
   installed : v17.8.0 (with npm 8.5.5)

Tanco la consola i em torno a connectar:

$ node --version
v17.8.0
$ npm --version
8.5.5

Mòdul node-mysql

$ sudo apt-get install node-mysql (no cal)

Millor la versió 2 del mòdul. Ho instal·lem globalment, i ho salvem (--save) per tal de què funcioni a la primera:

$ sudo npm install -g mysql2
$ sudo npm install mysql2 --save

Exemple mínim:

var mysql = require('mysql2');

var connection = mysql.createConnection({
  host : 'localhost',
  port : 3306,
  database: 'nom_usuari',
  user : 'nom_usuari',
  password : '*******'
});

connection.query("select * from PROVA", function(err, rows){
        if(err != null) {
            res.end("Query error:" + err);
        } else {
            for (var i = 0; i < rows.length; i++) {
                 console.log(rows[i].nom);
            };
        }
});

connection.end();
$ node exemple_minim.js

Repàs bàsic de creació d'usuaris

Per veure la llista d'usuaris:

$ cat /etc/passwd
$ less /etc/passwd

Si només volem printar els noms d'usuari:

$ awk -F: '{ print $1}' /etc/passwd
$ cut -d: -f1 /etc/passwd

The command below will list all normal users in our Linux system:

$ getent passwd {1000..60000}
$ sudo useradd -m username

(l'opció -m és per crear el directori home de l'usuari)

Per poder fer login necessitem donar-li un password:

$ sudo passwd username

Per eliminar l'usuari (i el seu directori home):

$ sudo userdel -r username

Creació d'un docker bàsic Apache-PHP

$ mkdir docker-apache
$ cd docker-apache
$ mkdir src/
$ joe src/taules_multiplicar.php

<?php
for ($taula=1; $taula <=10 ; $taula++){
	echo 'Taula del '.$taula.'<br />';
for ($x=1; $x <=10 ; $x++){
	echo '[ '.$taula.' * '.$x.' = '.$taula*$x.' ] ';
}
echo '<hr />';
}
?>

Creem el fitxer de configuració Dockerfile:

$ joe Dockerfile

FROM php:7.4-apache
COPY src/ /var/www/html
EXPOSE 80

i creem el docker:

$ docker build -t apache-joan .

Sending build context to Docker daemon  3.584kB
Step 1/3 : FROM php:7.4-apache
7.4-apache: Pulling from lib
...
Successfully built 0d0d3399bd52
Successfully tagged apache-joan:latest

Ja podem arrencar el docker:

$ docker run -p 8080:80 apache-joan

I ja funciona:

Millor arrencar el docker en mode deamon:

$ docker run -p 8080:80 -d apache-joan
7fd7257f5a77bfd8d39a837ec99a28082486bc30301ceb4ef4fe7e19dad88895

Efectivament està arrencat i funciona:

$ docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                   NAMES
7fd7257f5a77   apache-joan   "docker-php-entrypoi…"   56 seconds ago   Up 56 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   vibrant_herschel

Per aturar-lo quan ja no el necessitem:

$ docker stop 7fd7257f5a77

Ja no el veiem fent docker ps, però sí que el veiem fent docker ps -a.

I per tornar-lo a arrencar:

$ docker start 7fd7257f5a77

Instal·lació Python

  • python3 - interactive high-level object-oriented language (default python3 vers
  • python3.9 - Interactive high-level object-oriented language (version 3.9)

No cal instal·lar Python, ja ve instal·lat per defecte:

$ python3 --version
Python 3.9.7

Llibreries numèriques

  • python3-numpy - Fast array facility to the Python 3 language
  • python3-matplotlib - Python based plotting system in a style similar to Matlab (Python 3)
  • python3-scipy - scientific tools for Python 3
  • python3-sympy - Computer Algebra System (CAS) in Python (Python 3)
$ sudo apt-get install python3-numpy
$ sudo apt-get install python3-matplotlib
$ sudo apt-get install python3-scipy
$ sudo apt-get install python3-sympy

Exemple:

import numpy as np
import sympy as sp
from sympy.abc import t
from sympy import exp
import matplotlib.pyplot as plt
from scipy import constants

print(constants.pi)

x = sp.symbols('x')
y = sp.Function('y')

# y'' + 3y' - 10y = 5t^2
print('Exemple: y\'\' + 3y\' - 10y = 5t^2')
y1 = sp.dsolve(y(t).diff(t,t) + 3*y(t).diff(t) - 10*y(t) - 5*t**2, y(t))
print(y1) # Eq(y(t), C1*exp(-5*t) + C2*exp(2*t) - t**2/2 - 3*t/10 - 19/100)
print("que és la solució que hem trobat a EDO2-45")

# y'' - y' - 6y = 10exp(3t)
print('\nExemple: y\'\' - y\' - 6y = 10*exp(3t)')
y1 = sp.dsolve(y(t).diff(t,t) - y(t).diff(t) - 6*y(t) - 10*exp(3*t), y(t))
print(y1) # Eq(y(t), C2*exp(-2*t) + (C1 + 2*t)*exp(3*t))

Mòdul MySQL

  • python3-mysql.connector - pure Python implementation of MySQL Client/Server protocol (Python3)
$ sudo apt-get install python3-mysql.connector

Exemple mínim exemple_minim.py:

import mysql.connector

cnx = mysql.connector.connect(host='localhost',user='nom_usuari', password='******', database='nom_usuari')
cursor = cnx.cursor()

query = ("SELECT * FROM PROVA")

cursor.execute(query)

for (id, nom) in cursor:
  print("{}, {}".format(id,nom))

cursor.close()
cnx.close()
$  python3 exemple_minim.py

Python Flask (Python per fer aplicacions web)

Instal·lem el mòdul:

  • python3-flask - micro web framework based on Werkzeug and Jinja2 - Python 3.x
sudo apt-get install python3-flask

Seguint ell tutorial, el script mínim és:

script hello.py:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"
I per tal d'arrencar el servei:
<pre>
$ export FLASK_APP=hello
$ flask run
 * Running on http://127.0.0.1:5000/
Obrir port 5000 3.png

I l'aplicació la podríem veure a:

(efectivament si fem $ wget http://127.0.0.1:5000/ funciona)

Però en el servidor hem de fer: $ flask run -h vps-89148e22.vps.ovh.net

i millor utilitzar la IP:

Però per tal de què funcioni s'ha d'obrir el port 5000 en el servidor OVH. Està documentat a:

Resumint:

  1. Hem d'anar a la secció IP.
  2. Crear Firewall
  3. Hem creat el Firewall, i d'entrada està desactivat.
  4. Ara hem d'anar a primer a Activar el Firewall; i després a Configurar el Firewall.
  5. Afegir una regla: 0 és la primera regla a aplicar; autoritzem el port 5000; TCP

En comptes d'utilitzar el nom de domini vps-89148e22.vps.ovh.net, utilitzem la IP: 5.196.26.105. I ja funciona:

Ara que veiem que funciona, tornem a treure la regla i desactivar el firewall.

Servidor FTP: ProFTPd

$ sudo apt-get install proftpd

Arxiu principal de configuració:

  • /etc/proftpd/proftpd.conf
# Use this to jail all users in their homes 
# DefaultRoot ~

Així doncs descomentem aquesta línia per tal de què els usuaris es connectin al seu home:

DefaultRoot ~

Al final del fitxer de configuració:

AccessGrantMsg "Benvingut"

Reiniciem el servidor (o millor carreguem la nova configuració):

$ sudo /etc/init.d/proftpd restart
o millor
$ sudo /etc/init.d/proftpd reload
o bé
$ service proftpd start
$ systemctl start proftpd

I ja ens podem connectar en línia de comanda:

$ ftp -p vps-89148e22.vps.ovh.net
usuari:
230 User nom_usuari logged in
Remote system type is UNIX.

ftp> help

Comandes principals:

cd, bye, delete, dir, get, ls, put, quit

Si no funciona fer un simple dir és perquè ens hem de connectar amb passive mode:

S'ha d'invocar ftp amb l'opció -p (passive mode):

     -p    Use passive mode for data transfers. Allows use of ftp in environ‐
           ments where a firewall prevents connections from the outside world
           back to the client machine. Requires that the ftp server support
           the PASV command. This is the default if invoked as pftp
$ ftp -p vps-89148e22.vps.ovh.net
ftp> dir
ftp> cd html
ftp> put fitxer.txt (pugem un fitxer local al servidor)
ftp> get fitxer.txt (descarreguem un fitxer del servidor)

Per pujar o descarregar múltiples fitxers també tenim mput i mget, però per això tenim els clients gràfics com ara el filezilla.

Per descarregar el contingut de la carpeta html/ podem fer:

$ wget -r -nH -nc ftp://nom_usuari:password@vps-89148e22.vps.ovh.net//html/

Si el que volem és pujar un directori, necessito alguna utilitat com ara ncftpput.

El més pràctic és utilitzar un client de FTP, com Filezilla:

$ cd FileZilla3/bin/
$ ./filezilla 

Amfitrió: vps-89148e22.vps.ovh.net
usuari:
password: 

Per tal de què no demani el password es pot activar la capa TLS tal com s'explica a:

Registre de domini a noip.com: http://xxx.ddns.net

Fins ara hem accedit al servidor web amb el domini:

Volem accedir amb un nom de domini gratuït i personalitzat. Per exemple, una web on es proporcionen DNS dinàmics:

Ens registrem:

  • username: jquintana@jaumebalmes.net / k*******
  • nom de domini: jquintana.ddns.net

Escollim l'opció Free SignUp:

Thank you for creating a No-IP free Dynamic DNS account!

In order to start using your account, you will need to activate your account via email. Simply click the link in the email to get started. Once you have activated your account, you will be able to add/edit hostnames and finish configuring your account.

How to remote access your device:
Step 1 - Create a Hostname. (this step is already complete) -> ja està fet
Step 2 - Download the Dynamic Update Client (DUC). -> ara anem a fer aquest pas
The DUC keeps your hostname updated with your current IP address.
Step 3 - Port Forward your router. -> no cal

dynamic update client:

Our Dynamic DNS Update Client continually checks for IP address changes in the background and automatically updates the DNS at No-IP whenever it changes.

Instruccions. Connectats per SSH al servidor:

cd /usr/local/src/
wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make install
...
Only one host [jquintana.ddns.net] is registered to this account.
It will be used.
...
New configuration file '/tmp/no-ip2.conf' created.

mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf

Però encara no funciona:

I és que si mirem a la pàgina de noip.com, en l'espai associat a jquintana.ddns.net, veiem que encara no s'ha actualitzat mai la IP.

I és que hem fet la instal·lació, però no hem executat el script.

$ /usr/local/bin/noip2 -S
Can't locate configuration file /usr/local/etc/no-ip2.conf. (Try -c). Ending!

I la solució és que li hem de donar permisos de rw al fitxer de configuració (el propietari del fitxer de configuració és el root).

Per activar el servei: (compte que això no implica que s'activi en l'inici del sistema)

$ /usr/local/bin/noip2 -S
1 noip2 process active.

Process 1818, started as noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set 5.196.26.105
Account jquintana@jaumebalmes.net
configured for:
	host  jquintana.ddns.net
Address check every 1 minute, directly connected via /dev/ens3.

I ara ja funciona:

Instal·lació de certificat SSL

Certificat SSL ovh essential jaumebalmes.png

Tenim funcionant l'Apache, però no és https:

Volem fer funcionar:

Hem d'instal·lar un certificat SSL:

Entrem al servidor, i veiem que snap ja està instal·lat: ssh ubuntu@vps-89148e22.vps.ovh.net

$ snap
The snap command lets you install, configure, refresh and remove snaps.

Seguim els passos:

3. Ensure that your version of snapd is up to date

$ sudo snap install core; sudo snap refresh core

5. Install Certbot

$ sudo snap install --classic certbot
certbot 1.27.0 from Certbot Project (certbot-eff✓) installed

6. Prepare the Certbot command

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

7. Choose how you'd like to run Certbot Run this command to get a certificate and have Certbot edit your apache configuration automatically to serve it, turning on HTTPS access in a single step.

$ sudo certbot --apache
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): jquintana@jaumebalmes.net

Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): 

vps-89148e22.vps.ovh.net

Error creating new order :: too many certificates already issued for: ovh.net: see https://letsencrypt.org/docs/rate-limits/

Per tant, la solució seria tenir un domini propi (gratuït). Per exemple, jquintana.ddns.net, com està explicat en l'apartat anterior.

I ara sí que funciona:

$ sudo certbot --apache
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): jquintana@jaumebalmes.net

Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): 

jquintana.ddns.net

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): jquintana.ddns.net
Requesting a certificate for jquintana.ddns.net

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/jquintana.ddns.net/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/jquintana.ddns.net/privkey.pem
This certificate expires on 2022-08-09.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for jquintana.ddns.net to /etc/apache2/sites-available/000-default-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://jquintana.ddns.net

I ja està, ja funciona (com veiem en la imatge, tenim el candau):

Instal·lació MongoDB

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
$ sudo joe /etc/apt/sources.list.d/mongodb-org-5.0.list

deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse

$ sudo apt-get update
$ sudo apt-get install -y mongodb-org

Ara hem d'iniciar el servei:

$ sudo systemctl start mongod

i ja podem entrar al mongo:

$ mongo
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

Cas pràctic: dockeritzar una aplicació. Hauk

Nota informativa alumnes

Ja se t'ha donat d'alta al servidor vps-89148e22.vps.ovh.net.

Nom d'usuari: xxxx
password: keiL2lai

Per entrar al servidor ho faràs amb SSH:

$ ssh nom_usuari@vps-89148e22.vps.ovh.net

Per canviar el password del SO, en la primera sessió:

$ passwd

Per accedir al mysql, s'ha creat la base de dades 'nom_usuari', sobre la que tens tots els permisos:

$ mysql -h localhost -u nom_usuari -pkeiL2lai nom_usuari
mysql> SHOW DATABASES;

Si vols accedir per SSH sense que demani el password:
*https://wiki.joanillo.org/index.php/OVH._VPS_Essential_jaumebalmes.net#SSH_sense_demanar_password

Per tal d'enviar un fitxer al servidor, utilitzaràs scp (secure copy):

$ scp <origen> <destí>
$ scp ruta_local/fitxer.txt nom_usuari@vps-89148e22.vps.ovh.net:/ruta/remota

'''NOTA''': si utilitzen Windows en prinicipi ja tens instal·lat el ssh en línia de comandes, i també scp.

'''NOTA''': en el remot només tens permisos per a /home/nom_usuari i tot el que pengi d'aquí.

També pots enviar un fitxer del servidor al local:
$ scp nom_usuari@vps-89148e22.vps.ovh.net:/ruta_remota/fitxer.txt ruta_local/

Si vols importar una base de dades (per exemple, del teu wordpress local al servidor), primer has d'exportar la teva base de dades al format SQL (wordpress.sql). Aquest fitxer l'envies al servidor (scp). I finalment l'has d'importar a la teva base de dades, de la següent manera:

$ mysql -h localhost -u nom_usuari -pkeiL2lai -D nom_usuari < ruta_remota/wordpress.sql

Per comprovar que ha anat bé, entres al mysql:

$ mysql -h localhost -u nom_usuari -pkeiL2lai -D nom_usuari
mysql> show tables

Més informació:
*https://wiki.joanillo.org/index.php/OVH._VPS_Essential_jaumebalmes.net

creat per Joan Quintana Compte, març 2022, abril 2022