Depois de instalar e integrar o serviço Automation Config, você também precisa instalar, executar e registrar o serviço de subordinados Salt em todos os nós que pretende gerenciar usando o Automation Config. Você pode implantar o serviço de subordinados Salt nos seus nós usando modelos de nuvem do VMware Aria Automation ou instalando o serviço por meio do Secure Shell (SSH).

O Salt e sua relação com o Automation Config

O Automation Config é executado no Salt, uma estrutura de execução remota de código aberto baseada em Python e usada para:

  • Gerenciamento de configuração
  • Automação
  • Provisionamento
  • Orquestração

O Salt é a tecnologia subjacente à funcionalidade central do Automation Config. O Automation Config aumenta e estende o Salt, fornecendo funcionalidade e recursos adicionais que facilitam ainda mais o seu uso.

O Salt usa o modelo de controlador/cliente, no qual um controlador emite comandos para um cliente, que então executa esses comandos. No ecossistema Salt, o controlador é um servidor que está executando o serviço do mestre Salt. Ele emite comandos para um ou mais subordinados Salt, que são os nós que estão executando o serviço de subordinados Salt e que estão registrados nesse mestre específico.

Outra maneira de descrever o Salt é como um modelo de publicador/assinante. O mestre publica trabalhos que precisam ser executados, e os subordinados assinam esses trabalhos. Quando um trabalho específico for aplicável a um subordinado, ele executará esse trabalho. Quando um subordinado finaliza a execução de um trabalho, ele envia dados de retorno do trabalho de volta ao mestre.

Minions são nós que executam o serviço de sal-minion. Esse serviço escuta os comandos de um Sal master e realiza as tarefas solicitadas. Você pode implantar subordinados a partir de modelos de nuvem do VMware Aria Automation.

Antes de começar a usar o Automation Config para gerenciamento de configuração, você deve instalar o serviço de subordinados Salt em todos os nós que deseja gerenciar. Você também deve registrar os subordinados aceitando suas chaves e enviando-as ao Automation Config.

Antes de começar

  • Instale e configure o Automation Config e integre-o ao VMware Aria Automation.
  • Os nós que são gerenciados pelo Automation Config devem ser capazes de acessar o mestre Salt e devem residir na mesma rede que o ponto de integração do Automation Config e o mestre Salt.
  • As máquinas do vSphere implantadas em uma rede privada devem ser capazes de iniciar uma conexão com a integração do Automation Config e o mestre Salt.

Instalando o serviço de subordinados Salt via SSH

O processo para instalar o serviço de subordinados Salt usando SSH depende do sistema operacional em execução nesses nós.

Após instalar o serviço de subordinados Salt:
  1. Configure cada subordinado para se comunicar com o mestre criando um arquivo master.conf no diretório /etc/salt/minion.d. Nesse arquivo, forneça o endereço IP do mestre. Por exemplo: master: 192.0.2.1
  2. Inicie o serviço do subordinado:

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Repita as etapas anteriores para todos os nós restantes.

Depois de configurar esses arquivos de subordinados para apontar para o mestre Salt, aceite as chaves dos subordinados no serviço Automation Config no espaço de trabalho de Chaves de Subordinados.

Instalando o serviço de subordinados Salt com o uso de modelos de nuvem do VMware Aria Automation

Para implantar o serviço de subordinados Salt usando modelos de nuvem, você deve ter acesso a e ser proficiente no uso de cloud-init (Linux) ou Cloudbase-init (Windows). Para adicionar subordinados Salt ao mestre Salt configurado para a integração do Automation Config, a máquina virtual no seu modelo de nuvem deve oferecer suporte para cloud-init (Linux) ou Cloudbase-init (Windows).

As seções a seguir explicam como implantar o serviço de subordinados Salt usando modelos de nuvem.

Adicione subordinados ao mestre do Salt configurado para VMware Aria Automation

Quando Automation Config é instalado, um endereço IP do mestre do Salt é especificado. Esse endereço IP mestre é usado como a propriedade do masterAddress ao implantar subordinados de um modelo de nuvem do VMware Aria Automation.

Instale e implante subordinados usando scripts cloud-init ou Cloudbase-init em uma implantação ou modelo de nuvem do VMware Aria Automation. Você também pode usar um mapeamento de imagem que representa um script de configuração de nuvem que usa qualquer um desses formatos. Para adicionar subordinados do Salt ao mestre do Salt que está associado a uma integração do VMware Aria Automation Automation Config, a máquina de destino deve dar suporte ao cloud-init (Linux) ou ao Cloudbase-init (Windows). Os scripts de configuração de nuvem do VMware Aria Automation suportam ambos os formatos.

Configure um recurso de máquina no modelo de nuvem com um valor minionId e um valor cloudConfig e consulte o grupo de propriedades do SaltStackConfiguration. O grupo de propriedades do SaltStackConfiguration é criado durante a instalação e a configuração do serviço do Automation Config no VMware Aria Suite Lifecycle. Ele contém as propriedades masterAddress e masterFingerprint.

O valor minionId deve corresponder ao valor especificado para o /salt/minion_id da máquina na seção cloudConfig do código do modelo de nuvem.

Observação: Por padrão, os subordinados se identificam ao mestre pelo nome do host, mas você pode definir uma ID de subordinado personalizado. Para obter informações sobre como definir um ID de subordinado personalizado, consulte Configurando um ID de subordinado personalizado (opcional) na documentação Instalação e Upgrade do Automation Config.
Abaixo, são mostrados exemplos de códigos de modelo de nuvem do VMware Aria Automation baseados no Windows e no Linux. Observe que os scripts de configuração de nuvem podem ser especificados usando qualquer um dos seguintes métodos:
  • Imagem do VMware Aria Automation chamada do código do modelo de nuvem
  • Script de configuração de nuvem chamado do código do modelo de nuvem
  • O conteúdo do script de configuração de nuvem adicionado diretamente ao código de modelo de nuvem

Observação: Quando você implanta um modelo de nuvem que contém subordinados Salt, se a implantação não estiver visível no Automation Assembler, você poderá exibi-la usando o serviço Automation Service Broker.

Exemplo: implantação baseada em Linux e cloud-init

Um exemplo de configuração de modelo de nuvem para implantar minions em uma máquina baseada em Linux compatível com cloud-init é mostrado abaixo:
resources:
  Salt-Minion:
    type: Cloud.Machine
    properties:
      image: Ubuntu-18
      flavor: medium
      constraints:
        - tag: 'env:vsphere'
      cloudConfig: |
        #cloud-config
        hostname: ${input.saltminionhostname}
        users:
          - name: ${input.user}
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: sudo
            shell: /bin/bash
        runcmd:
          - PASS=${input.password}
          - USER=${input.user}
          - echo $USER:$PASS | /usr/sbin/chpasswd
          - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
          - service ssh reload
          - curl -L https://bootstrap.saltstack.com -o install_salt.sh
          - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}

Exemplo: implantação baseada em Windows e Cloudbase-init

Um exemplo de configuração de modelo de nuvem para implantar minions em uma máquina com base em Windows compatível com Cloudbase-init é mostrado abaixo:
formatVersion: 1
inputs: {}
resources:
  WindowsVM-Minion:
    type: Cloud.vSphere.Machine
    properties:
      image: win2016
      flavor: medium
      customizationSpec: Windows
      minionId: '${resource.WindowsVM-Minion.resourceName}'
      networks:
        - network: '${resource.wpnet.id}'
          name: '${wpnet.name}'
          assignPublicIpAddress: true
      cloudConfig: |
        #ps1_sysnative
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe
        Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion
        Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}'
        C:\salt\salt-call.bat service.restart salt-minion
  wpnet:
    type: Cloud.Network
    properties:
      name: wpnet
      networkType: existing

Como configurar comandos do PowerShell

Configure comandos do PowerShell na seção cloudConfig dos seus modelos de nuvem.

Antes de ativar comandos do PowerShell, baixe o pacote de subordinados Salt no site do repositório Salt. Em seguida, conclua as seguintes etapas:
  1. Instale o serviço de subordinado do Salt na VM do Windows.
  2. Atualize o valor do nome do host do mestre do Salt na configuração do subordinado.
  3. Atualize o valor de impressão digital do mestre do Salt na configuração do subordinado.
  4. Defina o minion_id como o nome do recurso da VM que será usado para aceitar o subordinado no mestre do Salt.
  5. Reinicie o subordinado.

Mais informações sobre a implantação de Salt minions

Para conhecer métodos alternativos de usar o Automation Config integrado para implantar subordinados Salt de um modelo de nuvem do VMware Aria Automation, leia a postagem de blog Assembler e segredos ABX (e como usá-los para instalar agentes de subordinados do Automation Config).

Para obter informações relacionadas sobre como definir e implantar modelos do Automation Assembler em geral, especialmente se estiver familiarizado com o Config, mas não com o Aria Automation, consulte Projetando suas implantações do Assembler.