viernes, 29 de marzo de 2019

OPEN MEDIA VAULT. RELACIÓN DE CONFIANZA CON OTROS EQUIPOS

En el este post puedes verlo bien explicadito.
En debian establecemos relaciones de confianza entre equipos de la siguiente manera:
- Generamos clave:
  • ssh-keygen -b 4096 -t rsa
- Se nos genera un archivo id_rsa.pub.
- Lo copiamos al equipo donde queremos conectarnos sin passwd.
- Añadimos esta clave en el archivo /root/.ssh/authorized_keys (Por ejemplo cat id_rsa.pub >> /root/.ssh/authorized_keys). Que es la que utiliza el sistema para ver que equipos tienen relación de confianza con él.

En Open Media Vault es un poco diferente.
El archivo donde tenemos que añadir las claves es /var/lib/openmediavault/ssh/authorized_keys/<usuario>. Por lo tanto, si vamos a entrar como root tendríamos que hacer  
  • cat id_rsa.pub >> /var/lib/openmediavault/ssh/authorized_keys/root

martes, 26 de marzo de 2019

Servidor Media con Open Media Vault


INSTALACIÓN

La página de Open Media Vault la tenemos aquí.
Por otra parte tenemos la documentación del proyecto en este otro enlace.
Instalamos Open Media Vault desde iso.
Podemos ver tutoriales de instalación y configuración en los siguientes blogs:


https://aprendiendoavirtualizar.com/nas-casero-con-openmediavault/

Una cosa a tener en cuenta es que la instalación de OMV requiere muy poco espacio, con 8 GB es suficiente, sin embargo el instalador de la distribución no permite hacer un particionado a medida.
Yo como partía de un disco de 500 GB, y dado que la partición de instalación está separada del espacio de almacenamiento, y por no desperdiciar todos esos GB, he particionado el disco antes de la instalación.
Así he dejado una partición de 100 GB para la instalación ( lo he dejado muy amplia por si necesito meter allí otra serie de cosas), 8GB para partición swap y el resto en otra partición que servirá de almacenamiento.
Al realizar la instalación le indico que lo haga en la partición de 100 GB.
Después de la instalación cambio contraseña, e instalo OMV-extras según la página del Maestro Esteban Navas.

ALMACENAMIENTO Y COMPARTICIÓN

Yo he partido, para el almacenamiento, de discos que tenían información y que quería colocar en el servidor.
No sé si es por esta razón u otra, pero me ha dado un montón de problemas ya que no me dejaba montar las carpetas que quería montar por samba. Por ello indico la forma de compartir carpetas, que luego me ha funcionado.
A ser posible añadimos discos vacíos. En el menu Almacenamiento/Discos debería aparecer, sino le damos a escanear y aparecerá.
Luego también en Almacenamiento/Sistema de Archivos si no nos aparece le damos a crear y seleccionamos el disco. Así creamos un sistema de archivos y lo podremos utilizar.
Estos sistemas de archivos de montan en /srv/cadena. Donde cadena es un identificador de la partición que hemos añadido bien por etiqueta o uuid.

CONFIGURAR PARA QUE ENVÍE MENSAJES
Podemos configurar para que nos envíe mensajes de error y avisos a un correo de gmail.
Como siempre podemos verlo en la página de El Maestro.
En servidor smtp ponemos smtp.gmail.com
En puerto smtp 587
Habilitamos conexión segura
Habilitamos inicio de sesión y ponemos usuario (usuario@dominio) y contraseña y especificamos a qué direcciones queremos enviar los correos.


COMPARTIR CARPETA POR SERVICIO
Comento el procedimiento que no me ha dado problema.
Por ejemplo, voy a crear un recurso compartido por samba para las películos del centro.
Voy a menú "/Permisos de acceso/carpetas compartidas" y le doy a botón de Añadir.
En campo nombre ponemos el nombre que se usará para compartir, en este caso "Peliculas". En campo Dispositivo nos pide seleccionar un sistema de archivos, elegimos uno de los añadidos en "/Almacenamiento/Sistema de Archivos". Ruta y permisos no los toco.
Se nos creará la carpeta en el /srv/cadena/Peliculas.
Ya sólo nos queda indicarle que la queremos compartir por samba y establecer los usuarios que tienen acceso.
Ésto lo hacemos en /Servicios/ y servicio correspondiente, en este caso SMB/CIFS. Si no tenemos activado el servicio lo activamos y en pestaña de "Compartidos" vamos añadiendo las carpetas a compartir, que ya las tenemos creadas. en "Permiso de Acceso/carpetas compartidas".
Al darle al botón añadir, tenemos que meter los datos. En el campo de carpeta compartida nos pide seleccionar una carpeta compartida /(lo hacemos pulsando en la flecha que aparece en la derecha del campo) y nos dejará seleccionar cualquiera de las que hemos añadido anteriormente.
También podemos desde aquí, pulsando en la lupa que hay a la derecha de este campo, los permisos de acceso de los diferentes usuarios.
Podemos personalizar el resto, entre ello, los equipos desde donde está permitido el montaje.
En el caso de no dar permiso de acceso en este paso, lo haremos posteriormente, una vez creado.
En Usuario nos aparecen los diferentes usuarios. Al seleccionar uno y dar al botón de Privilegios nos aparecen todos los recursos compartidos por los diferentes servicios y la política de compartición: lectura/escritura, solo lectura o no accesible.







jueves, 21 de marzo de 2019

Recurso Puppet Exec Descargar archivo

Para descargar un archivo por puppet utilizo el recurso exec tal que así

exec { "/usr/bin/wget --limit-rate=2.5m -O /var/cache/paquetes/$paquete http://$servidor/$rutadescarga/$paquete && touch /var/cache/paquetes/$paquete":
     cwd => "/var/cache/paquetes",
     path => "/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin:/sbin",
     alias => "descargar-sweethome3d",
     creates => "/var/cache/paquetes/$paquete",
     timeout => 300,
     notify => Exec ["descomprimir-sweethome3d"],
}

El atributo creates comprueba un archivo para controlar que se ha descargado correctamente. En este caso el archivo lo hemos creado con la órden touch. Sería lo mismo que utilizar el atributo unless 
 unless => "/bin/ls /var/cache/paquetes/$paquete",

Con el atributo timeout le decimos el tiempo máximo a esperar para descargar.

Todas las opciones se puede ver en la página de referencia:

Recurso Puppet File Recursivo


Para crear un directorio con archivos dentro utilizamos el recurso de puppet file con el atributo recurse a true.

En el siguiente ejemplo creamos un directorio /usr/local/bin y le ponemos todos los scritps que tenemos en el modulo.
En este caso también he puesto el atributo replace a false así si pongo de manera local en una máquina algún otro script no lo borrará.

        file { "/usr/local/bin":
                source => "puppet:///modules/mp-xubuntu-ficheros-centro/bin",
                ensure => directory,
                mode => 644,
                owner => root,
                group =>root,
                recurse => true,
                replace => false,
        }


Podemos ver todas los opciones en la web de puppet.com/docs

https://puppet.com/docs/puppet/5.5/types/file.html

Recurso Puppet File No reemplazar

En el recurso puppet File si queremos crear un recurso de archivo pero que no sincronizarlo con el del servidor los hacemos con el atribute replace => false.

Por ejemplo:

        file { "/usr/share/linex-ubuntu-puppet/escuela2.0":
               owner => root , group => root , mode => 755,
               replace => false,
               source => "puppet:///modules/mp-xubuntu18-tareas-iniciales/escuela2.0.$tipo",
       }

Podemos ver todas los opciones en la web de puppet.com/docs

https://puppet.com/docs/puppet/5.5/types/file.html

Modulo Puppet Instalar SweetHome3D

Me han solicitado instalar un programa de diseño llamado Sweet Home 3d.

La web del desarrollador es la siguiente.

http://www.sweethome3d.com/es/

He realizado una tarea para instalarla en los equipos.

He descargado el tgz para linux 64 bits de la página de descargas y la he puesto en mi servidor en la ruta http://ficheros/linex/programas/ para que lo descargue la tarea.

Luego he creado un lanzador y lo he puesto en los escritorios de los usuarios.

La tarea:

root@servidor:/etc/puppet/modules# tree mp-instala-sweethome3d
mp-instala-sweethome3d
├── files
├── leeme
└── manifests
    └── init.pp

2 directories, 2 files
root@servidor:/etc/puppet/modules# cat mp-instala-sweethome3d/manifests/init.pp
class mp-instala-sweethome3d {

  $servidor = "servidor"
  $rutadescarga = "ficheros/linex/programas"

  case $architecture {
      amd64: { $paquete = "SweetHome3D-6.1.2-linux-x64.tgz" }

 }
  

  exec { "/usr/bin/wget --limit-rate=2.5m -O /var/cache/paquetes/$paquete http://$servidor/$rutadescarga/$paquete":
     cwd => "/var/cache/paquetes",
     alias => "descargar-sweethome3d",
     creates => "/var/cache/paquetes/$paquete",
     timeout => 300,
     notify => Exec ["descomprimir-sweethome3d"],
      }
  exec { "/bin/chmod 755 /var/cache/paquetes/$paquete && /bin/tar -xzvf /var/cache/paquetes/$paquete && /bin/mv /var/cache/paquetes/SweetHome3D-6.1.2 /opt/":
     cwd => "/var/cache/paquetes",
     alias => "descomprimir-sweethome3d",
     require => Exec ["descargar-sweethome3d"],
     unless => "/bin/ls /opt/SweetHome3D-6.1.2",
  }
}


El lanzador:
root@servidor:/etc/puppet/modules# cat /home/profesor/xxxxxx/Escritorio/SweetHome3D.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=SweetHome3D
Comment=
Exec=/opt/SweetHome3D-6.1.2/SweetHome3D
Icon=/opt/SweetHome3D-6.1.2/SweetHome3DIcon.png
Path=
Terminal=false
StartupNotify=false