SaltStack - Servidor Salt File

O servidor de arquivos Salt é um servidor ZeroMQ sem estado. Está embutido no Salt master. Um servidor de arquivos Salt é usado para distribuir arquivos do mestre para os lacaios. Ele contém diferentes módulos. Vamos entender o servidor de arquivos salt, sua configuração, módulos relacionados ao servidor de arquivos salt, como acessar o servidor de arquivos salt em python, etc., neste capítulo.

Backend do servidor de arquivos

O backend do servidor de arquivos permite que o servidor de arquivos Salt atue como uma interface transparente para outro servidor de arquivos, como um sistema de arquivos local, sistema de controle de versão Git, etc.

Um back-end do servidor de arquivos Git pode ser habilitado usando a seguinte configuração no arquivo mestre.

fileserver_backend:
   - git

Para habilitar vários sistemas de arquivos de backend, podemos usar a seguinte configuração.

fileserver_backend:
   - roots
   - git

Também podemos especificar a opção adicional para um servidor back-end diferente usando a seção específica do servidor back-end correspondente.

Sistema de arquivos local

Para usar este sistema, temos que usar o seguinte código.

file_roots:
   base:
      - /srv/salt/prod

Sistema de arquivos Git

Para usar este sistema, temos que usar o seguinte código.

gitfs_remotes:
   - https://github.com/sample/sample1.git

Solicitando arquivos

O Salt tem a opção de solicitar arquivos para ambientes específicos.

salt://path/to/file?saltenv = base

Aqui, o ambiente é definido usando a opção raízes.

Configuração do servidor de arquivos

Os arquivos salt podem ser alocados em vários diretórios raiz e acessados ​​especificando o caminho do arquivo e o ambiente a ser pesquisado. Os ambientes individuais podem abranger várias raízes de diretório.

Meio Ambiente

O ambiente padrão é básico. Este ambiente é definido e é usado para baixar arquivos quando nenhum outro ambiente é especificado.

file_roots:
   base:
      - /srv/salt/base

Você também pode usar vários ambientes, conforme mostrado no código abaixo.

file_roots:
   base:
      - /srv/salt/base
   dev:
      - /srv/salt/dev
      - /srv/salt/base

Módulo CP

O módulo CP é o módulo principal para manipular o Salt file server. osalt-cp O comando também pode ser usado para distribuir arquivos apresentados pelo servidor de arquivos Salt.

GET_FILE

o cp.get_fileA função pode ser usada no minion para baixar um arquivo do mestre. É definido conforme mostrado no seguinte bloco de código.

salt '*' cp.get_file salt://vimrc /etc/vimrc

O comando acima instrui todos os lacaios de sal a baixar o vimrc arquivo e copie-o para /etc/vimrc.

Habilitar modelo

Você pode habilitar a opção de modelo em get_file da seguinte forma -

salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja

Aplicar compressão

Para usar a compressão, use o gzipargumento nomeado. Os valores válidos são inteiros de 1 a 9, onde 1 é a compactação mínima e 9 é o valor máximo.

O comando é definido da seguinte forma -

salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5

GET_DIR

o cp.get_dirA função pode ser usada no minion para baixar um diretório inteiro do mestre. É definido no seguinte bloco de código.

salt '*' cp.get_dir salt://etc/mysql /etc

o cp.get_dirsuporta renderização de template e argumentos de compressão gzip. Se quiser, você também pode atribuir.

Módulo FILECLIENT

O Salt fornece um módulo python que ajuda a acessar o servidor de arquivos salt. osalt/fileclient.py módulo é usado para configurar a comunicação do lacaio com o mestre.

O código de amostra para obter arquivos é o seguinte -

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)

Aqui,

  • opts está disponível quando o módulo é executado no ambiente salt. Caso contrário, devemos fornecer o caminho de configuração -/etc/salt/minion.

  • path refere-se ao caminho do arquivo de origem no servidor de arquivos salt.

  • dest refere-se ao caminho de destino do arquivo.

  • saltenv refere-se ao meio ambiente

No próximo capítulo, vamos entender como usar Git como o servidor de arquivos.