Script instalador dependencias de Odoo

Existen ciertas dependencias que requiere Odoo para trabajar o para ser instalado en un servidor, si estamos usando una distribución basada en Debian, unas dependencias están en repositorios de la distribución Linux otras en repositorios propios de python.

A veces se torna un tanto engorroso instalar o saber cuáles son todas y siempre ha de faltar alguna, así que les comparto un pequeño script hecho en python que instala todas las dependencias tanto las de repositorios Debian como las de repositorios python.

#!/usr/bin/env python

import os, re, sys

paqrepdeb = “python3-babel python3-gevent python3-html2text python3-lxml python3-mako python3-mock python3-ofxparse python3-passlib python3-psutil python3-psycopg2 python3-pydot python3-pyparsing python3-pypdf2 python3-reportlab python3-serial python3-tz python3-usb python3-vatnumber python3-werkzeug python3-xlsxwriter node-less python3-suds python3-pip python-cryptography python-crypto python3-dateutil python3-decorator python3-docutils python3-feedparser python3-jinja2 python3-pil python3-yaml python-pip postgresql-client apache2 python-openssl python-m2crypto libssl-dev libffi-dev rsync xvfb bash-completion python3-xlrd”

os.system(‘aptitude update’)
os.system(‘aptitude -yr install ‘+paqrepdeb)

paqreppip = [‘xlwt’,’PyPDF2′,’phonenumbers’,’pyOpenSSL’,’setuptools’,’cryptography’,
    ‘cffi’,’six’,’pycparser’,’client’,’num2words’,’flanker’,’xlrd’]

# Actualiza dependencias
for i in paqreppip:
    os.system(‘pip3 install –upgrade ‘+i)

Importante, en el caso de las dependencias desde repositorio Debian, se debe agregar la última versión de PostgreSQL, que también lo requiere Odoo.

Luego es hacer ejecutable el archivo y usarlo como usuario root:

./instala-paquetes.py

Para tener funciones de impresión PDF en Odoo, hasta la fecha solo se ha usado una versión específica del wkhtmltopdf, es la 0.12.1, y para ello se descarga desde su sitio oficial. Pero este paquete requiere de tres dependencias específicas también, que son:

Estas se instalan de la manera tradicional con dpkg.

Advertisements
Posted in Odoo, OpenERP, Python, Recomendación | Leave a comment

Editores para programar con python

Python es un lenguaje de programación muy práctico y según sus creadores, fácil de aprender. De hecho fue diseñado con la intención de facilitar a la persona un aprendizaje mucho más rápido.

Pero ¿Dónde escribo python? Python tiene su propia shell de interpretación del lenguaje, allí se puede correr y probar ciertas instrucciones, también desde cualquier editor de texto simple.

Particularmente uso Gedit con algunos snippets y plugins exclusivos para el editor, es un editor de texto plano del entorno gráfico Gnome. Sin embargo, cualquier editor funciona y de los más populares podría mencionar:

Para cada quien un editor a elegir, así muchos más. Lo importante es seguir la sintaxis del lenguaje y sus normas.

Posted in Python | Leave a comment

Conexión de lámparas (AC)

Hace poco observando la lámpara de mi habitación, noté que hace un parpadeo mientras está apagada, es probable que quien hizo la instalación, conectó en serie el switch en el cable neutro y no en la línea de alimentación.

En la conexión para la alimentación de una lámpara de 120 VAC, el interruptor o switch debe estar en el lado de la línea o fase de alimentación, por ejemplo:

circuitos_lamparas

Esto garantiza que no permanezca el flujo eléctrico a través de la lámpara.

Por ejemplo, en el caso de una lámpara 240 VAC, como se alimenta de dos fases, ambas tendrían que estar interrumpidas, es decir, el interruptor o switch debería ser doble, por ejemplo:

circuitos_lamparas_2

Debido a que ambos cables transmiten tensión y es recomendable cortar el paso en ambos.

Posted in Electricidad | Leave a comment

Temas de apariencia en LibreOffice

Por cuestiones de vista, siempre mantengo casi todas las herramientas informáticas con un fondo oscuro, en el caso de LibreOffice no había tenido necesidad o no había tenido la disposición de buscar cómo cambiar su tema y el fondo.

Acá dejo una pequeña muestra de cómo lo tengo actualmente:

01_libreoffice

Para cambiar el tema, es decir, iconos, apariencia de barras, entre otras cosas, se realiza desde el menú Tools y en Options…

04_libreoffice

Luego, para cambiar la apariencia, sería en la función View con una vista parecida a la siguiente:

02_libreoffice

Para cambiar los colores de manera independiente, sería en Apparence, en una vista parecida a la siguiente:

03_libreoffice

Es cuestión de jugar con las combinaciones de colores de acuerdo a los gustos y necesidades.

Posted in Linux, Ofimática, Recomendación | Leave a comment

A start job is running for LSB: Raise network interfaces

Hace poco tuve este mensaje y fue nuevo para mí. El caso más raro está en que no prosigue el arranque del sistema operativo, en este caso Debian, allí queda y ni con un ctrl+c se logra saltar el mensaje, puede durar por horas allí esperando.

Inicialmente pensé que pudiera ser por la falta de conexión en una de las tarjetas de red, que era mi caso, la eth0 del servidor no tenía conexión, aún así, conectando el cable, nada hizo que prosiguiera el arranque.

Usé un LiveCD de Gparted para levantar el sistema y revisar varias cosas de configuración, todo en teoría estaba bien. Hasta que navegando conseguí dentro de un foro la solución factible del problema.

Y la forma más práctica que conseguí para acomodar el problema, fue crear un directorio nuevo en la ruta /etc/systemd/system de la siguiente forma, como root:

mkdir /etc/systemd/system/networking.service.d

Posteriormente creé un archivo dentro de ese nuevo directorio que lo llamé reduce-timeout.conf con el siguiente contenido:

[Service]
TimeoutStartSec=15

Finalmente concedí permisos de ejecución a dicho archivo, reinicié y funcionó sin problemas.

Posted in Debian, Linux | Leave a comment

Enlace VPN con OpenVPN

OpenVPN es uno de los servicios por excelencia para interconectar dos segmentos de red diferentes, una vez más manipulo una conexión vía Internet con dicho servicio y esta vez lo hice de manera sencilla, gracias a la propuesta dispuesta aquí.

El caso es que tengo dos segmentos de red en dos espacios físicos distantes, cada sitio tiene una conexión vía Internet a través de un módem. Ejemplo de lo que hice sobre un sistema operativo Debian:

Sitio A

Archivo de configuración: /etc/network/if-up/vpn-servidor1

Contenido:

#!/bin/bash

openvpn --remote servidor2.ddns.net --dev tun1 --ifconfig 10.0.0.1 10.0.0.2 --float
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.0.1 tun1

exit 0

Sitio B

Archivo de configuración: /etc/network/if-up/vpn-servidor2

Contenido:

#!/bin/bash

openvpn --remote servidor1.ddns.net --dev tun1 --ifconfig 10.0.0.2 10.0.0.1 --float
route add -net 10.0.2.0 netmask 255.255.255.0 gw 10.0.0.2 tun1

exit 0

Una vez que el servicio de red se levanta durante el inicio del sistema operativo, se cargan ambos archivos en sus respectivos servidores con permisos de ejecución.

El contenido del archivo lo que hace básicamente es con el comando openvpn activa ciertos parámetros de la siguiente manera:

  • remote; indica el segmento o dominio remoto hacia donde se desea conectar Sitio A.
  • dev; indica la interfaz que hará el túnel de conexión, en este caso tun1.
  • ifconfig; se le asigna dirección IP local de la interfaz túnel y la dirección IP remota de la interfaz túnel remota.
  • float; permite que OpenVPN acepte a cualquier dirección IP que viene de la interfaz túnel del segmento no solo del dominio o segmento especificado en el parámetro –remote

Con el comando route canaliza peticiones del segmento de red local hacia el segmento de red remoto. Este tipo de conexión, también puede ser usado con llaves seguras y certificados, con la intención de pasar la información más segura, así como está, toda la información viaja de manera trasparente.

Posted in Debian, VPN | Leave a comment

Configuración de servicio DHCP con dos VLAN

Recientemente, tuve la oportunidad de configurar un servidor DHCP para dos segmentos diferentes de red sobre dos VLAN diferentes con la intención de separar la red de datos de la intranet de la empresa y la red de datos de posibles invitados. Todo sobre sistema operativo GNU/Linux Debian.

Antes que nada, configuré las interfaces de red. El archivo de configuración para las interfaces de red en el servidor, está ubicado en la siguiente ruta absoluta:

/etc/network/interfaces

El servidor DHCP contiene dos interfaces de red, una está destinada para la red de datos de los empleados e invitados, la configuración de dicha interfaz de red la desglosé de la siguiente manera al final del archivo interfaces:

auto eth1
iface eth1 inet static
	address 10.0.4.1
	netmask 255.255.255.0

auto eth1.1
iface eth1.1 inet static
	address 192.168.4.1
	netmask 255.255.255.0
	vlan-raw-device eth1

Donde hace referencia a una dirección IP estática y una determinada máscara de red, la interfaz base y física es eth1 y trabaja por defecto sobre una VLAN 0, la interfaz para la VLAN 1 es la interfaz eth1.1, el .1 es una marca que se hace para que se despliegue sobre una VLAN que también será la número 1.

Una vez que se tiene dicho contenido dentro del archivo mencionado, se debe realizar la instalación del programa vlan para que el sistema operativo pueda trabajar sobre diferentes sistemas de VLAN. Como usuario root se realiza de la siguiente manera:

aptitude install vlan

Una vez editado el archivo de configuración para interfaces e instalado el programa vlan se reinicia el servicio de red como usuario root de la siguiente manera:

invoke-rc.d networking restart

Igualmente, cuando se realizan instalaciones de programas que inciden directamente sobre dispositivos físicos como el caso del programa vlan, es mejor reiniciar el sistema operativo.

Servicio DHCP

El acrónimo DHCP significa: Dynamic Host Configuration Protocol. El servicio se encarga de despachar direcciones IP con un determinado segmento de red y máscara de red. La instalación del servicio DHCP se realiza como usuario root de la siguiente manera:

aptitude install isc-dhcp-server
Archivo de configuración

El archivo de configuración que realicé, está conformado por los siguientes datos:

authoritative;
ddns-update-style none;
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
####################################################
# Red de datos para empleados
####################################################
subnet 10.0.4.0 netmask 255.255.255.0 {
	authoritative;
	DHCPD_INTERFACE="eth1";
	range 10.0.4.50 10.0.4.200;
	option domain-name-servers 8.8.8.8, 8.8.4.4; 
	option domain-name "dominio.local";
	option routers 10.0.4.1;
	option broadcast-address 10.0.4.201;
	default-lease-time 600;
	max-lease-time 7200;
}
####################################################
# Red de datos para Invitados
####################################################
subnet 192.168.4.0 netmask 255.255.255.0 {
	authoritative;
	DHCPD_INTERFACE="eth1.1";
	range 192.168.4.50 192.168.4.100;
	option domain-name-servers 8.8.8.8, 8.8.4.4;
	option domain-name "invitado.dominio.local";
	option routers 192.168.4.1;
	option broadcast-address 192.168.4.101;
	default-lease-time 600;
	max-lease-time 7200;
}

Existen dos segmentos de red, un segmento para la red de datos para empleados y otro segmento para una red de datos para invitados. Cada segmento va guiado a través de una interfase de red determinado que se declara en el parámetro: DHCPD_INTERFACE=

Administración del servicio de DHCP

El servicio de DHCP puede estar en dos estados: detenido o iniciado. Para iniciar el servicio como usuario root se realiza de la siguiente manera:

invoke-rc.d isc-dhcp-server start

Para detener el servicio se realiza como usuario root de la siguiente manera:

invoke-rc.d isc-dhcp-server stop

Para reiniciar el servicio como usuario root se realiza de la siguiente manera:

invoke-rc.d isc-dhcp-server stop
Mensajes de DHCP en el sistema (logs)

Para visualizar los mensajes del servicio DHCP en el sistema, se puede usar como root la siguiente instrucción:

tail -f /var/log/syslog

Sin embargo, esto proporciona mucha información, porque el archivo syslog es el que recoge y guarda todo los mensajes de los eventos que están ocurriendo dentro del sistema operativo, entonces, para filtrar un poco mejor la información exclusiva del servicio DHCP, como usuario root se puede usar la siguiente instrucción:

tail -f /var/log/syslog | grep -i dhcp

Así solo se muestran en tiempo real, mensajes del servicio DHCP.

Posted in Debian, DHCP, Red | Leave a comment