Tag Archive | Servidor

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»:

  1. Hay que marcar el disco que quiero retirar como MALO, de esta manera:
    $ sudo mdadm /dev/md0 --fail /dev/sdb1
  2. Le decimos que vamos a retirar el disco, de esta manera:
    $ sudo mdadm --remove /dev/md0 /dev/sdb1
  3. Apagamos y cambiamos el disco roto
    $ sudo shutdown -h now
  4. 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!