Se você gerencia hosts do Windows com o Red Hat Ansible Automation Platform, não pode deixar de ler este post! Você conhecerá o plugin de inventário do Active Directory, que pode ser usado para aproveitar a plataforma como uma source of truth do Ansible Automation Platform. Primeiro, vamos voltar um pouco e entender por que o gerenciamento de inventários é tão importante.
O Ansible Automation Platform foi criado para ser uma ferramenta de automação simples, avançada e sem agentes.

A arquitetura sem agentes oferece muita variedade e amplitude em termos do que pode ser automatizado, já que não ficamos limitados ao gerenciamento de dispositivos que exigem agentes. No modelo sem agentes, o gerenciamento de inventários é um fator essencial para o sucesso. Em geral, precisamos saber o seguinte:
- Quais dispositivos devem ser gerenciados? Onde conseguimos uma lista atualizada e precisa da infraestrutura?
- Como classificar os nós de modo que você saiba o tipo de automação de cada um deles? Por exemplo, a automação em um servidor de banco de dados é diferente daquela executada em um servidor web.
Os plugins de inventário oferecem uma ótima solução para esses problemas. Em essência, eles são scripts que permitem a atribuição de uma source of truth para coletar uma lista de servidores e características que nos ajudam a entender melhor como aplicar a automação a essas tecnologias.
Quando pensamos no gerenciamento de um ambiente do Microsoft Windows, o Active Directory é uma source of truth muito atrativa, já que os servidores costumam ser registrados em um domínio. Graças ao Red Hat Ansible Certified Content Collection for Microsoft AD, agora oferecemos um ótimo conjunto de módulos compatíveis com o Microsoft Active Directory e, principalmente, um plugin de inventário que pode utilizar a plataforma como uma source of truth. Usando esse plugin, é possível filtrar e agrupar hosts com base em atributos do Active Directory e associações de grupo.
Vejamos o plugin em ação.
Começo com a linha de comando
Vamos começar com a linha de comando usando o automation content navigator e automation execution environments. As instruções para instalar e configurar o automation content navigator estão disponíveis na documentação sobre criação de conteúdo. O execution environment com suporte que vem no Ansible Automation Platform 2.4 ou superior já inclui tudo que você precisa para começar a integração com o Microsoft Active Directory, como a coleção microsoft.ad e as dependências necessárias do Python. No caso de versões anteriores, talvez seja necessário personalizar o execution environment para incluir esses pré-requisitos.
Felizmente, o módulo debug_ldap_client pode ser usado para verificar as dependências necessárias do Python e a configuração do DNS e Kerberos. Como estamos usando um automation execution environment, executaremos o código dentro da imagem para verificar se temos as dependências necessárias para o plugin de inventário. Podemos ignorar os erros de traceback, porque nosso objetivo é apenas assegurar que as dependências do Python estejam presentes para nosso caso de uso.
$ ansible-navigator exec -- ansible localhost -m microsoft.ad.debug_ldap_client
< Output Truncated >
"packages": {
"dnspython": "2.3.0",
"krb5": "0.5.0",
"pyspnego": "0.9.0",
"sansldap": "0.1.0"
Para criar uma definição de inventário que consulte o servidor do Active Directory, o arquivo de inventário precisa terminar com "microsoft.ad.ldap.yml" ou "microsoft.ad.ldap.yaml". Portanto, vamos chamá-lo de microsoft.ad.ldap.yml. Para testar, usaremos a configuração a seguir. Você notará que o nome de usuário e a senha estão em texto simples. Isso possibilita a realização de testes iniciais de conexão para podermos ajustar alguns dos atributos que talvez serão usados. As credenciais serão corrigidas depois.
plugin: microsoft.ad.ldap
server: ms-ad.demolab.local
username: svc-aap-ldap
password: Redhat123
tls_mode: ldaps
Agora podemos testar o plugin com a linha de comando usando o subcomando "inventory" do navegador do Ansible Automation Platform. Como estamos usando LDAPs, o repositório de confiança da AC será mapeado do host do RHEL para o execution environment usando o caminho /etc/pki/ca-trust.
Verificando a saída, podemos ver que descobrimos um host chamado MS-AD, o qual é o controlador de domínio.
$ ansible-navigator inventory -i microsoft.ad.ldap.yml --list -m stdout --eev /etc/pki/ca-trust:/etc/pki/ca-trust:O
{
"_meta": {
"hostvars": {
"MS-AD": {
"ansible_host": "ms-ad.demolab.local",
"microsoft_ad_distinguished_name": "CN=MS-AD,OU=Domain Controllers,DC=demolab,DC=local"
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"MS-AD"
]
}
}
A conectividade está boa, mas as informações que recebemos são um pouco esparsas, e não conseguimos adicionar o host a um grupo. Há muitos parâmetros documentados que podemos usar para personalizar o plugin de inventário conforme necessário.
Na verdade, todos os atributos de computador do Active Directory podem ser usados para aplicar filtros, definir variáveis e agrupar hosts. Para ver todos os atributos disponíveis para o host MS-AD , use o comando do PowerShell a seguir em um host do Windows com o módulo PowerShell do Active Directory instalado.
Get-ADComputer -Identity "MS-AD" -Properties *
Vamos incluir outros parâmetros e começar a agrupar os hosts. Atualize o arquivo de configuração de inventário microsoft.ad.ldap.yml para incluir alguns atributos extras a serem recuperados do Active Directory. No nosso exemplo atualizado, coletaremos atributos de "OperatingSystem" e "location", além de uma lista de todos os grupos em que o computador é membro. Não se preocupe se a linha "regex_search" parecer um pouco assustadora, porque ela foi copiada da documentação.
A última parte da configuração define os grupos do Ansible Automation Platform para podermos classificar os nós. Todas as máquinas serão automaticamente adicionadas a um grupo chamado "windows". Também adicionaremos os hosts que são membros de um grupo de domínio "Production" a um grupo correspondente chamado "production". Por fim, incluiremos os hosts aos grupos com base nos atributos de sistema operacional e local. Este será o arquivo de configuração final.
plugin: microsoft.ad.ldap
server: ms-ad.demolab.local
username: svc-aap-ldap
password: Redhat123
tls_mode: ldaps
attributes:
OperatingSystem:
operating_system:
location:
memberOf:
computer_membership: this | map("regex_search", '^CN=(?P<name>.+?)((?<!\\),)', '\g<name>') | flatten
groups:
windows: true
production: '"Production" in computer_membership'
keyed_groups:
- key: operating_system | lower
prefix: os
default_value: unknown
- key: location | lower
default_value: unknown
prefix: location
Agora um último teste com a linha de comando. Revisaremos os atributos que recebemos do Active Directory. O rótulo "__ansible_unsafe" possibilita indicar que esses valores não são compatíveis com o template Jinja2.
$ ansible-navigator inventory -i microsoft.ad.ldap.yml -m stdout --host MS-AD --eev /etc/pki/ca-trust:/etc/pki/ca-trust:O
{
"ansible_host": "ms-ad.demolab.local",
"computer_membership": [
{
"__ansible_unsafe": "Production"
}
],
"location": {
"__ansible_unsafe": "london-dc1"
},
"microsoft_ad_distinguished_name": "CN=MS-AD,OU=Domain Controllers,DC=demolab,DC=local",
"operating_system": {
"__ansible_unsafe": "Windows Server 2019 Standard Evaluation"
}
}
Em seguida, vejamos a associação aos grupos. O servidor agora é membro de quatro grupos do Ansible Automation Platform que podemos usar na segmentação conforme necessário.
$ ansible-navigator inventory -i microsoft.ad.ldap.yml -m stdout --graph --eev /etc/pki/ca-trust:/etc/pki/ca-trust:O
@all:
|--@_london_dc1:
| |--MS-AD
|--@os_windows_server_2019_standard_evaluation:
| |--MS-AD
|--@production:
| |--MS-AD
|--@windows:
| |--MS-AD
Testes finalizados! Vejamos como usar esses conhecimentos em um ambiente empresarial com o automation controller.
Configuração do automation controller
O automation controller, permite padronizar como implantar, iniciar, delegar e auditar a automação. Agora, precisamos corrigir as credenciais em texto simples e inserir alguns controles na configuração do inventário.
Criar um tipo de credencial: com o automation controller, é possível definir tipos personalizados de credenciais para interagir com vários sistemas, preservando a postura de segurança. Assim, podemos injetar variáveis de ambiente no runtime, em vez de usar todas elas em texto simples. Com base na documentação do plugin de inventário, você verá que ele aceita diversas variáveis de ambiente para fins de autenticação. Usaremos essas variáveis com o automation controller.
Na IU do automation controller, acesse "Credential Types" e pressione "Add". Dê um nome ao tipo de credencial. Aqui ele será chamado de "Microsoft AD Inventory". Use "Input configuration" para definir os campos relacionados ao nome de usuário, senha e servidor do AD.fields: - id: MICROSOFT_AD_LDAP_USERNAME type: string label: Username - id: MICROSOFT_AD_LDAP_PASSWORD type: string label: Password secret: true - id: MICROSOFT_AD_LDAP_SERVER type: string label: AD Server required: - MICROSOFT_AD_LDAP_USERNAME - MICROSOFT_AD_LDAP_PASSWORD - MICROSOFT_AD_LDAP_SERVER
O "injector configuration" define as variáveis que serão injetadas na sincronização do inventário. Use o seguinte:
env: MICROSOFT_AD_LDAP_SERVER: '{{ MICROSOFT_AD_LDAP_SERVER }}' MICROSOFT_AD_LDAP_PASSWORD: '{{ MICROSOFT_AD_LDAP_PASSWORD }}' MICROSOFT_AD_LDAP_USERNAME: '{{ MICROSOFT_AD_LDAP_USERNAME }}'
- Criar uma credencial: agora que temos um novo tipo de credencial, podemos criar as credenciais correspondentes. Acesse "Credentials" e clique em "Add". Selecione o novo tipo de credencial "Microsoft AD Inventory" e preencha o nome de usuário, a senha e o servidor do Active Directory assim como fizemos na linha de comando.
- Criar um projeto: é importante gerenciar a configuração de inventário do Active Directory no controle de origem para que as mudanças fluam pelas aprovações e revisões por pares relevantes. Com um projeto no automation controller, podemos fazer o mapeamento para um repositório de controle de origem. A configuração que criamos para a linha de comando está disponível em um repositório do GitHub: https://github.com/pharriso/ansible_microsoft_ad_inventory
IMPORTANTE! O nome de usuário, senha e servidor do Active Directory não foram enviados ao controle de origem. Eles agora são gerenciados pela nossa credencial no automation controller. Remova esses parâmetros da configuração de inventário.
Na IU do automation controller, navegue até "Projects" e clique em "Add". Confira a seguir os detalhes do nosso projeto com a URL apropriada de controle de origem. Você encontra mais informações sobre os outros campos do projeto na documentação.
Criar um inventário: agora podemos criar nosso inventário. Acesse "Inventories", clique em "Add" e selecione "Add Inventory". Dê ao inventário um nome apropriado.
Após clicar em "Save", você verá mais opções para o inventário. Selecione "Sources" e clique em "Add". É aqui que nossa configuração será consolidada. Basta selecionar o arquivo de configuração de inventário e a credencial. Confira a seguir a origem de inventário concluída.OBSERVAÇÃO: a única pegadinha aqui é que você precisa digitar manualmente o nome do arquivo de inventário e pressionar Enter para preencher o campo.
Quando você clicar em "Save", o botão "Sync" será mostrado na parte inferior da tela. Clique no botão para executar o plugin de inventário. Para acompanhar o andamento da execução, verifique a opção "Last job status" ou acesse o item de menu "Jobs". Esperamos que ela seja um sucesso.
Para validar a configuração do plugin, acesse "Inventories", navegue até "Demolab AD Inventory" e selecione a guia "Hosts". Você verá que os hosts foram importados:
Ao clicar no host, você também verá as variáveis (atributos) que coletamos do Active Directory. Por fim, clique na guia "Groups" para verificar se o host foi agrupado corretamente.
Próximas etapas
O gerenciamento de inventários é essencial para otimizar e escalar a automação com o Ansible Automation Platform. O plugin de inventário do Microsoft AD é apenas mais um exemplo de como o Ansible Automation Platform simplifica a vida de usuários como nós. Ao utilizar o Active Directory como uma source of truth, esperamos que você acelere sua jornada com a automação do Ansible Automation Platform no Windows.
- Ansible Automation Platform para Windows: descubra como usar o Ansible Automation Platform para gerenciar casos de uso comuns e infraestrutura do Windows.
- Teste de subscrição: o que acha de começar agora? Participe de uma avaliação da subscrição para ter acesso ilimitado a todos os componentes do Ansible Automation Platform.
- Como usar o Kerberos para gerenciar o panorama do Windows
Sobre o autor
Navegue por canal
Automação
Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes
Inteligência artificial
Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente
Nuvem híbrida aberta
Veja como construímos um futuro mais flexível com a nuvem híbrida
Segurança
Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias
Edge computing
Saiba quais são as atualizações nas plataformas que simplificam as operações na borda
Infraestrutura
Saiba o que há de mais recente na plataforma Linux empresarial líder mundial
Aplicações
Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações
Programas originais
Veja as histórias divertidas de criadores e líderes em tecnologia empresarial
Produtos
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Red Hat Cloud Services
- Veja todos os produtos
Ferramentas
- Treinamento e certificação
- Minha conta
- Suporte ao cliente
- Recursos para desenvolvedores
- Encontre um parceiro
- Red Hat Ecosystem Catalog
- Calculadora de valor Red Hat
- Documentação
Experimente, compre, venda
Comunicação
- Contate o setor de vendas
- Fale com o Atendimento ao Cliente
- Contate o setor de treinamento
- Redes sociais
Sobre a Red Hat
A Red Hat é a líder mundial em soluções empresariais open source como Linux, nuvem, containers e Kubernetes. Fornecemos soluções robustas que facilitam o trabalho em diversas plataformas e ambientes, do datacenter principal até a borda da rede.
Selecione um idioma
Red Hat legal and privacy links
- Sobre a Red Hat
- Oportunidades de emprego
- Eventos
- Escritórios
- Fale com a Red Hat
- Blog da Red Hat
- Diversidade, equidade e inclusão
- Cool Stuff Store
- Red Hat Summit