Você pode criar ou carregar arquivos de estado e dados de pilares nos espaços de trabalho Servidor de Arquivos e Pilar do SaltStack Config. Se você não quiser usar o Servidor de Arquivos, o SaltStack Config também oferece suporte à conexão com um repositório externo (como um repositório Git), no qual você pode salvar seus arquivos de estado e dados de pilares.

O que são arquivos de estado?

Em vez de configurar manualmente cada nó ou aplicativo individualmente, você pode usar o sistema de gerenciamento de estado do SaltStack Config para criar arquivos de estado que podem ser aplicados a vários nós simultaneamente. Esses arquivos de estado podem incluir um conjunto de instruções que informam ao SaltStack Config quais operações devem ser executadas no nó e em qual ordem. Eles também podem explicar quais arquivos ou configurações de configuração devem ser aplicados.

Depois de escrever ou modificar um arquivo de estado, você pode executar automaticamente esses arquivos de estado e aplicá-los a muitos nós ao mesmo tempo. Você pode direcionar nós com base nas propriedades inerentes de cada nó (como seu sistema operacional) ou também pode direcionar nós com base nos rótulos personalizados que você definir. Consulte Como criar destinos? para obter mais informações.

O sistema de gerenciamento de estado também garante que cada nó esteja configurado de forma adequada e eficiente. Se uma configuração entrou em descompasso, o SaltStack Config pode colocar os nós e aplicativos de volta no seu estado de configuração em conformidade. Se uma configuração precisa ser alterada, o SaltStack Config pode implantar essas alterações rapidamente nos nós afetados.

Exemplo de um arquivo de estado

Geralmente, arquivos de estado são gravados em YAML e Jinga, mas outros formatos, como JSON, são compatíveis com o Salt. Um arquivo de estado típico pode ter a seguinte aparência:

install_apache:
  pkg.installed:
    - name: httpd
    
ensure_service_running:
  service.running:
    - name: httpd
    - watch:
      - pkg: install_apache
      
default_html_page:
  file.managed:
    - name: /var/www/html/index.html
    - source: salt://apache/index.html
Esse arquivo de estado tem três etapas que executam três módulos de execução Salt diferentes. Quando esse arquivo de estado é aplicado a um subordinado, o SaltStack Config:
  • Instala o Apache (httpd) no subordinado.
  • Inicia o serviço do Apache.
  • Implanta uma página de amostra do índice HTML que está hospedada no subordinado.

O que são dados de pilares?

Um arquivo de pilares de amostra no espaço de trabalho do Servidor de Arquivos

Observação: Uma recomendação e melhor prática é reservar dados de Pilares para informações confidenciais.
Pilares são estruturas de dados armazenados no mestre Salt e transmitidas por meio de um ou mais subordinados que foram autorizados a acessar esses dados. Dados de pilares têm dois casos de uso principais:
  • O pilar pode restringir o acesso do usuário a dados privados e confidenciais, como senhas e definições de configuração. Por exemplo, você pode usar pilares para permitir que um usuário execute um trabalho que requer autenticação em um serviço externo sem acessar essas credenciais de autenticação por conta própria. Nesse caso, você atribuiria o acesso do usuário ao trabalho e ao destino especificados, mas não ao pilar que contém detalhes de autenticação confidenciais.
  • O pilar pode enviar dados que mudam com base no contexto ou no subordinado que está solicitando os dados. Por exemplo, você pode atribuir senhas diferentes a diferentes subordinados e armazenar todas as senhas em um arquivo de pilares. Em seguida, é possível gravar um arquivo de estado que instrua o subordinado a procurar sua senha exclusiva no arquivo sem precisar criar vários arquivos ou armazenar senhas em vários locais.

Os dados armazenados no SaltStack Config Pillar Store são criptografados usando a chave de criptografia Raas associada à instância específica do SaltStack Config (por exemplo: “/etc/raas/pki/.raas.key”). Depois que os dados de Pilares são definidos na UI do SaltStack Config, eles são criptografados com essa chave e armazenados no banco de dados PostgreSQL. Essa chave também é usada para descriptografar os dados a serem exibidos na UI do SaltStack Config.

Exemplo de um arquivo de pilar

Arquivos de pilares geralmente são gravados em YAML e Jina, mas outros formatos, como JSON, são compatíveis com o Salt. Dados de pilares são armazenados como um dicionário e usam pares de chave/valor para pesquisar valores. Um arquivo de pilar típico pode ter a seguinte aparência:

 pillar1: value
 pillar2:
   - value
   - value
 pillar3:
   sub_key:
     - value
     - value

Este exemplo mostra três métodos diferentes para formatar seus dados de pilares. A sintaxe que você escolher para usar dependerá das suas necessidades e do tipo de dados que você precisa armazenar.

Antes de começar

Como o SaltStack Config conta com a tecnologia Salt, ele ajuda a ter um conhecimento de trabalho básico do Salt e dos conceitos relacionados a esses recursos. A tabela a seguir lista alguns recursos úteis para obter mais informações:

Para saber mais sobre... Consulte…

Noções básicas de trabalho com o Salt

Estados Salt

Dados de pilares

Módulos de execução e estado Salt

Depois de definir seus dados de pilares, você poderá atribuí-los a um grupo de sistemas de subordinados, clicando em Atualizar Destinos, selecionando o grupo de destinos e clicando em Salvar.

Anexação de dados de pilares a destinos no SaltStack Config

Quando dados de pilares são atribuídos a um sistema de destino específico e incluídos em arquivos de estado, eles são processados pelo mestre para cada sistema de subordinados e criptografados com uma chave AES separada para cada subordinado. Essa chave permite que os dados de pilares sejam transmitidos ao sistema de destino durante um programa de arquivo de estado ou orquestração.

Adicionando arquivos de estado ao Servidor de Arquivos

Para adicionar um arquivo de estado ao Servidor de Arquivos, para que ele possa ser usado em trabalhos:

  1. Pesquise quais módulos de execução ou estado Salt ajudariam a obter o resultado desejado. Quando você encontrar o módulo Salt que atende às suas necessidades, leia a documentação do módulo para garantir que você esteja familiarizado com os parâmetros do módulo e outros requisitos.
  2. Opcional: como prática recomendada, escreva um rascunho aproximado do seu arquivo de estado usando seu editor de código preferido e verifique se o arquivo de estado usa sintaxe bem formada com um linter de código.
  3. Na interface do usuário do SaltStack Config, clique em Configurar > Servidor de Arquivos no menu lateral para abrir o espaço de trabalho Servidor de Arquivos.
  4. Ao abrir o espaço de trabalho do Servidor de Arquivos pela primeira vez, você verá o diretório de arquivos e um novo arquivo em branco. Use esse arquivo em branco para criar um novo arquivo de estado ou para copiar seu arquivo de estado do seu editor de código.Um arquivo de estado em branco no espaço de trabalho do servidor de arquivos no SaltStack Config
  5. Clique no menu Saltenv e selecione o ambiente no qual você deseja armazenar o arquivo de estado. Se não tiver certeza de qual recurso selecionar, use base.
  6. No campo Caminho, digite filepath e filename, terminando-os com a extensão de arquivo .sls. Por exemplo, /my-directory/my-state-file.sls.
  7. No corpo do arquivo, escreva ou copie o código do arquivo de estado. Por exemplo: Código do arquivo de estado em um arquivo de estado no espaço de trabalho do Servidor de Arquivos
  8. Salve o arquivo de estado e confirme se o novo arquivo aparece no diretório do Servidor de Arquivos.

Adicionando dados de pilares a um mestre Salt

Embora você possa usar o espaço de trabalho Pilar do SaltStack Config para adicionar dados de pilar ao mestre Salt, pode ser mais fácil adicionar dados de pilar diretamente ao mestre Salt. Para adicionar dados de pilares para que eles possam ser referenciados em arquivos de estado ou atribuídos a destinos, você pode executar um dos dois métodos:

  • Conecte-se via SSH ao mestre Salt e adicione o arquivo de pilar ao diretório do mestre usando os procedimentos Salt padrão para adicionar arquivos a um mestre. Consulte Pilar e Passo a passo sobre pilares para obter mais informações.
  • Crie um trabalho na interface do usuário do SaltStack Config que adicione os dados de pilares ao mestre Salt usando o comando salt-run, que usa o recurso de executores Salt. Consulte Como criar trabalhos? para obter mais informações.

Próximas etapas

Depois de criar arquivos de estado e dados de pilares que podem ser acessados pelos subordinados, você poderá fazer referência a esses arquivos em trabalhos criados no SaltStack Config. Consulte Como criar trabalhos? para obter mais informações.