Ajustes
Ajustes del servidor migasfree
No hay inteligencia allí donde no hay cambio ni necesidad de cambio.
—Herbert George Wells
Los ajustes de configuración del servidor migasfree se asignan en el
fichero /etc/migasfree-server/settings.py
.
Nota
Este es un fichero
python
, por lo que hay que llevar cuidado con la sintaxis y la indentación.
Ajustes propios de migasfree
MIGASFREE_ORGANIZATION
Valor por defecto: ‘My Organization’
Establece el nombre de tu organización.
Ejemplo:
MIGASFREE_ORGANIZATION = "ACME Corporation"
MIGASFREE_AUTOREGISTER
Valor por defecto: True
Especifica si los ordenadores pueden autoregistrar la plataforma y la versión migasfree.
Si no quieres que ningún ordenador registre versiones y/o plataformas automáticamente, tienes que darlas de alta manualmente y asignar este ajuste a False.
Ejemplo:
MIGASFREE_AUTOREGISTER = False
MIGASFREE_DEFAULT_COMPUTER_STATUS
Valor por defecto: ‘intended’
Establece el estado por defecto que tendrá el ordenador cuando es añadido en el sistema.
Los valores que se pueden asignar son: ‘intended’, ‘reserved’, ‘unknown’, ‘in repair’, ‘available’ o ‘unsubscribed’
Ejemplo:
MIGASFREE_DEFAULT_COMPUTER_STATUS = 'available' # Estado disponible por defecto
MIGASFREE_COMPUTER_SEARCH_FIELDS
Valor por defecto: (‘id’, ‘name’, )
Establece los campos del modelo Computer
por los que se podrá buscar
un ordenador. El primer campo es importante ya que será el que aparezca
en la primera columna de la lista de ordenadores. Si quieres ver el nombre
del ordenador en vez del id
en la lista de ordenadores, asigna el campo
name
el primero de la lista.
Se utiliza también para las búsquedas de un CID
por los campos especificados.
Ver Propiedades específicas.
Ejemplo:
MIGASFREE_COMPUTER_SEARCH_FIELDS = ("name", "ip") # Búsquedas por nombre e ip
MIGASFREE_TMP_DIR
Valor por defecto: ‘/tmp’
Asigna la ruta donde se alamacenarán los ficheros temporales generados por el servidor.
Ejemplo:
MIGASFREE_TMP_DIR = "/tmp/server"
MIGASFREE_REPO_DIR
Valor por defecto: ‘/var/migasfree/repo’
Directorio donde se guardarán los paquetes y repositorios de cada una de las versiones
Ejemplo:
MIGASFREE_REPO_DIR = "/var/repositories"
MIGASFREE_SECONDS_MESSAGE_ALERT
Valor por defecto: 1800
Si un ordenador tarda más de los segundos especificados en este ajuste
en enviar un mensaje mientras se está actualizando, se considera que el
ordenador va retrasado (Delayed). Normalmente, esto ocurre cuando se ha perdido
la conexión con el servidor por cualquier circunstancia, por ejemplo cuando el
usuario ha apagado el equipo antes de que el cliente termine el proceso de
actualización. De esta forma, se queda registrado en el servidor como Delayed
.
Ejemplo:
MIGASFREE_SECONDS_MESSAGE_ALERT = 3600 # Una hora
MIGASFREE_HELP_DESK
Valor por defecto: ‘Put here how you want to be found’
Texto que apacere al ejecutar el comando del cliente migasfree-label
para
indicar al usuario cómo ponerse en contacto con Asistencia Técnica.
El comando migasfree-label
tiene la finalidad de identificar inequívocamente
al cliente. Este comando ejecutado en un cliente con entorno gráfico abrirá el
navegador web mostrando una pequeña etiqueta que debe ser impresa y pegada en el
ordenador con objeto de facilitar la asistencia técnica aún estando el ordenador
apagado.
También es posible imprimir la etiqueta de un ordenador desde el servidor
desplegando el menú contextual del ordenador y pulsando en
Etiqueta [ordenador]
.
Ejemplo:
MIGASFREE_HELP_DESK = "Teléfono Asistencia Técnica: 555.12.34.56"
MIGASFREE_REMOTE_ADMIN_LINK
Valor por defecto: ‘’
Cuando se asigna un valor a este ajuste, apaceren nuevas acciones por cada
ordenador. El objetivo es poder ejecutar algún código desde nuestro equipo hacia
el equipo que se quiere administrar. Generalmente se usa para acceder por vnc
o ssh
a los ordenadores, pero puede ser utilizado con cualquier otro fin.
Las variables que se pueden usar dentro de este ajuste son:
{{computer.<FIELD>}}
para cualquier campo del modeloComputer
{{<<PROPERTYPREFIX>>}}
cualquier propiedad del equipo cliente
Ejemplo vía ssh:
MIGASFREE_REMOTE_ADMIN_LINK = "ssh://root@{{computer.ip}}"
Ejemplo vía https y puerto (este último definido como propiedad PRT
):
MIGASFREE_REMOTE_ADMIN_LINK = "https://myserver/?computer={{computer.name}}&port={{PRT}}"
Pueden usarse varios protocolos separados por un espacio en blanco:
MIGASFREE_REMOTE_ADMIN_LINK = "vnc://{{computer.ip}} checkping://{{computer.ip}} ssh://root@{{computer.ip}}"
Evidentemente, el navegador con el que se accede a la web del servidor debe saber
cómo interpretar dichos protocolos. Por ejemplo, si usas Firefox y quieres
permitir el protocolo vnc
debes acceder a la dirección about:config
y añadir:
network.protocol-handler.expose.vnc false
Luego crea un fichero ejecutable para asociarlo al protocolo vnc para que lanze
vinagre
contra la IP del ordenador:
#!/bin/bash URL=${1#vnc://} vinagre $URL
MIGASFREE_HW_PERIOD
Valor por defecto: 30
Período en días para el envío del hardware de los ordenadores al servidor. Si han pasado más días de los especificados, se envía de nuevo toda la información del hardware al servidor.
Ejemplo:
MIGASFREE_HW_PERIOD = 1 # Cada día
MIGASFREE_INVALID_UUID
Valor por defecto =
[ "03000200-0400-0500-0006-000700080008", # ASROCK "00000000-0000-0000-0000-000000000000", "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF", "00000000-0000-0000-0000-FFFFFFFFFFFF", ]
Es una lista con UUIDs inválidos.
Algunas placas base pueden no tener asignado un UUID único, pudiéndose darse
el caso que varios equipos tengan un mismo UUID. Esto provoca que en el servidor
se comparta el mismo registro de ordenador
.
Para evitarlo, es preciso añadir estos UUIDs en este ajuste.
Cuando un ordenador tiene un UUID inválido, el servidor toma y asigna el nombre
del ordenador
como UUID.
Puedes hacer UUIDs inválidos añadiendo en /etc/migasfree-server/settings.py
la siguiente instrucción:
MIGASFREE_INVALID_UUID.extend( my_invalid_UUIDs )
donde my_invalid_UUIDs
es una lista de UUIDs invalidos.
Ejemplo:
MIGASFREE_INVALID_UUID.extend( ["00000000-FFFF-FFFF-FFFF-FFFFFFFFFFFF",] )
MIGASFREE_NOTIFY_NEW_COMPUTER
Valor por defecto = False
Si se asigna a True
, el sistema añadirá una Notificación
cuando un
cliente migasfree se registra en el servidor por primera vez.
MIGASFREE_NOTIFY_CHANGE_UUID
Valor por defecto = False
Si se establece a True se creará una Notificación
cuando un equipo cambia
de UUID.
Esto puede ocurrir en contadas ocasiones y está relacionado con antiguos clientes de migasfree, UUIDs inválidos, o con cambios de placa base en el ordenador.
MIGASFREE_NOTIFY_CHANGE_NAME
Valor por defecto = False
Si se establece a True, se creará una Notificación
cuando se detecta que un
ordenador ha cambiado de nombre.
Este ajuste puede resultar útil para detectar UUIDs no únicos.
MIGASFREE_NOTIFY_CHANGE_IP
Valor por defecto = False
Si se establece a True se creará una Notificación
cuando un ordenador cambia
de ip.
Este ajuste puede resultar útil para detectar UUIDs no únicos.
Nota
No actives este ajuste si tienes ordenadores con IP dinámica, ya que se crearán demasiadas notificaciones irrelevantes.
Ajustes de Django
Los ajustes de Django también pueden ser modificados para
adaptar el funcionamiento del servidor añadiendo el ajuste en el fichero
/etc/migasfree-server/settings.py
.
El más importante de este tipo de ajustes es:
DATABASES
Valor por defecto:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'migasfree', 'USER': 'migasfree', 'PASSWORD': 'migasfree', 'HOST': '', 'PORT': '', } }
Ajustes del cliente migasfree
Uno no debe adaptarse al cambio, sino crearlo.
—Jorge González Moore
Los ajustes de configuración del cliente migasfree se encuentran en el
fichero /etc/migasfree.conf
Sección [client]
Server
Valor por defecto: localhost
Nombre del servidor migasfree contra el que se van a realizar las actualizaciones.
Ejemplo:
Server = 192.168.1.10
Version
Valor por defecto: Se basa en la función de python platform.linux_distribution()
Nombre de la versión migasfree. Sería el equivalente al nombre que le quieras
dar a tu Distribución personalizada. Es muy recomendable que configures este
ajuste, ya que para algunas Distribuciones la función
platform.linux_distribution()
puede producir versiones diferentes
al aumentar de release (CentOS sería un ejemplo de esto).
Ejemplo:
Version = MiDistro-1
Computer_Name
Valor por defecto: Se obtiene de la función de python platform.node()
Nombre del ordenador que se mostrará en migasfree. Si por calquier circunstancia
se necesita que el nombre del ordenador no sea el hostname
, puedes configurar
este ajuste para modificarlo.
Ejemplo:
Computer_Name = PC15403
Debug
Valor por defecto: False
Si se establece a True
, la salida de los comandos del cliente mostrará
información útil para la depuración.
Ejemplo:
Debug = True
GUI_Verbose
Valor por defecto: True
Indica si aparecen más o menos mensajes en el Intefaz Gráfico de
Usuario. Si se asigna a False
, sólo se mostrarán el primer y último
mensaje.
Ejemplo:
GUI_Verbose = False
Auto_Update_Packages
Valor por defecto: True
Determina si al ejecutar migasfree --update
se instalan las nuevas
versiones de los paquetes ya instalados.
Si se establece este ajuste a False las actualizaciones de paquetes no se
producirán al ejecutar migasfree
con objeto de que sea el usuario quien
decida cuándo quiere realizarlas (siguiendo p.e. la configuración de un gestor de
actualizaciones tipo update-manager
de Gnome figura 17.1 o ejecutando una
actualización desde el front-end del sistema de paquetería).
Este ajuste no afectará en ningún caso a los paquetes a instalar y/o a los paquetes a desinstalar que hubiera definidos en los repositorios de migasfree.
Ejemplo:
Auto_Update_Packages = False
SSL_Cert
Valor por defecto: No establecido.
Ruta al fichero de certificado SSL de servidor en el cliente.
Si este fichero de certificado no existe se utilizará igualmente https para la privacidad, pero la autenticación entre extremos no estará garantizada. En este caso aparece en consola el siguiente mensaje:
Certificate does not exist and authentication is not guaranteed
Ejemplo:
SSL_Cert = "/path/to/ssl/cert"
Proxy
Valor por defecto: No establecido.
Configuración del proxy.
Ejemplo:
Proxy = 192.168.1.100:8080
Package_Proxy_Cache
Valor por defecto: No establecido.
Permite especificar la dirección de un sistema caché de repositorios
como podría ser apt-cacher
.
Ejemplo:
Package_Proxy_Cache = 192.168.1.101:1234
Consulta el apartado Servicio de caché de paquetes
del capítulo
Migasfree en producción.
Sección [packager]
Esta sección se utiliza cuando se suben paquetes al servidor mediante
el comando migasfree-upload
. Se te pedirá la información que no hayas
especificado en estos ajustes.
User
Valor por defecto: No establecido.
Usuario con permisos para subir paquetes al servidor migasfree. Por
defecto, la base de dato del servidor migasfree
incluye el usuario
packager
con los permisos adecuados para almacenar paquetes en el
servidor.
Ejemplo:
User = packager
Password
Valor por defecto: No establecido.
Contraseña del usuario.
Ejemplo:
Password = packager
Version
Valor por defecto: No establecido.
Indica el nombre de la versión migasfree a la que se van a subir los paquetes.
Ejemplo:
Version = AZLinux-12
Store
Valor por defecto: No establecido.
Almacén en el servidor migasfree donde se guardarán los paquetes. Corresponde al
nombre de una carpeta en el servidor donde se situará el Paquete o Conjunto de Paquetes.
Puedes ver la lista de Almacenes disponibles accediendo a Liberación - Almacenes
en la web del servidor migasfree. Si asignas un Almacén que no existe se creará
automáticamente al subir el primer paquete.
Ejemplo:
Store = Acme # Sitúa en /var/migasfree/repo/<Version>/STORES/Acme los paquetes.
Variables de entorno
Mediante el uso de variables de entorno podemos modificar también la configuración del cliente migasfree.
MIGASFREE_CONF
Por defecto, el fichero de configuración del cliente migasfree se encuentra en
/etc/migasfree.conf
pero mediante la variable de entorno MIGASFREE_CONF
podemos indicar al cliente que use otro fichero. Esto puede serte útil si
tienes que subir paquetes mediante el comando``migasfree-upload`` a distintos
servidores migasfree desde la consola.
Ejemplo:
export MIGASFREE_CONF='/etc/migasfree.conf.serverA' migasfree-upload -f <mipaquete>
Además, todos los ajustes del fichero de configuración del cliente migasfree también pueden ser asignados mediante variables de entorno, siendo estas variables prioritarias frente a los ajustes del fichero de configuración:
MIGASFREE_CLIENT_SERVER
MIGASFREE_CLIENT_VERSION
MIGASFREE_CLIENT_COMPUTER_NAME
MIGASFREE_CLIENT_DEBUG
MIGASFREE_CLIENT_GUI_VERBOSE
MIGASFREE_CLIENT_AUTO_UPDATE_PACKAGES
MIGASFREE_PROXY
MIGASFREE_CLIENT_PACKAGE_PROXY_CACHE
MIGASFREE_PACKAGER_USER
MIGASFREE_PACKAGER_PASSWORD
MIGASFREE_PACKAGER_VERSION
MIGASFREE_PACKAGER_STORE
Como ejemplo de uso de las variables de entorno, imagina un escenario en el cual tienes un servidor migasfree y muchos centros en los que en cada uno de ellos hay un servicio de caché de paquetes para minimizar el tráfico de Internet. Para configurar cada equipo, deberías tener un paquete de configuración del cliente migasfree por cada centro, pero si tienes muchos centros esto puede resultar costoso. Una solución podría ser tener un sólo paquete de configuración del cliente migasfree para todos los centros y, en la postinstalación del paquete, crear las variables de entorno necesarias en función de la etiqueta del centro.
# Codigo de ejemplo postinst acme-migasfree-client TAGS=`migasfree-tags -g` for CENTRO in $TAGS do if [ $CENTRO = "CTR-DELEGACION-BARCELONA" ]; then echo "MIGASFREE_CLIENT_PACKAGE_PROXY_CACHE='192.168.96.6:3142'" > /etc/profile.d/migasfree.sh fi if [ $CENTRO = "CTR-DELEGACION-MADRID" ]; then echo ""MIGASFREE_CLIENT_PACKAGE_PROXY_CACHE='192.168.80.4:3142'" > /etc/profile.d/migasfree.sh fi done