-
Crear compartimento Identity & Security / Compartments
Seleccionar Create Compartment
Ingresar informacion necesaria y presionar el boton Create Compartment
-
Crear usuario en la siguiente ruta: Identity / Domains / Default domain
Crear usuario sin seleccionar grupo pues lo asignaremos posteriormente.
-
Creamos un grupo
-
Asignamos permisos
Registramos el nombre y seleccionamos las opciones:
Luego seleccionamos el switch "Show manual editor" y corregimos la linea
De: Allow group 'Default'/'DeveloperGroup' to manage compute-management-family in compartment Desarrollo
A: Allow group 'Default'/'DeveloperGroup' to manage all-resources in compartment Desarrollo
Modificamos políticas para permitir el acceso a shell del nuevo usuario o grupo:
Agregamos la siguiente sentencia (sin comillas de inicio y fin): "Allow group 'Default'/'DeveloperGroup' to use cloud-shell in tenancy" Recuerda que debes cambiar el nombre del grupo en caso el tuyo sea diferente
-
Nos logueamos con el nuevo usuario. Generalmente no se tiene la contraseña inicial así que lo que queda es restablecer la contraseña y luego activar el login de 2 factores.
-
fdsf Seleccionamos Shell
Creamos la carpeta .ssh con "mkdir .ssh"
Accedemos a la carpeta con "cd .ssh/"
Creamos la llave pública y privada: ssh-keygen -b 2048 -t rsa -f cloudshellkey
No ingresamos ninguna información cuando nos pide passphrase
Escribimos "ls -a" para verificar que se hayan creado las keys, estas llaves nos servirán para hacer una conección de una forma segura y la utilizaremos más adelante.
-
Vamos a usar el asistente para crear una VCN
-
Creamos una instancia:
Colocamos el nombre y dejamos todos las opciones por defecto exepto el área en el que nos permite elegir la Key SSH
Seleccionamos la opción: "Paste public keys" y abrimos el shell
Tener en cuenta que debes ubicarte dentro de la carpeta .shh
Copiamos las dos líneas siguientes luego de escribir: "cat TUCLAVE.pub"
Finalmente seleccionamos el botón Create:
Finalmente ya tenemos creada nuestra instancia en la que unos de los datos más importantes es el número de IP y el usuario que por defecto es opc:
Abrimos shell y escribimos: "ssh opc@TUIPPUBLICA -i cloudshellkey" y luego escribimos "yes" cuando el sistema lo solicita Para confirmar que ya estamos dentro de la instancia podemos ver que la última línea tiene el nombre de nuestro usuario y podemos hacer un ping para conectarnos hacía afuera, por ejemplo: "ping www.google.com"
-
Ahora vamos a realizar algunas configuraciones para que podamos acceder desde internet a nuestra ip pública. Escribimos: "sudo yum -y install httpd"
Vamos a agregar el puerto 80 al firewall: "sudo firewall-cmd --permanent --add-port=80/tcp" "sudo firewall-cmd --reload" "sudo systemctl start httpd"
Agregamos un archivo para mostrar un html para mostrar en nuestra ip publica "sudo su" "echo "
" >> /var/www/html/index.html" -
Crear Load Balancer
Antes de crear un Load Balancer creamos otra instancia con este objetivo, la creamos de la misma forma que lo hicimos anteriormente, copiando la key publica.
La nueva instancia va a tener otra ip Abrimos shell y escribimos: "ssh opc@TUIPPUBLICA -i cloudshellkey" y luego escribimos "yes" cuando el sistema lo solicita
Realizamos los mismos procedimientos para instalar httpd con:
"sudo yum -y install httpd"
Luego ejecutamos los siguientes comandos para que finalmente podamos probar la segunda instancia: sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
sudo systemctl start httpd
Agregamos un archivo para mostrar un html para mostrar en nuestra ip publica sudo su
echo "
" >> /var/www/html/index.htmlDeberias tener 2 instancias corriendo:
Como vamos a usar los recursos gratuitos lo dejamos todos como esta y solo seleccionamos nuestra VCN:
Luego agregamos Backends y seleccionamos nuestras 2 instancias creadas previamente:
Luego viene la configuracion de Listener y seleccionamos HTTP
En la seccion de logs dejamos las opciones por defecto:
Con la ip publica podemos verificar que alterna el acceso a las dos instancias de forma alterna:
-
Creamos nuestra base de datos JSON
Solo sera necesario colocar el nombre, las otras configuraciones las dejamos como esta para que se mantenga siempre gratis.
Una vez creada la base de datos se debe seleccionar la opcion "View all database actions" para revisar las opciones disponibles:
-
Ingresamos a shell con los datos de la primera instancia: "ssh opc@TUIPUBLICA -i .ssh/cloudshellkey"
Instalamos GIT sudo dnf install git
Clonamos una app de git git clone https://tuappengit
Instalamos node, dependiendo de la version que corresponda a tu aplicacion
sudo dnf install @nodejs:16
Ingresamos a la carpeta de la aplicacion
cd nombreDeLaCarpeta
Instalamos dependencias:
npm install
Instalacmos InstantClient
sudo dnf list installed | grep instantclient
sudo dnf install oracle-instantclient-release-el8
sudo dnf install oracle-instantclient-basic
DEscargamos el Wallet
Vamos a panel izquierdo -> Oracle DB -> Autonomous DB -> DoguitoDB -> DB Connection -> Download wallet -> pw=LaMismaDeLaDatabase -> Download
Salimos del usuario loqueado con "exit"
Cargamos el archivo de Wallet
Panel superior izquierdo o engranaje en parte superior derecha de cloudshell -> Upload -> Cargamos archivo de wallet que acabamos de descargar -> Hide
copiamos el archivo a la raiz de opc
scp -i .ssh/cloudshellkey Wallet_devdb.zip opc@129.151.122.13:/home/opc
accedemos nuevamente con el usuario opc
ssh opc@TUIP -i .ssh/cloudshellkey
verificamos que el archivo del wallet se copio correctamente
ls
copiamos el wallet a una ubicacion predeterminada
sudo cp Wallet_*.zip /usr/lib/oracle/21/client64/lib/network/admin
nos ubicamos en la carpeta
cd /usr/lib/oracle/21/client64/lib/network/admin
descomprimimos sudo unzip -B Wallet_algunnombre.zip
agregamos las variables de entorno
export DB_USER=ADMIN export DB_PASSWORD=tuclave export CONNECT_STRING=devdb_high
Agregamos el puerto 3000 para que reciba trafico
sudo firewall-cmd --permanent --add-port=3000/tcp
reiniciamos el firewall
sudo firewall-cmd --reload
Agregamos el puerto 3000 a security list
vm1 -> public subnet VCN1 -> Default security list -> Add ingress rule -> Source CDIR=0.0.0.0/0 -> Port=3000 -> Add rule
Iniciamos el proyecto
npm start
[Unit] Description=Doguito API Service After=network.target
[Service] Environment="DB_USER=ADMIN" Environment="DB_PASSWORD=???" Environment="CONNECT_STRING=???" Type=simple User=opc ExecStart=/usr/bin/node /home/opc/doguito-api-es/bin/www Restart=on-failure
Modificamos el archivo si es necesario con:
vim doguito-api.service
Primero copiamos el archivo a donde corresponde
sudo cp doguito-api.service /lib/systemd/system
cd /lib/systemd/system
sudo systemctl daemon-reload
sudo systemctl status doguito-api.service
sudo systemctl start doguito-api.service
sudo systemctl enable doguito-api.service