Configurando o minion do SaltStack Config utilizando PowerCLI no vRealize Automation 8.x

Configurando o minion do SaltStack Config utilizando PowerCLI no vRealize Automation 8.x

Antes de começarmos brincar com o SaltStack Config, é necessário garantir que a máquina cliente esteja com o salt-minion instalado, pois este agente é fundamental para que o SaltStack reconheça a máquina em questão. Existem várias formas de configurar o minion, é possível fazer diretamente no sistema operacional, pelo vRA utilizando o cloud-config do blueprint em conjunto com o cloud-init do sistema operacional e também com o VMware Tools (Open VM Tools) e PowerCLI. Vamos misturar as opções e faremos com que o vRA crie a VM, acione uma subscription que irá rodar o PowerCLI para instalar o agente na máquina por meio do Open VM Tools. 

A primeira coisa a ser feita é garantir que a VM (template do vRA) esteja com o VMware Tools ou Open VM Tools na versão 12 incluindo o salt minion. No meu lab eu fiz os testes com o Ubuntu 22.04 (mas funciona pra Windows e Linux de boooooa). Para instalar o Open VM Tools no Ubuntu usei este comando:

sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/open-vm-tools/open-vm-tools-salt-minion_12.1.0-1~ubuntu0.22.04.1_amd64.deb
sudo dpkg -i open-vm-tools-salt-minion_12.1.0-1~ubuntu0.22.04.1_amd64.deb

Ou direto:

sudo apt-get install open-vm-tools-salt-minion

Garanta que a versão do Open VM Tools é a 12, o resto é besteira 🙂 o comando abaixo pode ajudar:

vmware-toolbox-cmd -v

Agora vamos criar uma ABX action em PowerShell, é bem simples. Obs: para o usuário e senha utilize o secret do vRA (S-E-M-P-R-E).

function handler($context, $inputs) {
    $vm = $inputs.resourceNames[0] # get VM from deployment
    $salt_master = "saltconfig.caverna.local" # salt config server
    $vCenter = "vcenter-01.caverna.local"
    $vCenterUser = "administrator@vsphere.local"
    $vCenterPasswd = "S3nh@S3gur@"
    
    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false   
    Connect-VIServer $vCenter -username $vCenterUser -password $vCenterPasswd | Out-Null # connect to vCenter
    
    $salt_minion_id = $vm

    New-AdvancedSetting -Entity $vm -Name "guestinfo./vmware.components.salt_minion.args" -Value "master=$salt_master id=$salt_minion_id" -Confirm:$false | Out-Null
    New-AdvancedSetting -Entity $vm -Name "guestinfo./vmware.components.salt_minion.desiredstate" -Value "present" -Confirm:$false | Out-Null
}

Salve a action e cria uma subscription. Em event topic selecione compute post provision e associe com a nova action que acabamos de criar.

No blueprint não tem nada diferente, apenas lembre de fazer deploy utilizando o template com o Open VM Tools na versão 12. Manda bala no deploy!

Deploy finalizou e a action executou com sucesso.

Se olhar no SaltStack Config, a nova VM já está lá aguardando. Se o componente do SaltStack Config for configurado no blueprint, então esta etapa de aprovação nem será necessária.

Já que estamos falando sobre esta funcionalidade do VMware Tools, outra forma de fazer sem usar o vRA seria adicionando o códio abaixo ao arquivo tools.conf do Open VM Tools localizado em /etc/vmware-tools.

[componentmgr]
poll-interval=180
included=salt_minion

[salt_minion]
master=saltconfig.caverna.local
conf_file=/etc/salt/minion
id=CAV-P-DB-095

Depois basta executar este comando PowerCLI para habilitar o salt-minion e as configurações definidas no arquivo tools.conf vão direto para o arquivo minion localizado em /etc/salt.

New-AdvancedSetting -Entity $vm -Name "guestinfo./vmware.components.salt_minion.desiredstate" -Value "present" -Confirm:$false

BONUS: com este comando você pode fazer uma validação do status da instalação, ou seja, da pra incrementar o script acima e deixa-lo mais interessante.

Get-AdvancedSetting -Entity $vm -Name guestinfo.vmware.components.salt_minion.laststatus

100 – Installed
101 – Installing
102 – Not Installed
103 – Install Failed
104 – Removing
105 – Removing Failed
126 – Script Failed
130 – Script Terminated

E para finalizar, caso quiser desabilitar o salt-minion, basta executar este comando no PowerCLI:

New-AdvancedSetting -Entity $vm -Name "guestinfo./vmware.components.salt_minion.desiredstate" -Value "absent" -Confirm:$false

É isso aí, turma. Até a próxima!

Apenas para esclarecer: VMware Aria Automation é o novo nome do vRealize Automation, o mesmo vale para o SaltStack Config, que agora se chama VMware Aria Automation Config. Aqui, para fins didáticos, continuo utilizando os termos vRA e SaltStack.

2 thoughts on “Configurando o minion do SaltStack Config utilizando PowerCLI no vRealize Automation 8.x

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *