Inscreva-se no feed

No ano passado, a função microsoft.sql.server do Ansible foi incluída no Red Hat Enterprise Linux (RHEL). Com o lançamento do RHEL 8.8 e 9.2, essa função recebeu uma atualização com várias funcionalidades novas:

Este artigo aborda a integração com o Active Directory (AD) e guia você por todo o processo:

  1. Certificar-se de que você atende aos requisitos para configurar a autenticação do AD para o SQL Server
  2. Preparar um arquivo de inventário do Ansible
  3. Explorar as variáveis que você deve definir e preparar um arquivo de playbook do Ansible usando a função para configurar automaticamente a autenticação com o Active Directory
  4. Executar a função
  5. Concluir a configuração
  6. Verificar se a autenticação está funcionando conforme o esperado

Pré-requisitos

Antes de começar, você deve garantir que atende aos pré-requisitos para a função.

  1. Você precisa ter um servidor do Active Directory em execução e acessível pela sua máquina RHEL. Você pode ler a visão geral dos pré-requisitos na documentação da Microsoft em Join SQL Server on a Linux host to an Active Directory domain. Se você tiver problemas para atender aos pré-requisitos, consulte a página de solução de problemas do Active Directory.
  2. Certifique-se de que a pesquisa do DNS está funcionando. Você deve conseguir localizar o servidor do Active Directory pelo endereço IP e os nomes do DNS completos e abreviados a partir da sua máquina RHEL.
  3. Certifique-se de que a pesquisa inversa do DNS está funcionando. A execução do comando nslookup para o endereço IP do servidor do Active Directory precisa resultar no nome do DNS correto, e o nome do DNS deve, por sua vez, resultar no endereço IP correto.
  4. Certifique-se de que você tem acesso e credenciais de usuário do Active Directory com permissão para criar contas e nomes de entidades de serviço (SPNs) no domínio.

Prepare o inventário do Ansible

O inventário deve conter apenas os servidores do RHEL que você deseja configurar para autenticação do Active Directory. Este exemplo usa o arquivo de inventário inventory.yml, que contém apenas um nó do RHEL rhel-sql-server.example.com:

$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com

Use a função

Em seguida, você precisa de um playbook para configurar a autenticação com o Active Directory. É mais fácil fazer isso após examinar um playbook de exemplo, ajustar variáveis e parâmetros conforme necessário e usá-lo como base para o seu próprio playbook.

Observe que a função exige que algumas senhas sejam definidas com variáveis. Os exemplos neste artigo oferecem essas variáveis em texto simples, mas na produção você precisa usar o Ansible Vault para criptografar as senhas.

Playbook de exemplo

Veja o playbook de exemplo salvo como playbook.yml. Ele configura a autenticação com o Active Directory:

---
- name: Configure with AD server authentication
hosts: all
vars:
# General variables
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true
mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true
mssql_accept_microsoft_sql_server_standard_eula: true
mssql_version: 2022
mssql_password: "p@55w0rD"
mssql_edition: Evaluation
mssql_manage_firewall: true
# AD Integration required variables
mssql_ad_configure: true
mssql_ad_sql_user_name: sqluser
mssql_ad_sql_password: "p@55w0rD1"
ad_integration_realm: domain.com
ad_integration_user: Administrator
ad_integration_password: Secret123
# AD Integration optional variables
mssql_ad_sql_user_dn: "CN=sqluser,CN=Users,DC=DOMAIN,DC=COM"
mssql_ad_netbios_name: domain

As variáveis no playbook de exemplo são divididas em três seções: gerais, obrigatórias e opcionais.

Variáveis gerais

As variáveis que aceitam o Contrato de licença de usuário final (EULA) devem ser definidas como true para confirmar que você concorda com os termos do pacote mssql-server. Entre elas estão:

  • mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula
  • mssql_accept_microsoft_cli_utilities_for_sql_server_eula
  • mssql_accept_microsoft_sql_server_standard_eula

Outras variáveis:

  • mssql_version define a versão (2017, 2019 ou 2022) do SQL Server que você deseja gerenciar.
  • mssql_password define a senha para o usuário sa.
  • mssql_edition define a edição a ser configurada para o SQL Server.
  • mssql_manage_firewall habilita o firewall e abre as portas necessárias. Essa é uma variável opcional. Use-a somente se quiser que a função gerencie o firewall para você.

Variáveis obrigatórias para a integração com o AD

Estas variáveis são obrigatórias:

  • mssql_ad_configure: se a autenticação do Active Directory deve ser configurada.
  • mssql_ad_sql_user_name: nome do usuário a ser criado no servidor do Active Directory para habilitar a autenticação do SQL Server. A função usa o adutil, que exige que o usuário seja criado com permissão para acessá-la como usuário privilegiado.
  • mssql_ad_sql_password: senha para o usuário que está sendo criado.
  • ad_integration_realm: nome de realm do Active Directory.
  • ad_integration_user: nome de usuário do usuário privilegiado no Active Directory. Esse usuário já deve existir no domínio.
  • ad_integration_password: senha para o usuário.

Variáveis opcionais para a integração com o AD

Estas variáveis são opcionais:

  • mssql_ad_sql_user_dn: você deverá definir essa variável se o seu servidor do AD armazenar contas de usuário em uma unidade organizacional (OU) personalizada em vez de na OU Users padrão. Por padrão, a função cria o nome distinto com base nos valores fornecidos para as variáveis mssql_ad_sql_user_name e ad_integration_realm e usa a OU Users (por exemplo, CN=sqluser,CN=Users, DC=DOMAIN,DC=COM). Você pode substituir isso disponibilizando um nome diferenciado.
  • mssql_ad_netbios_name: você deve definir essa variável quando o nome de domínio NetBIOS do seu servidor do AD não for igual ao primeiro subdomínio do nome de domínio fornecido com a variável ad_integration_realm (por exemplo, você definiu ad_integration_realm para domain.contoso.com, mas o nome do seu domínio NetBIOS não é domain). Esse valor é usado para criar o login {{ mssql_ad_netbios_name }}\{ad_integration_user }} no SQL Server.

Execute a função do Ansible

Depois de garantir que atende a todos os pré-requisitos e que seu inventário e playbook do Ansible estão prontos, você pode executar o playbook.

$ ansible-playbook -i inventory.yml playbook.yml

Adicione usuários de domínio ao SQL Server

Antes que um usuário possa fazer login, você precisa adicioná-lo ao SQL Server. Para fazer isso, execute o seguinte comando T-SQL para cada usuário de domínio do AD:

CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;

Como habilitar tipos adicionais de criptografia

Após executar a função para configurar a autenticação do Active Directory, você deve adicionar os tipos de criptografia Kerberos AES128 e AES256 ao usuário definido com a variável mssql_ad_sql_user_name no Active Directory. Você pode fazer isso usando a IU da web do Active Directory ou o PowerShell.

IU da web

Abra a IU da web do seu servidor do AD e faça login.

  1. Acesse Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account
  2. Na lista Account options, selecione This account supports Kerberos AES 128 bit encryption e This account supports Kerberos AES 256 bit encryption
  3. Clique em Apply

PowerShell

No PowerShell, use o comando Set-ADUser, substituindo <sqluser> pelo nome de usuário que você definiu como a variável mssql_ad_sql_user_name:

Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256

Verifique a autenticação com o Active Directory

Agora que você executou a função para configurar a autenticação do servidor do AD e adicionou os tipos de criptografia necessários ao seu usuário<sqluser>, você pode fazer a autenticação usando um dos seguintes métodos:

  • Windows ou RHEL: Azure Data Studio (ADS)
  • Windows: SQL Server Management Studio (SSMS)
  • RHEL: terminal Linux

Azure Data Studio (ADS)

Se você ainda não tiver instalado o ADS, consulte a documentação da Microsoft para fazer o download e instalar o Azure Data Studio.

Após instalado, inicie o ADS.

  1. Clique em Create a connection
  2. Na lista Authentication type, selecione Windows Authentication
  3. Preencha os outros campos e clique em Connect

Agora você pode usar o SQL Server.

Azure Data Studio user interface

SQL Server Management Studio (SSMS)

Primeiro, acesse o Windows com o usuário que você deseja usar para fazer login no SQL Server e, em seguida, inicie o SSMS.

  1. No painel Connect to Server, selecione Database Engine na lista Server type
  2. No campo Server name, insira o nome de domínio totalmente qualificado (FQDN) da instância do RHEL para a qual você executou a função
  3. Na lista Authentication, selecione Windows Authentication e preencha estes campos:
    • Server type: Database Engine
    • Server name: insira o nome do seu servidor
    • Authentication: autenticação do Windows
  4. Clique em Connect
SQL Server Management Studio user interface

Terminal Linux

Para verificar a autenticação usando um terminal Linux, use SSH para acessar o servidor como o usuário criado pela função.

$ ssh -l <sqluser>@<domain.com> <client.domain.com>

Obtenha um ticket do Kerberos para o usuário do Active Directory que você deseja autenticar:

$ kinit <AD_user_name>@<DOMAIN.COM>

Use sqlcmd para acessar o SQL Server e, por exemplo, executar uma consulta para obter o usuário atual:

/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'

Conclusão

A função microsoft.sql.server pode ajudar você a automatizar a integração com o Active Directory para autenticação de usuários. Ela usa a função redhat.rhel_system_roles.ad_integration para se conectar ao Active Directory e redhat.rhel_system_roles.firewall para configurar o firewall, e faz isso de maneira consistente. A Red Hat oferece mais funções de sistema para gerenciar diferentes serviços e ferramentas no RHEL. Se você tiver interesse em automatizar seus fluxos de trabalho, consulte a lista de funções do sistema RHEL disponíveis e leia a documentação ou os posts relacionados ao tópico. Há muitas opções disponíveis!

Se quiser saber no que mais a função microsoft.sql.server pode ajudar você, consulte a documentação oficial.


Sobre o autor

Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Navegue por canal

automation icon

Automação

Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes

AI icon

Inteligência artificial

Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente

open hybrid cloud icon

Nuvem híbrida aberta

Veja como construímos um futuro mais flexível com a nuvem híbrida

security icon

Segurança

Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias

edge icon

Edge computing

Saiba quais são as atualizações nas plataformas que simplificam as operações na borda

Infrastructure icon

Infraestrutura

Saiba o que há de mais recente na plataforma Linux empresarial líder mundial

application development icon

Aplicações

Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações

Original series icon

Programas originais

Veja as histórias divertidas de criadores e líderes em tecnologia empresarial