Diferència entre revisions de la pàgina «OVH. VPS Essential jaumebalmes.net»

De wikijoan
Salta a la navegació Salta a la cerca
Línia 300: Línia 300:
 
<pre>
 
<pre>
 
$ sudo userdel -r username
 
$ sudo userdel -r username
 +
</pre>
 +
=Creació d'un docker bàsic Apache-PHP=
 +
<pre>
 +
$ mkdir docker-apache
 +
$ cd docker-apache
 +
$ mkdir src/
 +
</pre>
 +
<pre>
 +
$ 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 />';
 +
}
 +
?>
 +
</pre>
 +
Creem el fitxer de configuració ''Dockerfile'':
 +
<pre>
 +
$ joe Dockerfile
 +
 +
FROM php:7.4-apache
 +
COPY src/ /var/www/html
 +
EXPOSE 80
 +
</pre>
 +
i creem el docker:
 +
<pre>
 +
$ 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
 +
</pre>
 +
Ja podem arrencar el docker:
 +
<pre>
 +
$ docker run -p 8080:80 apache-joan
 +
</pre>
 +
I ja funciona:
 +
*http://vps-89148e22.vps.ovh.net:8080/taules_multiplicar.php
 +
 +
Millor arrencar el docker en mode deamon:
 +
<pre>
 +
$ docker run -p 8080:80 -d apache-joan
 +
7fd7257f5a77bfd8d39a837ec99a28082486bc30301ceb4ef4fe7e19dad88895
 +
</pre>
 +
Efectivament està arrencat i funciona:
 +
<pre>
 +
$ 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
 +
</pre>
 +
Per aturar-lo quan ja no el necessitem:
 +
<pre>
 +
$ docker stop 7fd7257f5a77
 +
</pre>
 +
Ja no el veiem fent ''docker ps'', però sí que el veiem fent ''docker ps -a''.
 +
 +
I per tornar-lo a arrencar:
 +
<pre>
 +
$ docker start 7fd7257f5a77
 
</pre>
 
</pre>
 
{{Autor}}, març 2022
 
{{Autor}}, març 2022

Revisió del 13:20, 23 març 2022

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

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 joan@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 joan@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

Creació s'usuaris

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

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

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

Editem el fitxer de configuració de l'Apache:

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

    Alias /joan "/home/joan/html/"
    <Directory "/home/joan/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 joan

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

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

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

joan$ 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:

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

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

$ ssh joan@vps-89148e22.vps.ovh.net
joan$ mysql -h localhost -u joan -pkeiL2lai joan
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

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

creat per Joan Quintana Compte, març 2022