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.