Una vez instalado el sistema operativo UBUNTU (en este caso version 22.04 LTS) por default, procedemos a los siguientes pasos:
Acceso remoto
Se recomienda habilitar el acceso SSH remoto para una mejor administración y configuración.
Los comandos se pueden correr anteponiendo sudo para obtener permisos necesarios o directamente ejecutar sudo su para loguear como usuario root
apt install net-tools apt-get update apt-get upgrade apt install openssh-server -y systemctl enable --now ssh
Podemos probar el acceso haciendo una conexión SSH o telnet desde afuera a la IP y puerto 22
Java
Correr las siguientes sentencias:
apt install wget wget "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=245797_df5ad55fdd604472a86a45a217032c7d" -O java-8.tar.gz mkdir /usr/java tar -xf java-8.tar.gz -C /usr/java --Tener en cuenta el nombre del archivo descargado echo 'export PATH="$PATH:/usr/java/jre1.8.0_321/bin"' >> ~/.bashrc --Tener en cuenta el nombre del path source ~/.bashrc
Para validar la instalación y version de JAVA ejecutamos el comando
java -version
MongoDB
Procedemos a la instalación de MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list apt-get update sudo apt-get install libssl1.1 apt-get update apt-get install -y mongodb-org echo "mongodb-org hold" | sudo dpkg --set-selections echo "mongodb-org-server hold" | sudo dpkg --set-selections echo "mongodb-org-shell hold" | sudo dpkg --set-selections echo "mongodb-org-mongos hold" | sudo dpkg --set-selections echo "mongodb-org-tools hold" | sudo dpkg --set-selections systemctl start mongod systemctl status mongod --Podremos ver el estado del servicio para ver que haya levantado de manera correcta systemctl enable mongod openssl rand -base64 756 > /etc/mongodb.key chmod 400 /etc/mongodb.key chown mongodb:mongodb /etc/mongodb.key
Vamos a hacer un cambio en el archivo de configuración, ubicado en /etc/mongod.conf para habilitar el acceso desde afuera.
La sección net debería quedar así:
Vamos a crear un super usuario con nombre admin y clave Nosotros123. Para ello, debo ingresar a mongo y tipear la siguiente sentencia:
use admin db.createUser( { user: "admin", pwd: "Nosotros123", roles: [ "root", "dbAdminAnyDatabase", "dbOwner" ] } )
Básicamente, lo que hago es crear un usuario llamado admin en la base de datos admin (la principal de mongodb).
Una vez hecho esto, si debemos ya configurar mongodb en modo seguro y con replica set.
Para ello, vamos a editar nuevamente el archivo de configuracion que se encuentra en /etc/mongod.conf
El tag Security y Replication, deben quedar así:
|
Para referencia, el archivo entero, quedaría de este modo:
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: /var/lib/mongodb journal: enabled: true # engine: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # network interfaces net: port: 27017 bindIpAll: true # how the process runs processManagement: timeZoneInfo: /usr/share/zoneinfo #operationProfiling: security: authorization: enabled keyFile: /etc/mongodb.key replication: replSetName: bridge #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
Reiniciamos el servicio para que apliquen los cambios:
systemctl restart mongod
Finalmente, vamos a configurar la replicación y vamos a probar la conexión.
Probar la conexion al puerto de MongoDB (27017):
telnet 127.0.0.1 27017 --Nos debe conectar. Con esto confirmamos que el puerto escucha correctamente
Para activar el replicaset debemos ejecutar los siguientes comandos:
mongo -u admin -p Nosotros123 --authenticationDatabase admin rs.initiate({_id: "bridge", version: 1, members: [{ _id: 0, host : "127.0.0.1:27017" }]}) --Presionamos ENTER rs.config()
NodeJS
Del mismo modo que los anteriores, actualizo el repositorio e instalo NodeJS 18
apt update apt install curl curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - apt -y install nodejs node -v --Nos dara como resultado la version instalada
PM2
Continuamos con la instalación de PM2
apt install npm npm i -g pm2 --Luego, se instala logrotate para que vaya eliminando los logs pm2 install pm2-logrotate pm2 set pm2-logrotate:max_size 50M pm2 set pm2-logrotate:retain 10 pm2 set pm2-logrotate:compress true
ya tenemos todo lo necesario para el 2do paso. Instalar BRIDGE !!!