You are on page 1of 6

1==================================================================================

=========================================================================1
TODO COMIENZA AQUI
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
GIT Y GIT BASH
***********************************************************************************
**************************************************************************
###CREAMOS UN CAPTURA DE LAS APLICACIONES PIP INSTALADAS EN NUESTRO AMBIENTE
VIRTUAL (VENV) ###
(djangoPy3Env) project_name> pip freeze > requerimientos.txt
***********************************************************************************
**************************************************************************
###A CONTINUACION DEBES CREAR UN ARCHIVO GITIGNORE PARA EVITAR SUBIR ARCHIVOS QUE
NO CORRESPONDAN###
(djangoPy3Env) project_name> touch .gitignore

##Estructura del gitignore

project_name/.gitignore
.vscode
env/
venv/
__pycache__/
.vscode/
db.sqlite3
***********************************************************************************
**************************************************************************
###AHORA SOLO BASTA DARLE AL GIT INIT Y SUBIRLO TODO A LO PRO### --(por consola git
bash, solo sigue los pasos)

(djangoPy3Env) project_name> git init


(djangoPy3Env) project_name> git add --all
(djangoPy3Env) project_name> git commit -m "initial commit"
(djangoPy3Env) project_name> git remote add origin
https://github.com/your_github_username/your_github_repo_name
(djangoPy3Env) project_name> git push origin master

///SI TODO HA SALIDO BIEN PODRAS VER TU REPOSITORIO EN GITHUB.COM CON LOS ARCHIVOS
DE TU PROYECTO///
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************

ANTES DE SEGUIR --- DEBES TENER CREADA UNA CUENTA EN AWS - https://aws.amazon.com

AHORA ES CUANDO PASO CON EL SOMBRERO RECLUTANDO A QUIEN AUN NO TENGA TARJETA DE
CREDITO VIRTUAL PARA HACER COMPRAS EN EL EXTRANJERO Y MAS.
VISITEN EL SIGUIENTE LINK-----> https://bajamach.com/m3ICoL4Kzhb
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************

\--BRAVISIMO --(YA TIENES VISA VIRTUAL Y UNA CUENTA EN AMAZON WEB SERVICE)--SOLO TE
QUEDA EMPEZAR A GENERAR--/
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
PAIRING KEYS --> QUE ES <-- & --> Y PORQUE SON IMPORTANTES <-- ###GRABA ESTE
EN TU CEREBRO### ES TU UNICA CLAVE DE INSTANCIA.ES TU HUELLA DIGITAL VIRTUAL.
ES TODO, LA PIERDES Y PUEDES PERDER TU INSTANCIA AWS. NO ES GRAN COSA SI TIENES UN
SOLO FORMULARIO. PERO ES DELICADO SI TIENES UN SITIO PROFESIONAL.
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
EN NUESTRO GITBASH, PUTTY REALIZAREMOS LA CONEXION (PUEDE SER EN VS CODE ABRIR
TERMINAL GITBASH - OPCION MAS VIABLE Y COMODA)
A TRAVES DEL TERMINA GITBASH DEBES INGRESAR LA SECUENCIA DE ABAJO PRIMERO
=====SECUENCIA======GIT_BASH===========
###UBICATE EN LA CARPETA QUE CONTENGA LA LLAVE PEM###

chmod 400 nombre_archivo.pem #APLICA UNA PROTECCION A NUESTRA


LLAVE PEM DE EDICIONES.
ssh -i "nombre_archivo.pem" ubuntu@direccion_ip_aws #LLAMA A NUESTRA INSTANCIA A
TRAVES DE LA LLAVE PEM

###SI TODO ESTA BIEN TE DARA LA BIENVENIDA EL SERVIDOR DE UBUNTU###


=====SECUENCIA======GIT_BASH===========
***********************************************************************************
**************************************************************************
SI HASTA ACA HA SUCEDIDO EL FENOMENO DE LA CONEXION EXITOSA -->COSA EXTRAÑA<--
QUIERE DECIR QUE TENEMOS TODO BIEN -->SERIA UN MILAGRO<--
***********************************************************************************
**************************************************************************
PON TUS OJOS EN LA SIGUIENTE LINEA Y FIJATE QUE AHORA ESTAS CONECTADO AL USUARIO
"UBUNTU@54.162.31.253" <-- ESA IP ES SOLO REFERENCIA,
CADA UNO TENDRA UNA IP DIFERENTE. LO IMPORTANTE ES QUE SI ESTA TODO BIEN SE VERA
TAL CUAL. <--Y CONTINUAMOS CON LA PREPARACION DE NUESTRO PROYECTO-->
EJEMPLPO DE COMO SE VE: ejemplo:################### ubuntu@54.162.31.253:~$ # Los
comandos que escribe aparecen aquí #############################

ubuntu@54.162.31.253:~$ git clone


https://github.com/your_username_here/your_repo_name_here #podemos importar
directo nuestro repositorio
ubuntu@54.162.31.253:~$ sudo apt-get update
##actualiza tu server tools
ubuntu@54.162.31.253:~$ sudo apt-get install python3-venv ##Di Sí cuando se
indique #sudo para instalar python3 virtual enviroment
ubuntu@54.162.31.253:~$ cd {{ repo name }} ##las
{{}} se eliminan #cd nombre_de_tu_repo para entrar a tu repositorio
ubuntu@54.162.31.253:~$ python3 -m venv venv ##codigo
para crear venv #el segundo "venv" lo puedes cambiar a tu pinta
ubuntu@54.162.31.253:~$ source venv/bin/activate ##esto es
muy comodo #activa el ambiente virtual
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************

###SOLO RECUERDA, PUEDES CREAR TANTOS AMBIENTES COMO QUIERAS. SOLO ORDENALOS BIEN.
PARA SALIR DE CUALQUIER AMBIEN SOLO ESCIBRES "deactivate" sin comillas###
###TU AMBIENTE YA ESTA ACTIVADO###
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************

-->A CONTINUACION INSTALA LA SIGUIENTE LISTA DE LIBRERIAS ---(NO ES NECESARIO QUE


SEA UNA VERSION ESPECIFICA PARA ESTE DEPLOYTMENT)<--

(venv) ubuntu@54.162.31.253:~$ pip install django


(venv) ubuntu@54.162.31.253:~$ pip install bcrypt
(venv) ubuntu@54.162.31.253:~$ pip install gunicorn
(venv) ubuntu@54.162.31.253:~/myRepoName$ cd {{projectName}}
#ingresa a tu proyecto
(venv) ubuntu@54.162.31.253:~/myRepoName/projectName$ sudo vim settings.py
#usaremos vim de unix para editar un settings.py muy conocido

AGREGA Y/O MODIFICA ESTAS LINEAS EN TU SETTIINGS.PY


############
DEBUG = False #esta
siempre existe y esta en True, debes cambiarla o reemplazarla
ALLOWED_HOSTS = ['{{yourEC2.public.ip}}'] # mantener las comillas!
-->dependiendo de todas las reglas de conexion la ip publica

# no siempre funciona o es reconocida como tal. por eso en esta seccion solo
rellenaremos

# donde dice yourec2.public.ip ['localhost','*','ip_publica']


STATIC_ROOT = os.path.join(BASE_DIR, "static/") # esta linea no viene y
hay que agregarla.

############
EN EL APARTADO DATABASES BIEN ABAJO EN EL SETTINGS.PY CAMBIA TODO POR ESTAS LINEAS
############
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'un_nombre_db', # solo cambia este dato
por el nombre de la db que crearas en el siguiente proceso
'USER': 'postgres', # postgres para macOS o
'USER': 'postgres', para Windows
'PASSWORD': 'root', # contraseña de la db
que crearas en postgresql
'HOST': 'localhost', # dirección IP
'localhost'
'PORT': '5432', # puerto defecto
postgresql
}
}

############
###PARA EDITAR EN VIM DEBES INICIAR PRESIONANDO LA TECLA i, VERAS EN PANTALLA LA
PALABRA "INSERT" VAMOS A EDITAR!!###
###TRAS EDITAR SALES DE VIM PRESIONANDO ESCAPE Y LUEGO ESCRIBIENDO TEXTUAL :q! Y DE
ESTA FORMA VOLVEMOS A NUESTRO UBUNTU SERVER###
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
POSTGRESQL
-->PROCESO DE INSTALACION Y TESTEO DE POSTGRESQL MOTOR DE BASES DE DATOS<--
***********************************************************************************
**************************************************************************

(venv) ubuntu@54.162.31.253:~/myRepoName/projectName$ cd ..
#volvemos a nuestra carpeta de repositorio
(venv) ubuntu@54.162.31.253:~/myRepoName$ sudo apt install postgresql postgresql-
contrib #Instala postgresql en nuestro servidor - como programa
(venv) ubuntu@54.162.31.253:~/myRepoName$ sudo systemctl start postgresql.service
#Inicia el servicio Postgresql
(venv) ubuntu@54.162.31.253:~/myRepoName$ systemctl status postgresql
#Verifica el estado del servicio

(venv) ubuntu@54.162.31.253:~myRepoName$ sudo -u postgres psql


#iniciamos postgresql en nuestra terminal
postgres=# ALTER USER postgres PASSWORD 'root';
#asignamos usuario postgres y clave root
postgres=# CREATE DATABASE nombre_base_datos;
#usa "\l" y "\du" para revisar #creamos la base
de datos

(venv) ubuntu@54.162.31.253:~myRepoName$ pip install postgres


#antes instalamos postgres server ahora es como pip
(venv) ubuntu@54.162.31.253:~myRepoName$ python manage.py collectstatic
#Escriba yes cuando se indique
(venv) ubuntu@54.162.31.253:~myRepoName$ python manage.py makemigrations
#Más conocida que la makemigrations
(venv) ubuntu@54.162.31.253:~myRepoName$ python manage.py migrate
#Si todo funcionó con acento argetino "migrááááte"
***********************************************************************************
**************************************************************************
###A ESTA ALTURA SOLO FALLARIAN LOS COPY PASTE YA QUE SI TODO ESTA BIEN REALIZADO
PRONTO TENDRAS TU MAQUINA FUNCIONANDO PARA GENERAR###
***********************************************************************************
**************************************************************************
ESTOS DOS COMANDOS A CONTINUACION ACTUALIZAN LA LISTA DE PROGRAMAS DEL SERVIDOR E
INSTALA NGINX (enyinex se pronuncia como motor x en ingles)

ubuntu@54.162.31.253:~$ sudo apt-get update #actualiza programas del


server
ubuntu@54.162.31.253:~$ sudo apt-get install nginx #instala NGINX para acceder a
tu proyecto via servidor web

***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
###GUNICORN - servidor http wsgi muy utlizado GREEN UNICORN nos permite establecer
conexiones con NGINX a traves de sockets###
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
(venv) ubuntu@54.162.31.253:~myRepoName$ gunicorn {{project_name}}.wsgi
#
***********************************************************************************
**************************************************************************
sudo vim /etc/systemd/system/gunicorn.service #este codigo le dice a
gunicorn que debe crear un archivo wsgi con la siguiente ruta de proyecto/app
#copia y pega el siguiente bloque y
editalo con el nombre de tu proyecto y app donde corresponda
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/{{repositorio}}
ExecStart=/home/ubuntu/{{repositorio}}/{{VENV}}/bin/gunicorn --workers 3 --bind
unix:/home/ubuntu/{{repositorio}}/{{proyecto}}.sock {{proyecto}}.wsgi:application
[Install]
WantedBy=multi-user.targetcd
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
###AHORA ALGO SUPER NECESARO - RESTABLECER GUNICORN PARA QUE INICIE COMO SERVICIO
DE AHORA EN ADELANTE###

ubuntu@54.162.31.253:~$ sudo systemctl daemon-reload # systemctl termina con la


letra L, no un número
ubuntu@54.162.31.253:~$ sudo systemctl restart gunicorn #reinicia gunicorn
ubuntu@54.162.31.253:~$ sudo systemctl status gunicorn #chequea el status, si
la vista del status no te deja continuar, presiona ctrl+c, no afecta en nada
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
###NGINX - SERVIDOR WEB ULTRA LIGERO Y RAPIDO - CODIGO ABIERTO SE PUEDE USAR HTTP,
PROXY, IMAP,POP & SMPT - ES UNA BOMBA ###
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
ubuntu@54.162.31.253:~$ sudo vim /etc/nginx/sites-available/{{projectName}}
#NUEVAMENTE VIM NOS DA CLASES DE EDICION A LO PRO
#Ahora necesitamos crear
un nuevo archivo para configurar NGINX
***********************************************************************************
**************************************************************************

server {
listen 80;
server_name {{yourEC2.public.ip}}; #cambiala
por localhost
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/{{myRepoName}}; #el nombre
de tu repositorio ojo cuidado no confunda
}
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/{{myRepoName}}/{{projectName}}.sock;
#tal cual primero el repositorio y luego el proyecto django
}
}

***********************************************************************************
**************************************************************************
sudo ln -s /etc/nginx/sites-available/{{projectName}} /etc/nginx/sites-enabled
#esta secuencia hará un nuevo enlace a nginx para reconocer la configuracion
***********************************************************************************
**************************************************************************
###EVITA COMETER ERRORES DE CONFIGURACION AL TENER TODO CLARO EN CUANTO A LOS
LLAMADOS ENTRE ARCHIVOS Y PROGRAMAS### -->YA QUEDA POCO PARA EL EXITO<--
***********************************************************************************
**************************************************************************
sudo nginx -t #comprueba el estado de NGINX, debe estar
correcto la leyenda es muy sencilla, ok, succesful, dirá
***********************************************************************************
**************************************************************************
sudo rm /etc/nginx/sites-enabled/default #este comando remueve con "rm" el
directorio default que tiene sites-enable de NGINX
***********************************************************************************
**************************************************************************
sudo service nginx restart #este comando reinicia el programa y asi
reconozca los cambios generados
***********************************************************************************
**************************************************************************
***********************************************************************************
**************************************************************************
**********CARLOS*******************ROZAS***********************ARAVENA*************
******0071*************FULLSTACK PYTHON***********************************
***********************************************************************************
**************************************************************************
*************************************************ESCRIBE TU IP PUBLICA EN EL
NAVEGADOR***********************************************************************
0=========================LISTO! BRAVISIMO! COLOSAL! ESPLENDOROSO! SUPER
CALIFRAGILISTICO EXPIALIDOSO!
======================================================0

You might also like