Depois de instalar e integrar o serviço SaltStack 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 SaltStack Config. Você pode implantar o serviço de subordinados Salt nos seus nós usando modelos de nuvem do vRealize Automation ou instalando o serviço por meio do Secure Shell (SSH).
O Salt e sua relação com o SaltStack Config
O SaltStack 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 SaltStack Config. O SaltStack 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 vRealize Automation.
Antes de começar a usar o SaltStack 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 SaltStack Config.
Antes de começar
- Instale e configure o SaltStack Config e integre-o ao vRealize Automation.
- Os nós que são gerenciados pelo SaltStack Config devem ser capazes de acessar o mestre Salt e devem residir na mesma rede que o ponto de integração do SaltStack 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 SaltStack 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.
- Para obter informações sobre como instalar o serviço de subordinados Salt no RedHat Linux ou no CentOS, consulte Dependências necessárias do SaltStack Config.
- Para outros sistemas operacionais, consulte http://repo.saltstack.com/.
- 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
- Inicie o serviço do subordinado:
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- 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 SaltStack 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 vRealize 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 SaltStack 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.
Grupo de propriedades do SaltStackConfiguration
O processo de instalação e configuração do serviço do SaltStack Config no vRealize Suite Lifecycle Manager cria um grupo de propriedades do vRealize Automation chamado de SaltStackConfiguration. Você usa os valores do grupo de propriedades do SaltStackConfiguration ao configurar a integração do SaltStack Config em uma implantação ou modelo de nuvem do vRealize Automation.
Você também pode usá-los na configuração baseada em cloud-init ou Cloudbase-init em um modelo do vRealize Automation (anteriormente chamado de blueprints) para instalar subordinados. As duas propriedades no SaltStackConfiguration são masterAddress, que corresponde à configuração hostname no ponto de integração do SaltStack Config e masterFingerprint. Um exemplo de grupo de propriedades do SaltStackConfiguration é mostrado abaixo.
Adicione subordinados ao mestre do Salt configurado para vRealize Automation
Quando SaltStack 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 vRealize Automation.
Instale e implante subordinados usando scripts cloud-init ou Cloudbase-init em uma implantação ou modelo de nuvem do vRealize 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 vRealize Automation SaltStack 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 vRealize 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 SaltStack Config no vRealize Suite Lifecycle Manager. 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.
- Imagem do vRealize 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 Cloud Assembly, você poderá exibi-la usando o serviço Service Broker.
Exemplo: implantação baseada em Linux e cloud-init
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
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.
- Instale o serviço de subordinado do Salt na VM do Windows.
- Atualize o valor do nome do host do mestre do Salt na configuração do subordinado.
- Atualize o valor de impressão digital do mestre do Salt na configuração do subordinado.
- Defina o
minion_id
como o nome do recurso da VM que será usado para aceitar o subordinado no mestre do Salt. - Reinicie o subordinado.
Mais informações sobre a implantação de Salt minions
Para conhecer métodos alternativos de usar o SaltStack Config integrado para implantar subordinados Salt de um modelo de nuvem do vRealize Automation, leia a postagem de blog Cloud Assembly e segredos ABX (e como usá-los para instalar agentes de subordinado SaltStack do vRealize).
Para obter informações relacionadas sobre como definir e implantar modelos do Cloud Assembly em geral, especialmente se estiver familiarizado com o SaltStack, mas não com o vRealize Automation, consulte Projetando suas implantações do vRealize Automation Cloud Assembly.