Blackhold

Arrancar una iso desde grub

Posted on desembre 7th, 2017 by admin

Tengo un servidor que tiene instalado debian, pero quiero instalar el sistema operativo en uno de los RAID que he creado en la controladora, para tener el sistema operativo ahí en lugar del disco duro IDE.
El servidor no me arranca ni los pinchos usb ni tampoco un cd con una lectora de CDs externa y no puedo instalar el sistema operativo directamente a los discos que están en el RAID, así que sólo me queda arrancar el cd de instalación desde grub.

Para ello vamos a editar el fichero /etc/grub/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "debian" {
set isofile="/home/blackhold/firmware-9.2.1-amd64-i386-netinst.iso"
loopback loop (hd0,1)$isofile
echo "Starting $isofile..."
linux (loop)/install.386/vmlinuz
initrd (loop)/install.386/initrd.gz
}

La iso de instalación la tengo almacenada en /home/blackhold. Para mas información de como configurar el grub para otras distribuciones de linux seguid éste link y éste otro.

Y cargamos la configuración a grub

# update-grub

Reiniciamos y nos aparece la opción debian, entramos en ella y ya tendremos nuestra instalación :) para continuar con ella, deberemos tener la lectora de CDs conectada.

En ésta última captura voy a instalar en el RAID el sistema operativo nuevo y voy a dejar el otro indicandole no hacer nada con esta partición, de esta forma siempre voy a tener disponible un sistema operativo en local para hacer la instalación.

Ésto nos podría ser muy útil para reinstalar sistemas preconfigurados y hacer instalaciones OEM. Me queda pendiente hacer un post de como hacer una livecd tuneada.

Instalar software controladora 3ware serie 9000

Posted on desembre 6th, 2017 by admin

Cuando queremos configurar el RAID de un servidor normalmente lo hacemos al arrancar el sistema, pero esto no nos permite saber remotamente si el RAID está correcto o no desde el propio sistema operativo, para ello, es posible instalar un software que se comunique con la controladora y permita realizar acciones con la misma desde terminal.

En mi caso tengo un servidor con dos controladoras raid 3ware serie 9000

# lspci |grep 3ware
00:01.0 RAID bus controller: 3ware Inc 9xxx-series SATA-RAID
00:03.0 RAID bus controller: 3ware Inc 9xxx-series SATA-RAID

El paquete que tendremos que instalar se llama tw-cli, y tendremos que añadir repositorios adicionales para poder instalarlo. hwraid contiene otro software de otras controladoras RAID

# vi /etc/apt/sources.list
# software controladora raid
deb http://hwraid.le-vert.net/debian stretch main

# wget -O - https://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | apt-key add -
# apt-get update
# apt-get install tw-cli

En ésta página web encontramos información addicional y de funcionamiento sobre tw-cli

Algunos de los comandos básicos son:

Ver las controladoras disponibles

# tw-cli info

Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
------------------------------------------------------------------------
c0    9500S-8      8         8        1       0       1       1      -        
c1    9500S-8      8         7        1       0       1       1      -  

Listar los discos disponibles en una controladora

# tw-cli /c1 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-5    OK             -       -       64K     11175.8   ON     OFF    

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     OK               u0     1.82 TB     3907029168    9WM7VLRJ            
p1     OK               u0     1.82 TB     3907029168    9WM69H87            
p2     OK               u0     1.82 TB     3907029168    9WM7E4QW            
p3     OK               u0     1.82 TB     3907029168    9WM7LBR1            
p4     OK               u0     1.82 TB     3907029168    9WM6HXM5            
p5     OK               u0     1.82 TB     3907029168    9WM7KB2B            
p6     OK               u0     1.82 TB     3907029168    9WM739Y2            
p7     NOT-PRESENT      -      -           -             -

En éste PDF podemos encontrar todos los comandos disponibles

Otro software importante a instalar es 3ware-status

# apt-get install 3ware-status

Que te muestra el estado de las controladoras

# 3ware-status 
-- Controller informations --
-- ID | Model
c0 | 9500S-8
c1 | 9500S-8

-- Arrays informations --
-- ID	Type	Size	Status
c0u0	RAID5	4889G	OK
c1u0	RAID5	11175G	OK

-- Disks informations
-- ID	Model			Status
c0u0p0	ST3750640AS	OK
c0u0p1	ST3750640NS	OK
c0u0p2	ST3750640NS	OK
c0u0p3	ST3750640NS	OK
c0u0p4	ST3750640NS	OK
c0u0p5	ST3750640AS	OK
c0u0p6	ST31000528AS	OK
c0u0p7	ST3750640NS	OK
c1u0p0	ST32000641AS	OK
c1u0p1	ST32000641AS	OK
c1u0p2	ST32000641AS	OK
c1u0p3	ST32000641AS	OK
c1u0p4	ST32000641AS	OK
c1u0p5	ST32000641AS	OK
c1u0p6	ST32000641AS	OK

Y otro es 3dm2 que básicamente es una interfaz web que te permite hacer lo mismo que tw-cli

# apt-get install 3dm2

https://localhost:888

Si queremos acceder a 3dm2 remotamente tendremos que cambiar la configuración en /etc/3dm2/3dm2.conf en éste mismo fichero encontramos el password de administrador y de usuario, además de otras configuraciones.
Nota: he activado remote access y me dice que nanai, así que la opción será acceder mediante un proxyhttp o un tunel ssh.

Más información

Nextant: Indexador de ficheros de nextcloud

Posted on desembre 5th, 2017 by admin

Una vez instalado Nextcloud vemos que la interfaz cambia un poco además de que tenemos un montón de aplicaciones disponibles que no teníamos con owncloud.

En antaño había instalado una aplicación para indexar el contenido que hay dentro de los ficheros almacenados en el cloud, pero a partir de alguna de las actualizaciones de owncloud dejó de funcionar, traté de identificar el bug y solucionarlo, pero la cosa se quedó al aire y fuera de mis capacidades, así que simplemente desactivé dicha aplicación. Ahora con Nextcloud vuelve a aparecer una herramienta, basada en solr/java para indexar el contenido de los ficheros. El solr es un viejo conocido (monstruo) en Alfresco, así que vamos a ver como trabaja en la instancia de cloud que tengo en funcionamiento, mucho mas cargada de ficheros y documentación que la que tenía inicialmente en Alfresco… también los años van pasando…

Vamos a ver pues como instalar Nextant

Solr
Primero tendremos que instalar solr como servicio, para ello tendremos que instalar primero java y después solr.

Mi primera pregunta, ¿cuál java? ¿el SE, JRE, JDK? el JDK.

Lo guardamos en /opt por ejemplo y lo descomprimimos, a continuación creamos un link simbólico en alguno de los directorios de ejecución (mirar printenv para ver cuales son)

# cd /opt
# tar xvzf jdk-9.0.1_linux-x64_bin.tar.gz
# cd /usr/local/bin
# ln -s /opt/jdk-9.0.1/bin/java .

Comprobamos que java nos aparece como un programa escribiendo directamente en la terminal java –version

# java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

Siguiente paso descargar solr también en opt e instalarlo. Importante, nextant sólo es compatible con solr6, así que en ésta url encontraremos todas las versiones disponibles de solr.

# cd /opt
# wget -c http://archive.apache.org/dist/lucene/solr/6.6.2/solr-6.6.2.tgz
# tar xvzf solr-6.6.2.tgz
# cd solr-6.6.2/bin
# ./solr-6.6.2/bin/install_solr_service.sh solr-6.6.2.tgz

Nos fijamos si nos suelta algún error y si es que si, miramos de solucionarlo.

Ahora vamos a securizar solr, en principio el solr sólo lo va a usar nextcloud, así que sólo le dejaremos a nextcloud acceder a solr, para ello modificamos el fichero /opt/solr/server/etc/jetty-http.xml y cambiamos el contenido de la línea 36.

# vi /opt/solr/server/etc/jetty-http.xml
 < Set name="host" > < Property name="jetty.host" 
POR
 < Set name="host" > < Property name="jetty.host" default="127.0.0.1" 

Y reiniciamos solr

# service solr restart

Y lo último de solr es generar el core para nextant

# su - solr
$ /opt/solr/bin/solr create -c nextant

Nexant

Ahora vamos a activar la aplicación nextant desde el panel de administración de aplicaciones de nextcloud o directamente por terminal

# su - www-data
$ cd /var/www/nextcloud/
$ ./occ app:enable nextant
nextant enabled

Y ejecutamos la indexación de los ficheros

$ ./occ nextant:index

Es posible que nos diga

$ ./occ nextant:index
nextant v1.0.8
Nextant is not yet configured

En éste caso, tendremos que ir a nextcloud y verificar la configuración en configuración > configuración adicional > abajo del todo. Es muy intuitivo, no necesita mas explicación ;)

Cuando está funcionando volvemos a ejecutar el index.

En mi instancia algunos usuarios tienen muchos ficheros (demasiados según mi entender, pero bueno... usuarios...) y he tenido que modificar un poco nextant indicándole por ejemplo que no indexe los ficheros .eml, ni los ficheros mas grandes de 30Mb, además de aumentar el tiempo de timeout, todo en la interfaz web. Aún así me encontraba que se me paraba el nextant porque solr se quedaba sin memoria, así que he tenido que modificar el fichero /etc/default/solr.in.sh y aumentar la RAM

 (00:02:47) [standby]    Solr memory: 168.8 MB (%34.4)       

Error #21
Is Solr Up and Running ?
# vi /etc/default/solr.in.sh
SOLR_HEAP="4096m"

Y reiniciar solr.

En algunos momentos es posible que nos interese que los ficheros de algun directorio no sean indexados, para que no se indexen, en la raíz del directorio que no queremos indexar, añadiremos un fichero llamado .noindex sin ningún contenido y listos! :) más info.

Migrar de owncloud a nextcloud

Posted on desembre 5th, 2017 by admin

Nextcloud es el fork que se hizo de Owncloud cuando éste empezó a ofrecer un servicio premium y aplicaciones de pago. Para ello la comunidad decidió pasarse a Nextcloud, manteniendo las actualizaciones y funcionalidad de y con Owncloud.

Hace ya un par de años instalé Owncloud en un servidor que lo he ido actualizando de vez en cuando, hace unas semanas decidí pasar de Owncloud a Nextcloud, así que lo actualicé a la versión 10.0.3 para previamente pasarlo a Nextcloud pero me encontré que la versión 12.0.3 de Nexcloud aún no estaba preparada para migrar desde Owncloud 10.0.3. Así que tuve que esperar hasta la release de la versión 12.0.4 de Nextcloud ayer mismo :)

Lo primero será realizar una copia de seguridad de los ficheros y de la base de datos. Una recomendación que hago que se realice automáticamente a diario.

Mi instancia de owncloud la tengo instalada en /var/www y tengo separados los ficheros en 2 directorios, owncloud que es donde se almacena el software del programa y ownclouddata que es donde se almacenan los ficheros de los usuarios, además tengo un script que hace un dump de la base de datos.

Nos posicionaremos pues en el directorio superior de donde tenemos owncloud y descargaremos la última versión de nextcloud

# cd /var/www
# wget -c --no-check-certificate https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip
# unzip nextcloud-12.0.4.zip

Copiaremos el fichero de configuración de owncloud a nextcloud

# cp owncloud/config/config.php nextcloud/config/

Tendremos que cambiar el directorio por defecto de trabajo del servidor web (apache en mi caso) a la nueva ubicación y reiniciar el servidor web.

cambiar /var/www/owncloud por /var/www/nextcloud
# service apache2 restart

Ahora bajaremos los permisos al usuario www-data, daremos permisos de ejecución al fichero occ y haremos el upgrade desde la consola. Para poder acceder como www-data, tendremos que modificar la entrada en /etc/passwd y decirle /bin/bash al final de la línea del usuario, esto es un agujero de seguridad porque si algún malechor llega a poder abrir una terminal en nuestro servidor podría llegar a crear algún estrago, así que recomiendo volver a ponerla a /bin/false una vez hayamos terminado las tareas de administración. occ no nos dejará ejecutarlo como root.

# su - www-data
$ cd /var/www/nextcloud
$ chmod +x occ
$ ./occ upgrade

Es posible que nos indique que se tienen que deshabilitar algunas aplicaciones, así que simplemente ejecutaremos los comandos que nos indica en pantalla. Finalmente, si nos ha parado la actualización por este motivo, nos encontraremos que nos habrá habilitado el modo de mantenimiento. Para deshabilitarlo ejecutaremos ésto:

$ ./occ maintenance:mode --off

Y si todo ha sido correcto, ya tendremos nextcloud instalado en nuestro servidor! :)

Clonar un disco con errores

Posted on desembre 1st, 2017 by admin

Cuando los sistemas funcionan a diario es normal que con el tiempo los discos empiezan a dar errores, para ello tenemos a un buen aliado que se llama S.M.A.R.T. que nos avisa cuando la salud de un disco duro no es buena y cuando empiezan a salir errores, la recomendación es parar el disco y reemplazarlo.

Esta vez el disco que tengo tiene las configuraciones enteras de un sistema operativo y reinstalar y reconstruir el sistema operativo desde 0 sería mucho trabajo, así que la opción por la que he optado es clonar el disco duro a otro disco duro que no tiene errores (comprobado con badblocks!).

Al hacer el dd se me ha cortado a medio proceso porque se ha encontrado con la parte del disco defectuosa, así que he tenido que añadir un par de opciones para omitir los errores y seguir con el clonado:

# dd if=/dev/sda |pv |dd of=/dev/sdb conv=noerror,sync

El disco duro que estoy tratando de recuperar, realmente tiene varios sectores defectuosos que con dd no hay forma de clonar, así que he tenido que usar otra herramienta gddrescue

# apt-get install gddrescue
# ddrescue -d -r3 /dev/sda /dev/sdb clonacion.log

Con el -d le decimos a ddrescue que haga un acceso directo al disco e ignore el cache del kernel (clonación bit a bit)
Con el -r3 le indicamos que pruebe hasta 3 veces la lectura de los sectores defectuosos

Después de un buen rato finalmente el disco ha sido clonado con éxito y el sistema arranca :) recomiendo activar el retry porque con un poco de suerte va a poder recuperar los sectores defectuosos, en el disco que estaba clonando había 19 sectores defectuosos y finalmente ha podido salvar algunos. En este caso eran pocos sectores, pero en el caso que haya un fallo mayor, cuantos menos sectores se puedan recuperar, mas pérdida de datos habrá.

Vim: mostrar barra de %

Posted on setembre 14th, 2017 by admin

Hace unos días que instalé debian 9 y vim no tenía el comportamiento que me gustaba, en un post anterior expliqué como sacar por ejemplo el modo mouse que al seleccionar te activaba el mode visual.

Hace días quise activar la barra de % de lectura del fichero y también el nombre del fichero, pero no conseguía que se aplicase la configuración y tenía que usar el set ruler cada vez que abría el fichero. Hoy porfin en el mismo fichero que editábamos en el post referenciado, se me ha ocurrido comentar una línea

# vi /usr/share/vim/vim80/defaults.vim
set history=200         " keep 200 lines of command line history
set ruler               " show the cursor position all the time
set showcmd             " display incomplete commands
"set wildmenu           " display completion matches in a status line

El set wildmenu era el que no me permitía que apareciese el ruler por defecto.

Addicionalmente, la barra inferior, me gusta tenerla de color blanco para que se diferencie del fondo negro con el que suelo trabajar, para ello modifico el fichero de configuración de /etc/vim/vimrc y al final añado lo siguiente

# vi /etc/vim/vimrc
set modeline
set ls=2

Y listos! :)

LXC: Montar un directorio del host en un contenedor

Posted on agost 26th, 2017 by admin

Ésto hace tiempo lo documenté para openvz, pero con lxc cambia un poco la cosa. Voy a saco y pongo lo que se tiene que hacer hehe

Montas el punto de montaje que quieres, en mi caso estoy montando un dav con davfs2 (apt-get install davfs2) en el host en un punto de montaje:

# mkdir /mnt/dav_capa8
# mount -t davfs -o gid=www-data,uid=www-data https://cloud.capa8.net/remote.php/webdav/ /mnt/dav_capa8/

Previamente he puesto las credenciales en /etc/davfs2/secrets del acceso al webdav

y luego así se lo paso al contenedor:

# pct set 102 -mp0 /mnt/dav_capa8,mp=/mnt/dav_capa8

Reinicio el contenedor y el nuevo mountpoint ya está accesible

Sólo me falta comprobar si el usuario www-data que es quien tiene que escribir en éste punto de montaje tiene permisos suficientes.

Para que se monte el davfs al iniciar el sistema, editaremos el fichero /etc/fstab y la última línea:

# vi /etc/fstab
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /var/lib/vz2 ext4 defaults 0 0
https://cloud.capa8.net/remote.php/webdav/ /mnt/dav_capa8/ davfs noauto,user 0  0

Convertir pdf a jpg

Posted on maig 11th, 2017 by admin

Normalmente cuando tengo que editar un pdf lo abro con inkscape, pero esta vez me encuentro un pdf que son unos planos y la conversión con inkscape se lo toma con la calmísima, así que total como sólo necesito una imagen, voy a convertir el contenido del pdf a imagen y me ahorro varias horas de espera…

¿Cómo?

# convert -verbose -density 150 -trim plano.pdf -quality 100 -flatten -sharpen 0x1.0 plano.jpg

Ahora a cargarlos en el inkscape como imagen y a redimensionar a mi gusto :)

>>EOF

radicale: servidor de CalDAV

Posted on abril 21st, 2017 by admin

Hace ya unos meses que me persiguen para integrar el calendario de varias herramientas, como owncloud (nextcloud), egroupware, thunderbird y el móvil pero ninguno de los dos primeros las versiones que tengo instaladas permiten compartir el calendario públicamente para que las otras herramientas puedan acceder a él. Así que sólo nos queda o tirar de googlecalendar o montar nuestro propio sistema de CalDAV.

Primero de todo remarcar que vamos a tener los calendarios en 2 modos, sólo lectura y otros de escritura y lectura, el motivo es que algunos calendarios van a ser públicos y otros privados, los públicos no se van a poder modificar y los entregaremos en formato ics, los privados si :)

Vamos a ello

Aunque radicale está en los repositorios de debian, vamos a descargarnos la última versión de su página web.

root@radicale-dav:~# apt-get install apache2

Instalaremos python-setuptools y apache2-utils para crear passwords y usuarios a nuestros calendarios

root@radicale-dav:~# apt-get install python-setuptools apache2-utils

Ahora descargamos radicale y lo instalamos

root@radicale-dav:~# cd /var/www
root@radicale-dav:/var/www# wget -c --no-check-certificate https://pypi.python.org/packages/source/R/Radicale/Radicale-1.1.1.tar.gz
root@radicale-dav:/var/www# tar xvzf Radicale-1.1.1.tar.gz
root@radicale-dav:/var/www# mv Radicale-1.1.1 radicale

Ahora creamos un sitio donde vamos a almacenar el fichero de configuración

root@radicale-dav:/var/www/radicale# mkdir /etc/radicale
root@radicale-dav:/var/www/radicale# cp config /etc/radicale/

Y ahora lo modificamos y dejamos algunas líneas como indico

root@radicale-dav:/var/www/radicale# vi /etc/radicale/config
hosts = 127.0.0.1:5232
daemon = True
base_prefix = /
type = filesystem
filesystem_folder = /var/www/radicale_collections

Creamos el usuario que va a hacer funcionar radicale y creamos el directorio donde se van a guardar los calendarios de los usuarios

root@radicale-dav:/var/www# useradd radicale
root@radicale-dav:/var/www# mkdir /var/www/radicale_collections
root@radicale-dav:/var/www# chown radicale:radicale radicale_collections

Ahora vamos a configurar apache para que se conecte al radicale

< VirtualHost *:80 >
        ServerName calendars.capa8.net
        ServerAlias *.calendars.capa8.net

        ProxyRequests off
        < Proxy * >
                Order deny,allow
                Allow from all
        < /Proxy >

        ProxyPreserveHost On

        ProxyPass / http://localhost:5232/
        ProxyPassReverse / http://localhost:5232/

        < Location / >
                AuthType Basic
                AuthName "Radicale Login"
                AuthBasicProvider file
                AuthUserFile "/etc/radicale/radicale_passwords"
                Require valid-user
        < /Location >

        Alias "/public/" "/var/www/public_calendars/"
        Alias "/public" "/var/www/public_calendars/"
        < Location /public >
                ProxyPass "!"
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Satisfy Any
                Allow from all
        < /Location >
< /VirtualHost >

Aquí nos podemos currar, incluso es recomendable, ponerlo bajo https y meterle un certificado válido con letsencrypt :)

root@radicale-dav:~# wget --no-check-certificate https://dl.eff.org/certbot-auto
root@radicale-dav:~# chmod +x certbot-auto
root@radicale-dav:~# ./certbot-auto --apache certonly
root@radicale-dav:~# vi /etc/crontab
# renova certificat letsencrypt
0  21   * * *   root    /root/certbot-auto renew >> /var/log/le-renew.log

Después el fichero de apache tendría que ser así:

< VirtualHost *:80 >
        ServerName calendars.capa8.net
        ServerAlias *.calendars.capa8.net

        RedirectPermanent / https://calendars.capa8.net
< /VirtualHost >

< VirtualHost *:443 >
        # Capa8
        ServerAdmin info@capa8.net

        ServerName calendars.capa8.net
        ServerAlias *.calendars.capa8.net

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/calendars.capa8.net/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/calendars.capa8.net/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf

        ProxyRequests off
        < Proxy * >
                Order deny,allow
                Allow from all
        < /Proxy >

        ProxyPreserveHost On

        ProxyPass / http://localhost:5232/
        ProxyPassReverse / http://localhost:5232/

        < Location / >
                AuthType Basic
                AuthName "Radicale Login"
                AuthBasicProvider file
                AuthUserFile "/etc/radicale/radicale_passwords"
                Require valid-user
        < /Location >

        Alias "/public/" "/var/www/public_calendars/"
        Alias "/public" "/var/www/public_calendars/"
        < Location /public >
                ProxyPass "!"
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Satisfy Any
                Allow from all
        < /Location >
< /VirtualHost >

Y habilitamos el site, el ssl y el proxy de apache

root@radicale-dav:/etc/apache2/sites-available# a2enmod proxy_http ssl
root@radicale-dav:/etc/apache2/sites-available# a2ensite radicale
root@radicale-dav:/etc/apache2/sites-available# service apache2 restart

Si nos fijamos hay un directorio public, donde guardaremos los ics publicos, así que creamos el directorio y un fichero para darnos cuenta que estamos ahí… yo he creado un fichero index.html y un .htaccess

root@radicale-dav:/var/www# mkdir public_calendars
root@radicale-dav:/var/www# cd public_calendars/
root@radicale-dav:/var/www/public_calendars# vi .htaccess
DirectoryIndex index.html
root@radicale-dav:/var/www/public_calendars# vi index.html
< html >
< head >
< title > calendaris publics < /title >
< /head >
< body >
< h1 > public calendars < /h1 >
< /body >
< /html >
root@radicale-dav:/var/www/public_calendars# cd ..
root@radicale-dav:/var/www# chown -R www-data:www-data public_calendars/

Ahora crearemos el fichero de passwords para los usuarios de radicale

root@radicale-dav:/etc/radicale# htpasswd -cd radicale_passwords usuario1
New password: 
Re-type new password: 
Warning: Password truncated to 8 characters by CRYPT algorithm.
Adding password for user usuario1

Si queremos crear mas usuarios será usar el comando así

root@radicale-dav:/etc/radicale# htpasswd radicale_passwords usuario2

Ahora vamos a indicar que el usuario radicale arranque radicale al iniciar el sistema

root@radicale-dav:~# vi /etc/rc.local
su -c '/var/www/radicale/radicale.py --config /etc/radicale/config' radicale

Es posible que sea necesario instalar sudo

root@radicale-dav:~# apt-get install sudo

Reiniciamos la maquina y comprobamos que podemos acceder al dominio configurado, en mi caso: https://calendars.capa8.net y nos pida un usuario y password.

A continuación probamos de acceder a https://calendars.capa8.net/public/ para ver si nos permite acceder sin usuario.

Ahora ya sólo nos quedará crear un script o un cron que copie los calendarios públicos que están en /var/www/radicale_collections a /var/www/public_calendars

root@radicale-dav:~# vi /etc/crontab
# publica calendaris
*/10 *  * * *   root cp /var/www/radicale_collections/usuario1 /var/www/public_calendars/

Ahora ya lo podemos configurar a nuestro cliente de calDAV poniendo la dirección:

https://calendars.capa8.net/usuario1/nombrecalendario

Listos! :)

dlna: cliente en debian (sólo audio)

Posted on abril 19th, 2017 by admin

Ya empezamos con las abreviaciones estas tan odiosas que usamos los informáticos, pues DLNA es una cosa que poco a poco van teniendo cada vez mas televisores y proyectores y uno de los primeros dispositivos que lo usó fue el chromecast de google, quien tenga alguno sabrá la maravilla que es éste servicio.

En pocas palabras sirve para mandar contenidos multimedia entre dispositivos, por ejemplo vídeos y audios.

La forma que hasta el momento he usado es el uso de una extensión de chrome para streamear al chromecast, me permite reproducir pestañas del navegador en el televisor, pero también youtube y netflix si detectan que hay un dispositivo dlna me da la opción de mandar el contenido al chromecast. Con el móvil android mas de lo mismo.
En resumen que puedo ver y escuchar lo que tengo en el portátil y en el móvil en el televisor y mi móvil pasa a ser otro mando de mi televisor. Vamos que chromecast es uno de los culpables porque mi tonto televisor tenga mucha guerra y una nueva vida :) -lo de usar el televisor para ver la TDT es agua pasada!-

Hace unos meses me percaté que dlna no era una cosa exclusiva de chromecast, sino que estaba cada vez mas en televisores e incluso proyectores. Así que me olí algún tipo de estandarización y efectivamente, dlna son las siglas de digital living network alliance, algo muy similar a lo que usan ya nuestras impresoras con el upnp. Empecé a buscar y en los repositorios testing de debian vi una cosa que se llamaba rygel, pero la cosa aún estaba muy verde.

Éstos días de semana santa aproveché que debian 9 ya está congelada y está en la fase final para su liberación dentro de poco para probar entre otras cosas como está el tema del dlna.

En resumen, si quieres streamear imagen usa el plugin de chromecast y no te lies mas, si quieres reproducir audio desde el sistema operativo ahí vamos :)

Tras instalar muchas cosas en éste viejo portátil, el resumen es:

# apt-get install pulseaudio-dlna

He probado de mandar contenidor desde vlc, totem y rhythmbox y la cosa de momento aún está cruda :( almenos he sacado una cosa interesante con rhythmbox, que hay un conector para escuchar directamente música de soundcloud y jamendo! :) busca en los repositorios grilo y rhythmbox-plugins.

Totem… pues como su nombre indica totem… trozo de piedra monolítico hehe

VLC… debian 9 viene con la versión nightly, ergo la 2.2.5, aquí buscando la nightly de vlc, he descubierto otra cosa, snapcraft.io, un instalador universal de paquetes de linux (apt-get install snapd && snap find vlc && snap install vlc). Pero aunque parece que en windows si funciona, con GNU/Linux parece que aún no :(

Pues varias intentonas, la única opción que he encontrado de streamear sólo audio desde el sistema operativo es con pulseaudio-dlna.

Ejecutas el programa pulseaudio-dlna desde consola y en dispositivos de audio te aparece el dispositivo que está sirviendo dlna en la red:

# pulseaudio-dlna 
04-19 03:55:56 pulseaudio_dlna.__main__                       INFO     Running as root. Starting daemon ...
[...]
04-19 03:56:04 pulseaudio_dlna.pulseaudio                     INFO     Added the device "Nusepas-chromecast (Chromecast)".
04-19 03:57:51 pulseaudio_dlna.daemon                         INFO     Checking pulseaudio processes ...
04-19 03:58:19 pulseaudio_dlna.daemon                         INFO     Checking pulseaudio processes ...
04-19 03:58:38 pulseaudio_dlna.pulseaudio                     INFO     on_new_playback_stream "/org/pulseaudio/core1/playback_stream16"
04-19 03:58:39 pulseaudio_dlna.pulseaudio                     INFO     _async_handle_sink_update /org/pulseaudio/core1/sink3
04-19 03:58:39 pulseaudio_dlna.pulseaudio                     INFO     Instructing the device "Nusepas-chromecast (Chromecast)" to play ...
04-19 03:58:43 pulseaudio_dlna.streamserver                   INFO     URL settings: /dHlwZT0iaW1hZ2UiLG5hbWU9ImRlZmF1bHQucG5nIg%3D%3D/ (type="image",name="default.png")
04-19 03:58:43 pulseaudio_dlna.streamserver                   INFO     URL settings: /dWRuPSJ1dWlkOjZjOTk5NmE3MWM2ZDdkY2QzNDZmNTY2MjdhZDlmZDJkIix0eXBlPSJicmlkZ2Ui/stream.mp3 (udn="uuid:6c9996a71c6d7dcd346f56627ad9fd2d",type="bridge")
04-19 03:58:43 pulseaudio_dlna.streamserver                   INFO     Registered stream "/dWRuPSJ1dWlkOjZjOTk5NmE3MWM2ZDdkY2QzNDZmNTY2MjdhZDlmZDJkIix0eXBlPSJicmlkZ2Ui/stream.mp3" (0x7f82fb764490) ...
04-19 03:58:43 pulseaudio_dlna.streamserver                   INFO     Starting processes "parec --format=s16le -d nusepaschromecast_chromecast.monitor | lame -b 192 -r -"
04-19 03:58:44 pulseaudio_dlna.streamserver                   INFO     Processes of /dWRuPSJ1dWlkOjZjOTk5NmE3MWM2ZDdkY2QzNDZmNTY2MjdhZDlmZDJkIix0eXBlPSJicmlkZ2Ui/stream.mp3 initialized ...
04-19 03:58:50 pulseaudio_dlna.pulseaudio                     INFO     The device "Nusepas-chromecast (Chromecast)" is playing.
04-19 03:58:50 pulseaudio_dlna.pulseaudio                     INFO     _async_handle_sink_update /org/pulseaudio/core1/sink3 finished!
04-19 03:59:18 pulseaudio_dlna.pulseaudio                     INFO     on_playback_stream_removed "/org/pulseaudio/core1/playback_stream16"
04-19 03:59:19 pulseaudio_dlna.pulseaudio                     INFO     _async_handle_sink_update /org/pulseaudio/core1/sink3
04-19 03:59:19 pulseaudio_dlna.pulseaudio                     INFO     Instructing the device "Nusepas-chromecast (Chromecast)" to stop ...
04-19 03:59:20 pulseaudio_dlna.pulseaudio                     INFO     The device "Nusepas-chromecast (Chromecast)" was stopped.
04-19 03:59:20 pulseaudio_dlna.pulseaudio                     INFO     _async_handle_sink_update /org/pulseaudio/core1/sink3 finished!
Ha fallat write(): La canonada s’ha trencat
04-19 03:59:20 pulseaudio_dlna.streamserver                   INFO     Unregistered stream "/dWRuPSJ1dWlkOjZjOTk5NmE3MWM2ZDdkY2QzNDZmNTY2MjdhZDlmZDJkIix0eXBlPSJicmlkZ2Ui/stream.mp3" (0x7f82fb764490) ...
04-19 03:59:22 pulseaudio_dlna.streamserver                   INFO     No more stream from device "Nusepas-chromecast".

En ésta instalación sólo tengo un vídeo descargado y no tengo música en local, con el rhythmbox estoy reproduciendo desde jamendo y al escoger la salida de audio por el dlna (chromecast), no me hace ni caso, pero con VLC y totem si. A lo mejor tienes que liberar el flujo de audio y volverlo a abrir (vamos, cerrar y volver a abrir el programa).

Pues hasta aquí mis investigaciones en modo mandar lo del portátil al dispositivo dlna que sea. Por supuesto Linux puede convertirse en un servidor dlna, para ello tendrás que instalar el paquete minidlna o rygel-preferences. Pero esto da para otro post otro día que ya se me ha hecho tarde de nuevo :P

Pàgina següent »

guy fawkes