OpenERP 7 en Docker con jasper report y python 2.7 cuando pip ya no anda más
Estas notas son para contar la aventura LOCA de montar un servidor viejo de OpenERP 7 en el año 2023. (funciono perfecto en un server por 10 años)
Primero hay que decir que esta versión anda en python 2.7 que hoy ya se dejo de ser soportardo y tiene problemas con instalación de librerías con pip necesarias. ¡ uuuuuuuuu !… si, primer luz roja.
Por esta razón decidí usar la versión docker del servidor (que ya sabemos que anda) y desde ahí montar el código fuente. (no se hasta cuando va a funcionar o se va a encontrar… trabajito extra: hacer copia por las dudas que desaparezca)
También quiero poder modificar el código así que necesito instalar el fuente o que ande el fuente en el docker de alguna forma.
En su momento usé JasperReport para la generación de reportes. Se instalaba un server de reportes (creo que usaba apache y tomcat server)….uffffff!
Debe ser por estas cosas que se privilegia actualizar la versión ANTES de hacer las modificaciones.
Logre generar un banco de trabajo con Docker y poder hacer modificaciones, incluso modificar codigo andando… asi que es posible.
Lo bueno de utilizar docker es que es replicable y estable.
Ahora empieza la aventura de importar los datos y actualizar versiones.
Si te sirvió este apunte y quieres invitarme un café o una refrezco puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.
Configurar un redireccionamiento dinamico de dns (DynamicDNS) en Ubuntu 16.04 18.04 con ddclient
Asumo que ya sabe lo que es un redireccionamiento dinamico de dns y que tiene una cuenta en algun servidor ya funcionando y tiene 4 datos a mano… usuario, pass, su dominio dinamico y el lugar donde alctualizara sus datos. Suponemos un dominio gratuito en NoIP. Tampoco entraremos en profundidad solo lo haremos funcionar.
$ sudo apt install ddclient
Si quiere puede seguir el wizard de configuracion que ya trae el programa por default donde le pedira que configore sus datos de ingreso pero nosotros lo haremos a mano asi que TODO ENTER hasta que se cierre.
$ sudo nano /etc/ddclient.conf
use=web ssl=yes protocol=noip login="USERNAME" password="PASSWORD" "YOUR_HOSTNAME"
NOTA: en este caso que usamos NoIP no necesitamos poner el servidor pero en cualquier otro si.
Si tiene otro servidor puede usar el protocol=dyndns2
en conjunto con
protocol=dyndns2
server=members.dyndns.org
web=checkip.dyndns.com/
web-skip='Current IP Address: '
Prueba tu configuración
$ sudo ddclient -daemon=0 -debug -verbose -noquiet
Ahora configuramos el servicio
$ echo 'run_daemon="true"' | sudo tee -a /etc/default/ddclient
$ sudo service ddclient restart
$ journalctl -u ddclient.service ... systemd[1]: Started LSB: Update dynamic domain name service entries. ddclient[24631]: SUCCESS: updating MY_HOST.redirectme.net: good: IP address set to 118.X.Y.Z
NOTA: Ctrl-Z para salir del comando anterior
Si en algun momento te da error relacionado con el cache puedes resolverlo así:
$ sudo rm /var/cache/ddclient/ddclient.cache
$ sudo service ddclient restart
Si te sirvió este apunte y quieres invitarme una café, gaseosa o agua, puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.
Weblografía
Configurar el email (correo electrónico) del servidor UBUNTU 18.04 para que nos notifique via el servidor de correo de GMAIL
En este articulo NO profundizaremos solo lo haremos funcionar.
$ sudo apt-get install ssmtp
$ sudo pico /etc/ssmtp/ssmtp.conf root=username@gmail.com mailhub=smtp.gmail.com:587 rewriteDomain= hostname=fileserver.local UseSTARTTLS=YES AuthUser=username AuthPass=password FromLineOverride=YES
NOTA: cambiar username@gmail.com por el que corresponda
ahora creamos la lista de destinatarios
$ sudo pico /etc/ssmtp/revaliases root:username@gmail.com:smtp.gmail.com:587 youruser:username@gmail.com:smtp.gmail.com:587
NOTA: cambiar username@gmail.com por el que corresponda y youruser por su usuario correspondiente
Si te sirvió este apunte y quieres invitarme una gaseosa puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.
Crear un RAID1 de una partición BTRFS con datos y una nueva en Ubuntu 18.04
De tan sencillo, complica. Este articulo lo hago para recordar y ayudar a aquellos -que como yo- perdieron un buen rato de su vida por algo simple.
Partimos teniendo un disco andando y ahora agrego otro para hacer una partición BTRFS en espejo en RAID1. En mi caso es el /home que está en sdb6. El disco que agrego tiene una particion del mismo tamaño en sda6.
Un requisito indispensable es que tengan el UUID de disco distintos. Los vemos haciendo:
$ sudo blkid ... /dev/sda6: UUID="e12c98df-7c8e-4f50-be39-e208597f71a7" ..... /dev/sdb6: UUID="e12c98df-7c8e-4f50-be39-e208597f71a7"
Nota: Si hace copia de las particiones al disco nuevo, el UUID quedaran iguales en las dos y el sistema puede volver inestable.
Si queremos cambiarlo, primero generamos uno nuevo:
$ sudo uuidgen a6a1fc9a-48e5-4cff-82b9-04f0afa925e3
y ahora se lo asignamos a la particion que necesitamos cambiarle… en mi caso la sda6
$ sudo tune2fs -U a6a1fc9a-48e5-4cff-82b9-04f0afa925e3 /dev/sda6
Mi disco con datos (sdb6) está montado en el /home y es un disco con tabla de partición BTRFS al que le puedo agregar discos nuevos «en caliente», haciendo
$ sudo btrfs device add -f /dev/sda6 /home
Nota: el -f es forzar para que si hay datos viejos en la particion nueva la sobreescriba
Pero esto solo agrega mas espacio a esa carpeta y yo quiero que esa partición sea en raid1… entonces ahora convierto ese «arreglo» de discos en raid1
$ sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /home
Esto tarda un rato y terminado, ya estará listo. Podemos ver su estado haciendo
$ sudo btrfs fi show
Si te sirvió este apunte y quieres invitarme una gaseosa puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.
Configurar red desde terminal en Ubuntu 14.04 16.04 18.04 (cableada o wifi)
La propuesta es partir de una instalación limpia de una distro Ubuntu Server amd64 (también sirve para la x86) y configurar la red alámbrica e inalámbrica (wifi).
NOTA: para la version de ubuntu 18.04 es necesario hacer antes que nada:
$ sudo apt install net-tools
Empezamos!. Si hacemos en el terminal
$ ifconfig
lo Link encap:Bucle local
Direc. inet:127.0.0.1 Másc:255.0.0.0
Dirección inet6: ::1/128 Alcance:Anfitrión
ACTIVO BUCLE FUNCIONANDO MTU:65536 Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:0
Bytes RX:0 (0 KB) TX bytes:0 (0 KB)
Esto quiere decir que no están activas las placas de red. Para saber como las designa el sistema hacemos
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group
default qlen 1000
link/ether d8:cb:8a:70:00:00 brd ff:ff:ff:ff:ff:ff
Como vemos «eth1» esta «state DOWN«. Si no aparecen la que queremos es posible que no la reconozca o haya algún problema con ella. Nosotros queremos la cableada eth1 y para activarla basta con
$ sudo ifconfig eth1 up
Si esta conectado el cable de red y tenemos un router que nos da IP con un DHCP, le pedimos una haciendo
$ sudo dhclient eth1
Para verificar hacer
$ ifconfig
Esta configuración desaparece si reiniciamos el servidor. Para que sea automático este proceso hay que hacer:
$ sudo pico /etc/network/interfaces
Agregamos (eth1 es la mía, fíjese cual corresponde a usted)
## IP Automatica
auto eth1
iface eth1 inet dhcp
Si es una dirección estática, en vez de lo anterior hay que indicar la dirección fija que es necesaria. Un ejemplo sería:
## IP Estatica
auto eth1
iface eth1 inet static
address 192.168.1.14
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
dns-nameservers 192.168.1.1 8.8.8.8
# el 8.8.8.8 es un servidor de nombre gratuito de google y es opcional
Para verificar que funciona
$ sudo /etc/init.d/networking restart
$ ifconfig
Inalambrica o WIFI
Gracias a Gabriel que compartió en los comentarios la configuración para una placa wifi que se configura igual a excepción de la parte de conexion. Supongamos que nuestra placa esta identificada, en vez de eth1, como wlp1s0 y usamos DHCP para simplificar. Con esto el archivo de configuración quedaría:
# WAN wifi
auto wlp1s0
iface wlp1s0 inet dhcp
wpa-ssid (nombre_red)
wpa-psk (clave_red)
Si te sirvió este apunte y quieres invitarme una gaseosa puede hacerlo pulsa AQUI.
Si en cambio quieres ayudarme a seguir haciendo y juntando apuntes utiles pulsa AQUI.
Agradecimientos por comvidarme una gaseosa (los que me dejaron mencionarlos):
- Antonio Bermudez (Argentina)
- Cathaisa Rivero Quintero (España)
- Hurtado Guillermina (EEUU)
Mas data en:
Network Configuration CommandLine/Automatic
Cambiar disco rigido en un RAID 1 de Ubuntu 14.04
Tengo un array de discos del tipo RAID 1 hecho por soft llamado md0 y necesito cambiar el disco físico «sdb»:
- Hay que marcar el disco que quiero retirar como MALO, de esta manera:
$ sudo mdadm /dev/md0 --fail /dev/sdb1
- Le decimos que vamos a retirar el disco, de esta manera:
$ sudo mdadm --remove /dev/md0 /dev/sdb1
- Apagamos y cambiamos el disco roto
$ sudo shutdown -h now
- Copiando el formato de particiones que tiene el que nos quedo, porque deben ser iguales, así:
ATENCIÓN: Preste especial atención a este comando porque si se equivoca puede borrar todo
$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb
5. Añadimos el nuevo disco al array y comienza el trabajo de reconstrucción
$ sudo mdadm --add /dev/md0 /dev/sdb1
Para ver como se reconstruye hacer:
$ sudo watch cat /proc/mdstat
Para saber cual es el estado del RAID hacer:
$ sudo mdadm --detail /dev/md0
Ahora hay que arreglar el boot:
- Install boot-repair
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update sudo apt-get install -y boot-repair && boot-repair
- Using advanced options in boot-repair I was able to select /dev/md1 as my operating system (this is the RAID where my ubuntu was installed earlier)
- Reboot and select Ubuntu on RAID 1
Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.
Espero que les ayude… un poco mas!
Configurar el firewall ufw para habilitar Samba en Ubuntu
Me encontré que no podía conectar una maquina a mi servidor y resulto ser el firewall. La respuesta fue sencilla, en el terminal hacer:
$ sudo ufw allow Samba
$ sudo ufw allow Cups
Con esto ya vemos la red samba y compartir carpetas he impresoras. Si queremos ver la configuración de firewall hacemos:
$ sudo ufw status verbose
Es conveniente mantener un ojo en que pasa por el firewall así que activo el log así:
$ sudo ufw logging on
Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.
Buena Vida!
Navegar seguro desde cualquier lado haciendo SSH Tunneling (tunel por ssh) a nuestra máquina linux en casa
La idea principal de este post es hacer un tunel por ssh para que me pueda conectar a mi casa, con una conexion encriptada y desde ahí navegar para que no me puedan robar claves, ni ver lo que estoy haciendo. Con este método podría conectarme desde cualquier wifi y comprar en linea, conectarme por messenger despreocupándome de que me estén espiando. Incluso puedes compartirlo de forma segura con tu familia y amigos para que usen tu maquina como auxiliar protector.
Tener en cuenta que esto lo hago en una pc con Ubuntu 12.04 con buenos recursos.
Tenemos que hacer varias cosas. La lista sería:
1) Montar un servidor ssh en casa.
2) Crear un proxy en nuestro servidor.
3) Crear usuario de sistema.
4) Configurar el servidor adecuadamente para que el usuario entre y use el tunel
5) Configurar el navegador (o cualquier programa) para que nos conectemos adecuadamente a internet.
A las armas:
1) Acá hay una explicación de como hacerlo.
2) Acá hay una explicación de como hacerlo.
3) Gracias a un nachopro pude darme cuenta como hacer para que un usuario declarado en nuestro sistema no pueda acceder como usuario y sin embargo, si poder hacer un tunel:
Primero como root creé el archivo /bin/sshlogin:
$ sudo pico /bin/sshlogin
Segundo, le puse lo siguiente:
#!/bin/bash
echo ''
echo ''
echo 'Bienvenido al Túnel SSH, navegue tranquilo ;)'
echo 'Para cerrar la conexión presione Enter'
read
Tercero le di permiso de ejecución:
$ sudo chmod +x /bin/sshlogin
Ahora hay que editar el archivo /etc/passwd y al usuario que querramos asignarle este login le sustituimos su /bin/bash por /bin/sshlogin
Con esto podemos usar dicho usuario para crear SSH Tunneling y compartirlo entre amigos para que usen en conexiones WiFi públicas sin temor a que lean archivos de nuestro sistema.
4) Acá hay una explicación de como hacerlo.
Espero que les sirva. Yo no sabia como podía hacerse hasta que el saber colectivo me lo fue enseñando. Esto solo es un compendio de cosas leídas y algunas experiencias.
Buena Vida!… Happy Haking.
Cómo hacer un servidor GIT propio
Esto lo realice junto a mi amigo Diego Wald en un kubuntu 10.04 y no intenta dar una explicación completa del funcionamiento del GIT. Solo haremos funcionar un servidor y un cliente y los comunicaremos.
GIT se apoya en el uso del ssh, así que previamente debe estar funcionando correctamente en la maquina que contiene los repositorios (en adelante SERVER). Será a la que nos conectaremos para depositar las modificaciones de nuestros programas. El server puede ser la misma maquina donde estamos programando.
Preparacion del SERVER
Empezamos en el SERVER instalando el GIT:
$ sudo apt-get update
$ sudo apt-get install git-core
Ahora agregamos el usuario git:
$ sudo adduser git
y colocamos una clave suficientemente segura y nos aseguramos que la carpeta ssh sea accesible al usuario.
$ sudo mkdir /home/git/.ssh
$ sudo chown -R git:git /home/git/.ssh
Ahora probamos que nos podemos conectar al SERVER por ssh con el usuario git. Recordar que si se tiene la restricción de usuario () en el ssh es necesario agregarle al nuevo git.
$ ssh git@myserver.com
Nota: si el servidor ssh esta «escuchando» en otro puerto distinto del 22 (ejemplo: 123) usar opción «
-p 123
«.
Si estamos usando nuestra propia maquina myserver.com seria la ip 127.0.0.1. Logrado ésto (y sin salir del ssh) creamos una carpeta e inicializamos un repositorio en ella.
$ mkdir mi_proyecto
$ cd !$
$ git --bare init
Ahora podemos cerrar el ssh con:
$ exit
Preparación del CLIENTE
En la maquina CLIENTE instalamos el git
$ sudo apt-get update
$ sudo apt-get install git
Le indicamos a GIT quien soy
$ git config --global user.name "Nombre y Apellido"
$ git config --global user.email "mi_email@algo.com"
Algunos parámetros útiles para el modo texto pueden ser:
$ git config --global color.status auto
$ git config --global color.branch auto
$ git config --global color.diff auto
$ git config --global color.interactive auto
Nos paramos donde queremos poner nuestros proyectos
$ md mi_codigo
$ cd !$
Partimos de la base que no tenemos nada de código hecho aun. Entonces clonamos el contenido del servidor que aun esta vacío.
$ git clone git@127.0.0.1:mi_proyecto
Esto inicializa un git en esa carpeta y trae los datos del servidor. En caso de que el SERVIDOR tenga el ssh escuchando en el puerto 522 en ves del que viene por defecto (22) se debe hacer:
$ git clone ssh://git@127.0.0.1:522/~/mi_proyecto
con esto nos crea la carpeta mi_proyecto dentro de mi_codigo con lo necesario.
Agregar modificaciones al repositorio
Continuando con el ejemplo, supongamos que copiamos dentro de mi_proyecto unos archivos que ya tenemos y nos paramos dentro. En este punto le tenemos que indicar al git que prepare estos para mandarlos al repo y nos pedirá que pongamos una descripción de la modificación.
$ git add .
$ git commit "Subo mi código con este comentario"
Y ahora le decimos que lo mande al repositorio.
$ git push origin master
Y asi finalmente habremos enviado los datos al SERVIDOR desde el CLIENTE.
Es conveniente trabajar con ramas distinta a nuestro código maestro funcional. Cuando agregamos funcionalidades es conveniente usar una rama experimental de nuestro código hasta el momento que estemos decidido que esta nueva versión pasará a ser la master. Recomiendo que leas éste artículo.
Traer ultima versión desde el servidor
Primero nos tendremos que situar dento de la carpeta que tiene el .git (en este caso mi_proyecto) y hacer:
$ git pull
Ignorando archivos
Se le puede decir al GIT que ignore algunos archivos, creando un archivo llamado .gitignore dentro de la carpeta del proyecto (continuando con los ejemplos sería mi_proyecto). Dentro de éste archivo se puede poner nombres explícitos de archivos o alguna mascara. Un ejemplo del contenido puede ser (tomado de ACA):
#python specific
*.pyc
## generic files to ignore
*~
*.lock
*.DS_Store
*.swp
*.out
## archivos específicos
borrame.caca
Después de agregar el archivo hacer (Tomado de ACA y de ACA):
$ git rm -r --cached .
$ git add .
$ git commit -m "Ignoro los archivo declarados en .gitignore"
Ahora puedes ayudarme a continuar para hacer y juntar apuntes utiles: Pulsa AQUI para dar una DONACION simple.
CONCLUSION
Es muy importante conocer bastante bien el funcionamiento de ssh para que podamos hacer funcionar correctamente el GIT.
QUIERO SABER MAS
1) Como usar GIT diariamente
2) Que dice Wikipedia sobre GIT
3) Manual oficial de GIT completo (en ingles)
Buen viaje y Buena Vida!