Jorge Teixeira Crespo 2º DAM
Creación da nova máquina virtual coa seguinte configuración:
Nome: sxe-ubusrv(a16jorgetc)
SO: Ubuntu (64-bit)
Ubicación: /media/EXTDIURNO/JorgeMVs/
Memoria RAM: 2048 MB
Orden de arranque: Óptico, Disco duro (Importante para poder instalalo sistema)
Almacenamento: - Disco duro: 10 GB Formato: .vdi
- Unidade óptica: ubuntu-18.04.1.0-live-server-amd64.iso
Rede:
- Adaptador en modo NAT (no meu caso con redirección de portos para evitar unha segunda):
- ssh = 10022 -> 22
- Odoo = 18069 -> 8069
- postgres = 15432 -> 5432
No primeiro inicio configuramos o sistema operativo coas seguintes preferencias:
Particións: /dev/sda1 -> / (ext4) [10GB total]
Rede: Configuración automática -> DHCP
Usuario: teixe
Contrasinal: renaido
No meu caso como me conecto dende a máquina host da máquina virtual, e ao redireccionar os portos:
ssh teixe@localhost -p 10022
Para instalar Odoo e postgres utilicei o seguinte script, que actualiza o sistema e instala os paquetes necesarios.
#!/bin/bash
sudo apt update
sudo apt upgrade -y
sudo apt install postgresql -y
wget https://nightly.odoo.com/12.0/nightly/deb/odoo_12.0.latest_all.deb
sudo dpkg -i odoo_12.0.latest_all.deb
sudo apt install -f -y
rm odoo_12.0.latest_all.deb -f
sudo systemctl enable odoo.service
sudo systemctl enable postgresql.service
sudo reboot
Agora imos crear a base de datos para comprobar o acceso dende pgAdmin4 de maneira remota.
Nome da base de datos: DB0
Email: teixetests@gmail.com
Contrasinal: renaido
Idioma: Spanish / Español
País: Spain
E establecemos dende http://localhost:18069/web/database/manager
a contrasinal mestre.
Contrasinal mestre: renaido
Para permitir primeiro que se poida acceder dende calquera equipo, temos que facer varios cambios:
Primeiro:
No arquivo:
/etc/postgresql/10/main/postgresql.conf -> pode variar o 10 dependendo da versión
Cambiamos:
#listen_addresses = 'localhost'
Por:
listen_addresses = '*'
Para facelo nun comando:
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'\t/" postgres.conf
Segundo
No arquivo:
/etc/postgresql/10/main/pg_hba.conf -> pode variar o 10 dependendo da versión
Cambiamos:
host all all 127.0.0.1/32 md5
Por:
host all all 0.0.0.0/0 md5
Para facelo nun comando:
sudo sed -i '0,/127.0.0.1\/32/s//0.0.0.0\/0 /' pg_hba.conf
Por último
Por útlimo temos que cambiar a contrasinal do usuario odoo en postgres para deixalo:
Usuario: odoo
Contrasinal: odoo
Para facelo nun comando:
sudo -u postgres psql -U postgres -d postgres -c "alter user odoo with password 'odoo';"
E reiniciamos o servizo de postgres para que se actualicen todos os cambios:
sudo systemctl restart postgresql
Creación da nova máquina virtual coa seguinte configuración:
Nome: sxe-win10(a16jorgetc)
SO: Windows 10 (64-bit)
Ubicación: /media/EXTDIURNO/JorgeMVs/
Memoria RAM: 2048 MB
Orden de arranque: Óptico, Disco duro (Importante para poder instalalo sistema)
Almacenamento: - Disco duro: 50 GB Formato: .vdi
- Unidade óptica: SW_DVD9_Win_Pro_10_1903_64BIT_Spanish_Pro_Ent_EDU_N_MLF_X22-02936.ISO
Rede:
- Adaptador en modo NAT (no meu caso con redirección de portos para evitar unha segunda):
- Odoo = 28069 -> 8069
Durante a instalación:
Sistema a instalar: Windows 10 Pro Education
Unha soa partición na que se instala o sistema.
Usuario local: teixe
Contrasinal: root
E despois todo a non, que isto é Windows ;)
Unha vez entramos no escritorio por primeira vez, inserimos o CD das 'Guest Additions', instalamos e reiniciamos.
Unha vez reiniciado, creamos unha carpeta compartida coa a máquina, a miña configuración é:
Ruta: /media/EXTDIURNO/JorgeMVs/shared
Nome: shared
Automontar: Si
Permanente: Si
Descargamos o instalador de Odoo 12 dende:
https://download.odoocdn.com/12.0/nightly/exe/odoo_12.0.latest.exe
Ao abrir avisa de risco, nós executamos de todas formas. Unha vez aberto o instalador:
Tipo de instalación: All In One, seleccionando Odoo e PostgreSQL
Host: localhost
Porto: 5432
Usuario: openpg
Contrasinal: openpgpwd
Para poder conectarse remotamente imos a Firewall de Windows e creamos nova regra de entrada:
Tipo: Porto
Porto: 8069
Permitir a conexión.
Dominio, privado e público.
Nome: Acceso a Odoo
E neste momento xa permite a conexión remota.
Imos crear a base de datos para logo comprobala conexión dende pgAdmin4 coa seguinte configuración:
Nome da base de datos: DB0
Email: teixetests@gmail.com
Contrasinal: renaido
Idioma: Spanish / Español
País: Spain
E establecemos dende http://localhost:28069/web/database/manager
a contrasinal mestre.
Contrasinal mestre: renaido
Descargamos dende o seguinte enlace o instalador de pgAdmin4:
https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.15/windows/pgadmin4-4.15-x86.exe
Este instalador non é mais que seguinte, seguinte, seguinte.
Ao finalizar abre automáticamente no navegador e pide unha contrasinal mestre: renaido
no meu caso.
E para conectarse, utilizamos a contrasinal do instalador de Odoo: openpgpwd
.
Crear a seguinte estrutura de ficheiros e directorios:
.
├── addons
├── config
└── docker-compose.yml
E o contido do ficheiro docker-compose.yml é o seguinte:
version: '2'
services:
web:
image: odoo:12.0
depends_on:
- db
ports:
- "38069:8069"
volumes:
- odoo-web-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
environment:
- DB_USER=odoo
- DB_PASS=odoo
- DB_NAME=odoo
- DB_HOST=192.168.4.1:35432
db:
image: postgres:10
ports:
- "35432:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data/pgdata
pgadmin4:
image: thajeztah/pgadmin4
container_name: pgadmin4
ports:
- "35050:5050"
volumes:
- pgadmin4-data:/pgadmin
volumes:
odoo-web-data:
odoo-db-data:
pgadmin4-data:
O único cambio no ficheiro será a dirección IP da máquina real/host na que estas traballando, no meu caso 192.168.4.1
. No meu caso, poño sempre un 3 diante de todos os portos xa que así aseguro que non entra en conflito co que teña instalado na máquina real ou outras máquinas.
Unha vez creada esta configuración previa iniciamos por primeira vez os co seguinte comando dende o directorio no que está o arquivo de configuración:
sudo docker-compose up
Unha vez que podamos acceder dende o navegador a Odoo e pgAdmin4, configuramos a conexión en pgAdmin4 a base de datos da seguinte maneira:
Host: 192.168.4.1 -> a IP que cadre dependendo do equipo.
Porto: 35432
Usuario: odoo
Contrasinal: odoo
Dende Odoo configuramos a base de datos cos seguintes datos:
Nome da base de datos: DB0
Email: teixetests@gmail.com
Contrasinal: renaido
Idioma: Spanish / Español
País: Spain
E establecemos dende http://localhost:38069/web/database/manager
a contrasinal mestre.
Contrasinal mestre: renaido
E agora paramos os containers con Control + C
.
Despois de inicialo por primeira vez e de configurar o contrasinal mestre, créase o arquivo odoo.conf
.
.
├── addons
├── config
│ └── odoo.conf
└── docker-compose.yml
O contido do arquivo será algo similar a este:
[options]
addons_path = /usr/lib/python3/dist-packages/odoo/addons
admin_passwd = ##################################################
csv_internal_sep = ,
data_dir = /var/lib/odoo/.local/share/Odoo
db_host = db
db_maxconn = 64
db_name = False
db_password = odoo
db_port = 5432
db_sslmode = prefer
db_template = template0
db_user = odoo
dbfilter =
demo = {}
email_from = False
geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb
http_enable = True
http_interface =
http_port = 8069
import_partial =
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
limit_time_real_cron = -1
list_db = True
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = info
logfile = None
logrotate = False
longpolling_port = 8072
max_cron_threads = 2
osv_memory_age_limit = 1.0
osv_memory_count_limit = False
pg_path = None
pidfile = None
proxy_mode = False
reportgz = False
server_wide_modules = base,web
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
syslog = False
test_enable = False
test_file = False
test_tags = None
translate_modules = ['all']
unaccent = False
without_demo = False
workers = 0
O único cambio que temos que facer aquí e engadir na lina de addons_path a ruta que montamos no docker-compose para engadir os nosos, e comentamos as liñas coas variables que xa engadimos no docker-compose. Co que quedaría así:
[options]
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons
admin_passwd = ##################################################
csv_internal_sep = ,
data_dir = /var/lib/odoo/.local/share/Odoo
;db_host = db
db_maxconn = 64
;db_name = False
;db_password = odoo
;db_port = 5432
db_sslmode = prefer
db_template = template0
;db_user = odoo
dbfilter =
demo = {}
email_from = False
geoip_database = /usr/share/GeoIP/GeoLite2-City.mmdb
http_enable = True
http_interface =
http_port = 8069
import_partial =
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 60
limit_time_real = 120
limit_time_real_cron = -1
list_db = True
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = info
logfile = None
logrotate = False
longpolling_port = 8072
max_cron_threads = 2
osv_memory_age_limit = 1.0
osv_memory_count_limit = False
pg_path = None
pidfile = None
proxy_mode = False
reportgz = False
server_wide_modules = base,web
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
syslog = False
test_enable = False
test_file = False
test_tags = None
translate_modules = ['all']
unaccent = False
without_demo = False
workers = 0
Agora xa temos toda a configuración terminada. Imos a iniciar de novo os containers co seguinte comando:
sudo docker-compose start
Outros comandos útiles para o futuro:
Borrar os containers e os volumes:
sudo docker-compose down -v
Para ver os logs do que pasou:
sudo docker-compose logs
Ver os containers iniciados:
sudo docker ps