SaltStack - Servidor de archivos Salt
El servidor de archivos Salt es un servidor ZeroMQ sin estado. Está integrado en el maestro de sal. Un servidor de archivos Salt se utiliza para distribuir archivos del maestro a los minions. Contiene diferentes módulos. Entendamos el servidor de archivos salt, su configuración, los módulos relacionados con el servidor de archivos salt, cómo acceder al servidor de archivos salt en python, etc., en este capítulo.
Backend del servidor de archivos
El backend del servidor de archivos permite que el servidor de archivos Salt actúe como una interfaz transparente para otro servidor de archivos como un sistema de archivos local, un sistema de control de versiones de Git, etc.
Se puede habilitar un servidor de archivos Git backend mediante la siguiente configuración en el archivo maestro.
fileserver_backend:
- git
Para habilitar el sistema de archivos de backend múltiple, podemos usar la siguiente configuración.
fileserver_backend:
- roots
- git
También podemos especificar la opción adicional para un servidor backend diferente usando la sección específica del servidor backend correspondiente.
Sistema de archivos local
Para usar este sistema, tenemos que usar el siguiente código.
file_roots:
base:
- /srv/salt/prod
Sistema de archivos Git
Para usar este sistema, tenemos que usar el siguiente código.
gitfs_remotes:
- https://github.com/sample/sample1.git
Solicitar archivos
Salt tiene la opción de solicitar archivos para entornos específicos.
salt://path/to/file?saltenv = base
Aquí, el entorno se define mediante la opción de raíces.
Configuración del servidor de archivos
Los archivos Salt se pueden asignar dentro de muchos directorios raíz y se puede acceder a ellos especificando tanto la ruta del archivo como el entorno de búsqueda. Los entornos individuales pueden abarcar varias raíces de directorio.
Medio ambiente
El entorno predeterminado es básico. Este entorno está definido y se utiliza para descargar archivos cuando no se especifica ningún otro entorno.
file_roots:
base:
- /srv/salt/base
También puede utilizar varios entornos como se muestra en el siguiente código.
file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
- /srv/salt/base
Módulo CP
El módulo CP es el módulo principal para manipular el Salt file server. lossalt-cp El comando también se puede utilizar para distribuir archivos presentados por el servidor de archivos Salt.
OBTENER EL ARCHIVO
los cp.get_fileLa función se puede utilizar en el minion para descargar un archivo del maestro. Se define como se muestra en el siguiente bloque de código.
salt '*' cp.get_file salt://vimrc /etc/vimrc
El comando anterior indica a todos los minions de Salt que descarguen el vimrc archivar y copiar a /etc/vimrc.
Habilitar plantilla
Puede habilitar la opción de plantilla en get_file de la siguiente manera:
salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja
Aplicar compresión
Para usar la compresión, use el gzipargumento con nombre. Los valores válidos son números enteros del 1 al 9, donde 1 es la compresión mínima y 9 es el valor máximo.
El comando se define de la siguiente manera:
salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5
GET_DIR
los cp.get_dirLa función se puede utilizar en el minion para descargar un directorio completo del maestro. Se define en el siguiente bloque de código.
salt '*' cp.get_dir salt://etc/mysql /etc
los cp.get_diradmite la representación de plantillas y los argumentos de compresión gzip. Si lo desea, también puede asignar.
Módulo FILECLIENTE
Salt proporciona un módulo de Python que ayuda a acceder al servidor de archivos salt. lossalt/fileclient.py El módulo se utiliza para configurar la comunicación del minion al maestro.
El código de muestra para obtener archivos es el siguiente:
import salt.minion
import salt.fileclient
def get_file(path, dest, saltenv = ‘base'):
client = salt.fileclient.get_file_client(__opts__)
return client.get_file(path, dest, true, saltenv)
Aquí,
opts está disponible cuando el módulo se ejecuta en el entorno salt. De lo contrario, deberíamos proporcionar la ruta de configuración:/etc/salt/minion.
path se refiere a la ruta del archivo fuente en el servidor de archivos salt.
dest hace referencia a la ruta de destino del archivo.
saltenv se refiere al medio ambiente
En el próximo capítulo, entenderemos cómo usar Git como servidor de archivos.