Se você já precisou criar uma role no vCenter e replicá-la em várias instâncias, sabe o quanto isso é trabalhoso e demorado.

Recentemente, enfrentei esse desafio. Criar uma role, definir permissões detalhadas e replicá-las manualmente para outros vCenters não é apenas uma tarefa repetitiva, mas também muito propensa a erros. Felizmente, encontrei uma maneira de automatizar isso, economizando tempo e esforço.

O Desafio: Criar e Replicar Roles no vCenter

Ao configurar novas roles no vCenter, percebi que não havia uma opção direta para exportar roles, o que significa que cada configuração teria que ser feita manualmente, porque no vCenter não tem nenhuma opção ou botão que permita exportar para um arquivo.

Quem já passou por isso entende o trabalho braçal envolvido. Eu também não queria fazer isso manualmente, então decidi procurar uma solução para automatizar o processo.

roles no vCenter

A Solução: Utilizando PowerCLI para Exportar e Importar Roles

Após algumas pesquisas, descobri que o PowerCLI poderia ser a chave para resolver meu problema. Com o PowerCLI, é possível listar, exportar e importar roles e suas permissões de maneira eficiente.
Aqui está um passo a passo de como consegui automatizar essa tarefa:

Passo 1: Listar e Extrair as Permissões

Primeiro, conectei no meu vCenter via PowerCLI e utilizei o cmdlet Get-VIRole para listar todas as permissões disponíveis na role em questão.
Para listar as permissões de uma role específica, usei o seguinte comando:

(Get-VIRole -name "Nome da Role").ExtensionData.Privilege

Esse comando vai listar em tela as permissões detalhadas da role, na qual você vai colar em um arquivo de texto simples no bloco de notas e salvar.

Passo 2: Criar e Importar as Permissões na Role em Outros vCenters

Com as permissões exportadas, o próximo passo foi criar a mesma role em outros vCenters definindo as permissões do arquivo de texto.
Utilizei o script abaixo para criar a role e definir as permissões:

$Role = "Nome da Role"
$File = "C:\Temp\arquivo_com_as_permissões.txt"

New-VIRole -Name $Role

if ($Role -eq $null) {
    Write-Host "Falha ao criar a role $Role. Verifique se você tem as permissões necessárias e tente novamente." -ForegroundColor Red
    exit
} else {
    Write-Host "Role $Role criada com sucesso." -ForegroundColor Green
}

# Ler as permissões do arquivo de texto extraído
$privileges = Get-Content $File

if ($privileges.Count -eq 0) {
    Write-Host "Nenhuma permissão foi encontrada no arquivo $File. Verifique o conteúdo do arquivo." -ForegroundColor Red
    exit
} else {
    Write-Host "Permissões lidas do arquivo $File com sucesso." -ForegroundColor Green
}

# Atribuir cada permissão a Role recém-criada
$privileges | ForEach-Object {
    try {
        $privilege = Get-VIPrivilege -Id $_
        if ($privilege -eq $null) {
            Write-Host "Permissão '$_' não encontrada." -ForegroundColor Red
        } else {
            Set-VIRole -Role $Role -AddPrivilege $privilege
            Write-Host "Permissão '$_' atribuída com sucesso." -ForegroundColor Yellow
        }
    } catch {
        Write-Host "Erro ao atribuir a permissão '$_': $_" -ForegroundColor Red
    }
}

Neste script você precisa preencher apenas as variáveis $Role e $File de acordo com seu desejo. Ele cria a nova Role com o nome que você declarou na variável $Role, em seguida lê as permissões contidas no arquivo de texto que você declarou em $File, e as aplica à nova role.

Também inseri alguns tratamentos de erro na tela, como por exemplo, falha na criação da nova role ou se o arquivo está vazio sem as permissões.

roles no vCenter

Benefícios da Automação

Automatizar a criação e replicação de roles no vCenter não só economiza tempo, mas também reduz o risco de erros humanos, pois a quantidade permissão existente no vCenter é enorme.
Além disso, permite que você mantenha consistência em todas as instâncias do vCenter, garantindo que as permissões sejam aplicadas exatamente iguais.

Se você desejar aprender um pouco mais sobre Roles no vCenter, e seu conjunto de permissões, acessa esse LINK!

Conclusão

Para quem me conhece, sabe que eu gosto muito de automação, de evitar tarefas repetitivas e com riscos de falhas. Automação é isso, não apenas simplifica processos complexos, mas também garante consistência e precisão em suas operações diárias.
Se este artigo foi útil para você, compartilhe-o com seus colegas que também possam se beneficiar dessas dicas

Eu fiquei curioso para saber como você lida com a replicação de roles no vCenter. Deixa um comentário, compartilhando suas experiencia ou dúvidas! 🙂