El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

odoo en centos7

| Comments

Odoo, el sucesor de openerp; un software muy versátil, con funcionalidades para manejar cualquier negocio (ERP). En mi caso; lo uso para manejar facturación y la contabilidad de mi negocio. Recién me vi obligado a reinstalarlo pero resulta que los .deb están mirando pa debian8, por tanto, decidí instalarlo en centos7. Además estoy cada día más peleado con debian.

Como mi laptop no virtualiza, tengo centos7 en un contenedor de LXC. Esto me resulta más confiable que docker, ya que he tenido muy malas experiencias linkando el container de postgres con el de odoo. Eso sin contar que systemd no pincha en un container, al menos no sin levantarlo desde el init y privilegiado; tal como funciona LXC. Claro, hacer un script que corra todo en el container sin necesidad de systemd es una solución; pero el hecho de tener múltiples distros corriendo, me resulta más emocionante que los “contenedores”.

Vamos a necesitar unas cuantas cosas del repo EPEL y un servidor de postgresql operacional.

1
2
3
 yum install -y epel-release
 yum update
 yum install -y postgresql-server

Inicializamos el servidor de postgresql

1
2
3
 postgresql-setup initdb
 systemctl start postgresql
 systemctl enable postgresql

Creamos un repositorio para odoo, a mi me quedó así

“/etc/yum.repos.d/odoo.repo”
1
2
3
4
5
6
 [odoo-nightly]
 name=Odoo Nightly repository
 baseurl=http://nightly.odoo.com/10.0/nightly/rpm/
 enabled=1
 gpgcheck=1
 gpgkey=https://nightly.odoo.com/odoo.key

Ahora vamos a la parte más compleja de la película. Resulta que odoo requiere wkhtmltopdf para funcionar y debe machear la versión de odoo con la versión de wkhtml. Para la 9.0, usaremos wkhtmltopdf 0.12. Según advierten en la guía de instalación de odoo, el paquete de wkhtmltopdf que provee centos, no soporta header y footer, así que te dicen que lo descargues del sitio web oficial. Ahí aparece solo un .tar.gz pero siempre hay un rpm escondido abajo de una piedra:

1
2
yum install -y fontconfig libpng libX11 libXext libXrender xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi
rpm -Uvh https://downloads.wkhtmltopdf.org/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

Finalmente, instalamos odoo.

1
2
3
 yum install -y odoo
 systemctl enable odoo
 systemctl start odoo

Si este artículo te resultó interesante, considere donar 0.05 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

yum estrecho

| Comments

Si en algo me destaco, es en mi habilidad por trabajar con espacios estrechos (poca RAM, poco espacio en disco, etc…)

Cuando tenemos un servidor con CentOS, aveces no queremos más de las mil cosas que una completa instalación involucra. Por ejemplo, las páginas de man en una pila de idiomas, el contenido de /usr/share/doc/, etc… Si bien actualmente uso un script para eliminar todo eso, lo cierto es que sería mucho más fácil si nunca se desplegaran esos archivos.

Gracias a yum-config-manager no hay que estar cargando con el fichero de configuración, simplemente se puede hacer un script que setee dichas configuraciones.

Esta es la secuencia de comando que le tiro en un yum virgen:

1
2
3
4
 yum-config-manager --save --setopt assumeyes=true
 yum-config-manager --save --setopt tsflags=nodocs
 yum-config-manager --save --setopt override_install_langs=en
 yum-config-manager --save --setopt clean_requirements_on_remove

Al correr yum-config-manager puedes ver todas las opciones que este brinda. Lo demás sería buscar la documentación.

Si este artículo te resultó interesante, considere donar 0.03 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

LEMP en debian

| Comments

Resulta que “linux, apache, mysql y php”, solía llamarse LAMP. Ahora, cuando cambian apache por ningx le llaman LEMP no se por qué (y no quiero averiguarlo, la moda me enferma).

En debian 9, la rima de php con nignx cambia un poquito. No hay que ser un genio para darse cuento que cosas como php5 ahora son php7, pero como para mi este blog es un sitio donde escribo el código para luego copiar y pegar, pondré como hacerlo en el “debian nuevo”.

Vamos a empezar de atrás pa alante; el MySQL

“instalando sql y compañía”
1
 root@299c0ecdbedc:~# apt install mysql-server

Uno de los cabezazos más grandes que me dí con debian 9 fue la configuración del SQL. Ya no es asistido como antes. Así que vamos a correr un par de comandos.

“configurando mysql”
1
2
 root@299c0ecdbedc:~# mysql_install_db
 root@299c0ecdbedc:~# mysql_secure_installation

Al correr el segundo te saldrán unas cuantas preguntas. Respóndelas a tu gusto y necesidad.

Ahora bien, conectar lo que No sea por el socket, se vuelve una jodienda. Por ejemplo root@localhost suele no estar autorizado; si esto se interpreta como 127.0.0.1

Ejecuta: mysql -u root o con -p si seleccionaste tener password.

Veamos por ejemplo, que creamos el usuario admin para la base de datos misdatos.

“creando «admin»”
1
2
3
4
CREATE DATABASE misdatos;
CREATE USER 'admin'@'%' IDENTIFIED BY 'secretisimo';
GRANT ALL PRIVILEGES ON misdatos.* TO 'admin'@'%';
FLUSH PRIVILEGES;

Si quieres saber los usuarios ejecuta la sentencia:

“ver los usuarios”
1
 SELECT User,Host,Password FROM mysql.user;

Bueno ya tenemos el SQL corriendo. Vamos pal resto

“instalando cosas”
1
apt install nginx mysql-client php-fpm php-mysql libfcgi0ldbl

Una vez que se instale php-fpm lo echamos a andar y lo probamos.

“probando fpm”
1
2
3
root@299c0ecdbedc:~# /etc/init.d/php7.0-fpm restart
root@299c0ecdbedc:~# cgi-fcgi -bind -connect /run/php/php7.0-fpm.sock
Content-type: text/html; charset=UTF-8

Al virtualhost de nginx, le hacemos unos arreglitos; para que nginx tire el php por fastcgi. Que ricura debian, tan solo incluyendo un snippet todo se resuelve.

“/etc/nginx/sites-available/default”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {

        listen 80 default_server;

        root /var/www/html;

        index index.php index.html;

        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        }
}

Reinicia nginx!

Pa probar que todo está pinchando, creamos un script que llame la función phpinfo()

“phpinfo()”
1
2
3
4
 root@299c0ecdbedc:~# /etc/init.d/nginx restart
 root@299c0ecdbedc:~# /etc/init.d/php7.0-fpm restart
 root@299c0ecdbedc:~# /etc/init.d/mysql restart
 root@299c0ecdbedc:~# echo '<?php phpinfo(); ?>' > /var/www/html/index.php

Debes poder ver la típica página que produce phpinfo()

Para probar la base de datos, creas un script de php que inicialice mysqli:

””
1
2
3
4
5
6
7
8
<?php
$misql = mysqli_connect('127.0.0.1', 'admin', 'ok');
if (!$misql) {
        die('esto no pincha: ' . mysqli_error());
}
echo 'Conexion satisfactoria';
mysqli_close($misql);
?>

Puedes correr ese script con php o llamarlo con el navegador. El resultado es bastante obvio.

Si este artículo te resultó interesante, considere donar 0.04 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

repos EPEL y demás

| Comments

CentOS, es conocido por sus reducidos repositorios. Pero por suerte, los repos EPEL (enterprise linux) y el IUS nos permiten bandearnos un poco. Además, tenemos el Remi, tan fresco como explosivo, que si bien no es muy recomendable usarlo, nunca está de más tenerlo a mano. Si algo tiene lindo yum es la gestión de repositorios.

Instala wget… vamos a necesitarlo.

Para los criticones: -sí, ya se que el epel está en el repo oficial, pero para este ejemplo lo añadiremos desde la web.

“añadiendo el EPEL”
1
2
 wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 rpm -Uvh epel-release-latest-7*.rpm

El IUS es majomenos la misma historia

“añadiendo el IUS
1
2
 wget https://centos7.iuscommunity.org/ius-release.rpm
 rpm -Uvh ius-release*.rpm

El repo IUS, suele contener paquetes más recientes de cosas que ya centos trae. La mejor manera de instalar esto, es usando un plugin de yum, llamado «replace», así que instala el paquete yum-plugin-replace.

Ahora busca el paquete que deseeas en el repo IUS:

“buscando en el IUS”
1
 yum --disablerepo="*" --enablerepo="ius" search talcosa

Luego remplaza el paquete talcosa de CentOS, por el talcosa3u de IUS

“remplazando paquete”
1
 yum replace talcosa --replace-with talcosa3u

Para más detalles, échale un vistazo a el user-guide de IUS

El repositorio Remi es aún más peligroso, ya que los paquetes tienen el mismo nombre que el de los oficiales. Se recomienda no tener el repo remi activado NI JUGANDO.

La instalación es la misma rutina

“instalando Remi”
1
2
 wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
 rpm -Uvh remi-release-7*.rpm

Otro repo bueno, es el de alcancelibre, que provee sarg.

“alcancelibre”
1
2
wget -N http://www.alcancelibre.org/al/server/AL-Server.repo \
-O /etc/yum.repos.d/AL-Server.repo

Luego usamos el mismo proceder, buscar en repo específico.

“buscando paquetes”
1
2
yum --enablerepo=remi search fulanito
yum --enablerepo=remi install fulanito

El comando repolist permite ver los repositorios en juego. Para ver los repos que tienes acoplados, usa yum repolist. Si quieres ver que repo tienes deshabilitados, usa yum repolist disabled.

Si este artículo te resultó interesante, considere donar 0.03 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

knockd en centos

| Comments

Desafortunadamente, los repositorios oficiales de centos no traen port-knocking. No queda más remiendo que usar un repo de terceros.

“/etc/yum.repos.d/nux-misc.repo”
1
2
3
4
5
6
7
 [root@proxy ~]# cat /etc/yum.repos.d/nux-misc.repo
 [nux-misc]
 name=Nux Misc
 baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/
 enabled=0
 gpgcheck=1
 gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

Luego para instalar, declaramos dicho repositorio como activo.

1
2
 yum --enablerepo=nux-misc install knock knock-server
 systemctl enable knockd

En mi caso, el /etc/knockd.conf me quedó así:

“/etc/knockd.conf”
1
2
3
4
5
6
7
8
9
10
11
 [options]
   UseSyslog
   Interface = eth1

 [abreme]
   sequence = 111,222,333
   tcpflags = syn
   seq_timeout = 15
   cmd_timeout = 8600
   start_command = /sbin/iptables -I INPUT -s %IP% -j ACCEPT
   stop_command =  /sbin/iptables -D INPUT -s %IP% -j ACCEPT

Nota para imbéciles: Cambia sequence por tu secuencia.

Si este artículo te resultó interesante, considere donar 0.08 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

Apps islámicas android

| Comments

Si queremos decir una aplicación islámica de android bien completa, la que más se acerca es sin duda es “MuslimPro”. Por tener, tiene hasta los 99 nombres de dios, recitados con un corito de lo más lindo. Sin embargo, cosas sensillas como cambiar el adhan, se vuelven complicadas. Si no te cuadran los 3 adhan que trae, te jodiste, por que lo más bonitos son para la versión de pago.

"portada de Muslim Daily, note como falta la sesión de noticias"

En mi opinión, el adhan debe sonar más enérgico de día, pero el adhan de Isha’a, lo prefiero pasivo. Por ello, recomiendo más usar Muslim Daily. Antes contaba con una sesión de noticias muy interesante, que se adaptaba a tu gusto como por arte de magia. No se por qué se la quitaron. También tiene la Qibla y un calendario islámico bastante poco funcional por cierto; me costó trabajo entender como conmutar las fechas.

Entre los 9 adhan que ofrece, tenemos el Adhan Nasse Al Qatmi muy apropiado para Isha’a, suena bastante sereno.

El corán que esta aplicación provee en español es la traducción de Cortés; una gran porquería en mi opinión. Pero de igual, si de coranes se trata, prefiero El noble corán Este cuenta con una buena gama de recitaciones en audio para todos los gustos. Además, el texto en los tres idiomas.

"«la apuertura» mostrando texto arábico, transliteración y traducción"

Recuerda, que mientras la app esté mostrando el texto en árabe, será entonces entonces un corán (no una traducción) y debes tener en cuenta el respeto que esto amerita; así que nada de leer en el baño. También tiene gestor de aleyas favoritas y permite añadirle notas.

"transcripción a alfabeto de chat"

Pero lo que más me gusta es que tiene una transliteración escrita fonéticamente con árabe de chat.

Por si no lo sabes, esta es una manera de leer árabe con alfabeto latino. Es la mejor transliteración, ya que fue creada por los árabes de manera espontanea. En vez de valerse de dígrafos para representar las consonantes; usan simplemente números. Por ejemplo, ayn (ع) es el 3 y la ha gutural (ح) con el 7. Además, las vocales entre paréntesis, representan las vocales casi inaudibles que acompañan de manera implícita a una consonante, como la «i» de la mim (م).

Por último, una aplicación de plegarias. Nada mal para afinar la fonética; la aplicación 34 Duaas.

Conclusión, el corán transliterado con árabe de chat de com.chaks.quran, es un batazo y los adhanes de com.honey.prayerassistant son más variados.

Si este artículo te resultó interesante, considere donar 0.03 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU