|
|
## Requerimientos de instalación
|
|
|
<br><br />
|
|
|
|
|
|
### Hardware
|
|
|
|
|
|
![imagen_2021-12-14_151000](uploads/0efdcccbd1f39946439728f445712bce/imagen_2021-12-14_151000.png)
|
|
|
|
|
|
### Software
|
|
|
|
|
|
- Sistema operativo con distribución GNU/Linux
|
|
|
- Git
|
|
|
- [Docker community edition](https://www.docker.com/community-edition) (Centos 7 o +, Ubuntu 20.14 LTS, Ubuntu 18.04)
|
|
|
- [Configuración de Docker post instalación](https://docs.docker.com/engine/installation/linux/linux-postinstall/)
|
|
|
|
|
|
## Instalaciones y configuraciones previas
|
|
|
|
|
|
### 1. Actualiza el sistema
|
|
|
|
|
|
Es importante tener actualizados todos los componentes de nuestro sistema. Ejecuta la siguiente línea de comando en la terminal: `sudo yum update -y`
|
|
|
<br><br />
|
|
|
|
|
|
## 2. Instalar Git
|
|
|
|
|
|
Es necesario instalar Git para descargar el repositorio de Geonodo, para esto, ejecutar la siguiente línea de comando:
|
|
|
|
|
|
`sudo yum install git`
|
|
|
|
|
|
Verificar la instalación de Git con el comando
|
|
|
|
|
|
`git --version.`
|
|
|
|
|
|
(Resultado o similar):\
|
|
|
|
|
|
`git versión 1.8.3.1`
|
|
|
<br><br />
|
|
|
|
|
|
## 3. Creación y configuración de usuario Linux
|
|
|
|
|
|
Los siguientes comandos se deben realizar como usuario root. Para cambiarse a este usuario, ejecutar en la consola el comando su- e ingresar su contraseña.
|
|
|
<br><br />
|
|
|
|
|
|
### Creación de usuario
|
|
|
|
|
|
Para permitir una utilización óptima del sistema, se debe trabajar con distintos usuarios y grupos, para ello, en esta guía crearemos un usuario llamado geonodo. Ingresar en la terminal el comando useradd seguido del nombre de usuario que desea crear.
|
|
|
|
|
|
`useradd geonodo`
|
|
|
|
|
|
<br><br />
|
|
|
|
|
|
### Crear contraseña de usuario
|
|
|
|
|
|
Para crear una contraseña, ingrese el comando passwd seguido del nombre de usuario.
|
|
|
|
|
|
`passwd geonodo`
|
|
|
|
|
|
Una vez ingresada la contraseña, el mensaje retornado será similar al siguiente:
|
|
|
|
|
|
```plaintext
|
|
|
"Changing password for user geonodo.
|
|
|
New UNIX password:
|
|
|
Retype new UNIX password:
|
|
|
passwd: all authentication tokens updated successfully."
|
|
|
```
|
|
|
<br><br />
|
|
|
### Añadir usuario a grupo wheel
|
|
|
|
|
|
Por defecto, en CentOS los miembros del grupo wheel tienen privilegios sudo (Privilegios especiales de root). Otorgar estos privilegios al usuario, con el siguiente comando:
|
|
|
|
|
|
`usermod -aG wheel geonodo`
|
|
|
|
|
|
Autenticarse como nuevo usuario Para los siguientes pasos, se debe autenticar como el usuario recién creado con el comando: `su - geonodo`
|
|
|
<br><br />
|
|
|
#### 4. <span dir="">Instalación y configuración de Docker Engine</span>
|
|
|
|
|
|
<span dir="">Docker Engine es un sistema operativo para contenedores, que nos permite trabajar a través de imágenes, de manera online, con diferentes aplicaciones sin necesidad de instalarlas de manera local, las cuales son necesarias para la instalación de Geonodo . </span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
_Recuerde **NO** ejecutar comandos como usuario root a menos que se indique explícitamente._
|
|
|
|
|
|
| [<span dir="">Documentación oficial</span>](https://docs.docker.com/install/) | Toda la documentación de este documento es extraída de la fuente oficial.
|
|
|
<br><br />
|
|
|
### Configurar repositorio de Docker Engine
|
|
|
|
|
|
<span dir="">Antes de instalar, debemos descargar y configurar el repositorio de Docker Engine, para ello revisaremos cómo realizarlo en el sistema operativo Centos, y en Ubuntu.</span>
|
|
|
<br><br />
|
|
|
### Configuración en Centos
|
|
|
|
|
|
Se debe instalar los paquetes requeridos. `yum-utils` proporciona las utilidades ` yum-config-manager`, `device-mapper-persistent-data` y `lvm2` que son requeridos por el controlador de almacenamiento **Device Mapper**.
|
|
|
|
|
|
|
|
|
|
|
|
`sudo yum install -y yum-utils`
|
|
|
|
|
|
Use el siguiente comando para configurar el repositorio estable.
|
|
|
|
|
|
`sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo`
|
|
|
|
|
|
|
|
|
<br><br />
|
|
|
### Configurar repositorio en Ubuntu
|
|
|
|
|
|
Actualizar el índice de paquetes apt e instalar los paquetes requeridos.
|
|
|
|
|
|
|
|
|
|
|
|
`sudo apt-get update`
|
|
|
|
|
|
|
|
|
|
|
|
`sudo apt-get install ca-certificates curl gnupg lsb-release`
|
|
|
|
|
|
<span dir="">Agregar la clave GPG oficial de Docker:</span>
|
|
|
|
|
|
|
|
|
|
|
|
`sudo apt-get install ca-certificates curl gnupg lsb-release`
|
|
|
|
|
|
Use el siguiente comando para configurar el repositorio estable:
|
|
|
|
|
|
`echo \`\
|
|
|
` "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \`\
|
|
|
` $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null`
|
|
|
<br><br />
|
|
|
### Instalar Docker Engine
|
|
|
|
|
|
* _Esta guía asume que no tiene versiones anteriores de docker instaladas._
|
|
|
|
|
|
Instale la última versión de Docker CE, a través del siguiente comando
|
|
|
|
|
|
|
|
|
|
|
|
`sudo yum install docker-ce docker-ce-cli containerd.io`
|
|
|
<br><br />
|
|
|
### <span dir="">Iniciar Docker
|
|
|
|
|
|
Para iniciar Docker, ejecuta el siguiente comando:
|
|
|
|
|
|
|
|
|
`sudo systemctl start docker`
|
|
|
|
|
|
Para verificar que Docker esté instalado correctamente, ejecutar el siguiente comando. Debería aparecer el mensaje entre las líneas de ejecución desplegadas "Hello from Docker!":
|
|
|
|
|
|
|
|
|
|
|
|
`sudo docker run hello-world`
|
|
|
|
|
|
_Resultado (o similar):_
|
|
|
|
|
|
_"Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world ca4f61b1923c: Pull complete Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1 Status: Downloaded newer image for hello-world:latest\
|
|
|
Hello from Docker! This message shows that your installation appears to be working correctly.\
|
|
|
To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.\
|
|
|
\
|
|
|
To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash\
|
|
|
Share images, automate workflows, and more with a free Docker ID:_ [_https://cloud.docker.com/_](https://cloud.docker.com/)_\
|
|
|
For more examples and ideas, visit:_ [_https://docs.docker.com/engine/userguide/_](https://docs.docker.com/engine/userguide/)__
|
|
|
<br><br />
|
|
|
### Configuración de Docker
|
|
|
|
|
|
Crear un grupo llamado docker.
|
|
|
|
|
|
`sudo groupadd docker`
|
|
|
|
|
|
Añadir usuario geonodo al grupo docker.
|
|
|
|
|
|
`sudo usermod -aG docker geonodo`
|
|
|
|
|
|
</div><span dir="">Cierre sesión con el siguiente comando y vuelva a iniciar sesión para que se vuelva a evaluar su membresía grupal.</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`exit`
|
|
|
|
|
|
</div><span dir="">Verifique que puede ejecutar comandos docker sin anteponer sudo. Debería aparecer el mensaje entre las líneas de ejecución desplegadas "Hello from Docker!":</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`docker run hello-world`
|
|
|
<br><br />
|
|
|
### Habilitar servicio al arrancar equipo
|
|
|
|
|
|
Indicar que Docker se inicie al arrancar el equipo a través de systemctl.
|
|
|
|
|
|
`sudo systemctl enable docker`
|
|
|
<br><br />
|
|
|
### 5. Configurar llaves SSH
|
|
|
|
|
|
Se necesitará contener llaves SSH, para poder acceder a nuestro servidor de manera segura y mediante líneas de comando.
|
|
|
|
|
|
Primero verificar si SSH se encuentra instalado en el servidor con el siguiente comando:
|
|
|
|
|
|
|
|
|
|
|
|
`ssh -V`
|
|
|
|
|
|
_Resultado (o similar):_
|
|
|
|
|
|
|
|
|
|
|
|
`OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017`
|
|
|
|
|
|
|
|
|
<br><br />
|
|
|
##### Verificar si existe llave ssh
|
|
|
|
|
|
Por defecto los nombres de llaves ssh son los siguientes:
|
|
|
|
|
|
* <span dir="">id_rsa.pub</span>
|
|
|
* <span dir="">id_dsa.pub</span>
|
|
|
* <span dir="">id_ecdsa.pub</span>
|
|
|
* <span dir="">id_ed25519.pub</span>
|
|
|
|
|
|
Para verificar en la terminal ejecutar:
|
|
|
|
|
|
`ls -al ~/.ssh`
|
|
|
|
|
|
|
|
|
`-rw-r--r--. 1 geonodo geonodo 409 abr 15 16:59 id_rsa.pub`
|
|
|
|
|
|
|
|
|
<br><br />
|
|
|
### Crear llave ssh
|
|
|
|
|
|
Ejecutar el siguiente comando para crear la nueva clave SSH. (Reemplazar **\[CORREO_SYSADMIN\]** por el correo del administrador del servidor)
|
|
|
|
|
|
|
|
|
|
|
|
`$ ssh-keygen -C "[CORREO_SYSADMIN]" `
|
|
|
|
|
|
**Resultado (o similar):**
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`Generating public/private rsa key pair.`
|
|
|
|
|
|
</div>\* <span dir="">Presionar “Enter” para aceptar la ubicación por defecto de la llave.</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`Enter file in which to save the key (/c/Users/user/.ssh/id_rsa): `
|
|
|
|
|
|
</div>\* <span dir="">Se puede ingresar una contraseña de forma opcional o dejar en blanco. Presionar “Enter”.</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`Enter passphrase (empty for no passphrase):Enter same passphrase again:`
|
|
|
|
|
|
</div><span dir="">Con el siguiente comando, inicie el agente SSH en segundo plano.</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`eval "$(ssh-agent -s)"`
|
|
|
|
|
|
**Resultado (o similar)**:
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`Agent pid 59566`
|
|
|
|
|
|
</div><span dir="">Finalmente, añada la llave SSH al agente.</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`$ ssh-add ~/.ssh/id_rsa`
|
|
|
|
|
|
**Resultado (o similar)**:
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`Identity added: /user/.ssh/id_rsa (/user/.ssh/id_rsa)`
|
|
|
<br><br />
|
|
|
### Validar y enviar llave SSH
|
|
|
|
|
|
<span dir="">En la terminal, revisar la llave SSH ejecutando:</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`cat ~/.ssh/id_rsa.pub`
|
|
|
|
|
|
</div><span dir="">Copie el contenido de su llave y solicite su acceso enviando un correo a </span><span dir="">"Jorge Pérez" [jperez@mbienes.cl](jperez@mbienes.cl)<span dir="">, con los siguientes datos:</span>
|
|
|
|
|
|
* <span dir="">Nombre Completo</span>
|
|
|
* <span dir="">Cargo</span>
|
|
|
* <span dir="">Teléfono</span>
|
|
|
* <span dir="">Institución</span>
|
|
|
* <span dir="">Llave SSH (Contenido de la llave)</span>
|
|
|
<br><br />
|
|
|
####
|
|
|
<br><br />
|
|
|
### Instalación de Geonodo
|
|
|
|
|
|
##### Instalación local
|
|
|
|
|
|
<span dir="">La instalación local, permitirá que las configuraciones de Geonodo sean reflejadas sólo en el equipo instalado. Para tener la aplicación de forma local, ejecutar los siguientes códigos en la terminal:</span>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`git clone ssh://git@gitlab.ide.cl:2244/geonodo/geonodo.git`\
|
|
|
`make build`\
|
|
|
`make stop`\
|
|
|
`make init-local `\
|
|
|
`make start-local `\
|
|
|
`make dev`
|
|
|
|
|
|
Finalmente abrir el proyecto en la ruta [http://localhost](http://localhost)
|
|
|
|
|
|
|
|
|
<br><br />
|
|
|
##### Instalación en productivo
|
|
|
|
|
|
La instalación en productivo permitirá que los equipos puedan conectarse a Geonodo a través de la red. Por lo que todos los cambios se verán reflejados en los equipos que se conecten a ella:
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`git clone ssh://git@gitlab.ide.cl:2244/geonodo/geonodo.git`\
|
|
|
`make build`\
|
|
|
`make start`\
|
|
|
`make geonodo`
|
|
|
|
|
|
</div><span dir="">Abrir el proyecto en el dominio donde se realizó la instalación.</span>
|
|
|
|
|
|
|
|
|
<br><br />
|
|
|
##### Actualización en ambiente productivo
|
|
|
|
|
|
<div>
|
|
|
|
|
|
`git pull origin master`\
|
|
|
`make build`\
|
|
|
`make start`\
|
|
|
`make geonodo`
|
|
|
|
|
|
</div><span dir="">Revisar la actualización en la url donde se instaló.</span>
|
|
|
|
|
|
|
|
|
|
|
|
|