26 noviembre 2016

udiskctl - Cómo montar discos usb cuando estamos en linea de comando y los habíamos montado en el escritorio

Actualmente estoy utilizando (probando) Ubuntu 16.04. No me parece una mala distribución, teniendo en cuenta que yo era una persona que lo hacía casi todo a mano y me estoy adaptando a que Ubuntu lo haga casi todo por mi automáticmaente

Una de las cosas que hace por mi es montar los discos usb externos. No hace falta que le de ninguna indicación, y él sólo coge el nombre del volumen y lo monta en la ruta /media/usuario/Nombre del Volumen. No necesito editar fstab ni estar haciendo cosas extrañas (entiendo que las últimas versiones de Fedora y de OpenSuse también lo hacen, pero mi experiencia actual es con Ubuntu)

Cuando estás en el escritorio, está muy bien, pero hay veces, que estoy utilizando mi ordenador del trabajo (que tiene Windows) y me quiero conectar a mi ordenador personal y acceder a un disco USB que está conectado.

Pues bien, una de estas veces me encontré a mi mujer logueada, y el disco que tenía montado con propiedad de mi usuario, en una ruta para mí, estaba montado con el propietario del usuario de mi mujer, y la ruta había cambiado para su usuario.

Directamente lo desmonté con el usuario root, pero no tenía ni idea de cómo podía replicar el comportamiento del escritorio en línea de comando sin tener que volver a editar fstab y opciones de montaje, etc ,etc...

Buscando un poco encontré udisks , que provee interfaces para acceso a dispositivos de almacenamiento y discos. Cualquier aplicación puede acceder al demonio udisksd a través de udisks.

Todo esto está muy bien, pero seguía sin saber cómo acceder. Buscando un poco más encontré udisksctl , que es un comando que permite interactuar con udisks en línea de comando.

Su uso es muy fácil:

jose@r2d2:~$ udisksctl mount -b /dev/sdb1
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-other-seat ===
Para montar TOSHIBA MQ01UBD100 (/dev/sdb1) necesita autenticarse
Multiple identities can be used for authentication:
 1.  Jose ,,, (jose)
 2.  Vanesa ,,, (vanesa)
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ===
Mounted /dev/sdb1 at /media/jose/virtualizacion.
jose@r2d2:~$ l

Simplemente hay que saber el dispositivo de bloque que se corresponde a nuestro disco USB y lo podremos montar con nuestro usuario como si estuviéramos en el escritorio.

10 junio 2016

Cómo utilizar ansible con Vagrant

Desde que conocí Vagrant, me ha parecido un software muy útil para preparar pequeñas maquetas con máquinas virtuales que tengan que "vivir" y "morir" rápidamente.

Además si en nuestra máquina disponemos de ansible, podemos aprovechar para provisionar lo que queramos en nuestra/s máquinas virtuales.

Por supuesto, lo mismo lo podemos hacer con scripts de bash, pero lo interesante de utilizar ansible es que podemos reutilizar playbooks que tengamos para otros despliegues.

Todo se ve mejor con un ejemplo.

El primer paso es crear la carpeta vagrant-ansible. La podemos llamar así, o la podemos llamar como queramos, pero poniendo un nombre descriptivo sabremos por dónde nos estamos moviendo...

 # mkdir vagrant-ansible  



Una vez hecho esto, debemos situarnos en el directorio recientemente creado y crear un vagrant file:

 # vagrant init centos/7  



Con esto creamos el vagrantfile básico para instalar un box con centos 7.

Personalizamos el fichero tanto como queramos, pero la parte más importante, viene al final donde indicamos que vamos  a provisionar con ansible:

 config.vm.provision "ansible" do |ansible|  
  ansible.playbook="playbook.yml"  
  end  
 end  


Con estas últimas líneas (el último end es el propio del fichero), estamos indicando en el fichero de configuración que vamos a utilizar ansible y que vamos autilizar el playbook llamado (imaginativamente)  playbook.yml. Este playbook estará en el mismo sitio donde esté el Vagrantfile, y contendrá la información que queramos de despliegue de la o las máquinas.