Sistema de gestión de configuración utilizable. A diferencia de otras herramientas, cdist utiliza scripts shell para definir y aplicar configuraciones. Asegúrate de que se tiene acceso SSH al host remoto que deseas gestionar. Crear un directorio para almacenar las configuraciones de cdist:
# mkdir -p cdist-configs/{conf,bin,type}
# cd ~/cdist-configs
conf: Contiene las configuraciones declarativas , bin: Los scripts personalizados y type: Define tipos de configuraciones reutilizables.
1.-
Como ejemplo, imaginemos que se precisa instalar nginx en un servidor remoto: Definir un script de configuración en:
# nano ~/cdist-configs/conf/manifest/init
#!/bin/sh
__package nginx
Aquí, __package es un tipo predefinido que instala un paquete en el sistema remoto.
$ cdist deploy --host 192.168.1.100 --user user
Para asegurarte de que un archivo de configuración específico está presente en un servidor:
# nano ~/cdist-configs/conf/manifest/init
#!/bin/sh
__file /etc/nginx/nginx.conf \
--source /path/to/nginx.conf
El tipo __file asegura que el archivo /etc/nginx/nginx.conf tenga el contenido especificado en source.
$ cdist deploy --host server.example.com
Si se necesita crear un usuario en el sistema remoto llamado deploy:
# nano ~/cdist-configs/conf/manifest/init
#!/bin/sh
__user deploy \
--home /home/deploy \
--shell /bin/bash
El tipo __user crea usuarios en el sistema remoto.
$ cdist deploy --host 192.168.1.200
Se puede combinar varios tipos en un manifiesto para aplicar configuraciones complejas. Por ejemplo, para instalar nginx, configurar su archivo de configuración y reiniciar el servicio:
# nano ~/cdist-configs/conf/manifest/init
#!/bin/sh
__package nginx
__file /etc/nginx/nginx.conf \
--source /path/to/nginx.conf
__service nginx --state restarted
$ cdist deploy --host 192.168.1.100
$ cdist list-types