Início Rápido: implantar o SQL Server em Linux usando um guia estratégico do Ansible

Aplica-se a: SQL Server – Linux

Este início rápido conduz você em etapas para automatizar uma implantação do SQL Server em Linux nas Máquinas Virtuais do Azure usando um guia estratégico do Ansible.

Ansible é um produto de código-fonte aberto que automatiza o provisionamento de nuvem, o gerenciamento de configurações e as implantações de aplicativos.

Guias estratégicos do Ansible permitem que você direcione o Ansible para configurar seu ambiente. Os guias estratégicos são codificados usando YAML para serem legíveis por humanos.

Pré-requisitos

  • Uma assinatura do Azure. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.

  • Crie um grupo de recursos usando a CLI do Azure, que contém três VMs (Máquinas Virtuais) do Azure:

    • Crie uma VM do Azure executando o RHEL (Red Hat Enterprise Linux) 8.5 ou versões superiores. Essa VM passa a ser o nó controlador.

    • Crie uma VM do Azure executando o RHEL para servir como o primeiro nó gerenciado.

    • Crie uma VM do Azure, executando o Servidor do Ubuntu, para servir como o segundo nó gerenciado.

Visão geral

A primeira VM, na qual você configura o Ansible Core, é o nó controlador. Neste nó, você instalará a função de sistema do SQL Server.

As VMs restantes são os computadores de destino, também conhecidos como nós gerenciados, para implantar e configurar o SQL Server usando a função de sistema.

Instalar o Ansible Core

Começando com o RHEL 8.x em VMs do Azure, o pacote ansible-core pode ser instalado por meio do repositório AppStream pré-configurado. Você pode instalar o Ansible Core no nó controlador usando o seguinte comando:

sudo yum install ansible-core

Você pode confirmar se a instalação foi bem-sucedida com o seguinte comando:

ansible --version

Você verá uma saída semelhante ao exemplo a seguir:

ansible [core 2.12.2]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/<user>/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.8/site-packages/ansible
  ansible collection location = /home/<user>/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.8.12 (default, Sep 16 2021, 10:46:05) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
  jinja version = 2.10.3
  libyaml = true

Editar o arquivo hosts no nó controlador

O Ansible criará um arquivo hosts no diretório /etc/ansible. Edite esse arquivo usando o editor de sua preferência para adicionar os detalhes do nó gerenciado, seja como uma entrada de grupo ou como entradas não agrupadas. Para obter informações sobre como criar seu estoque, confira Como criar seu estoque.

Neste exemplo, usando o arquivo hosts, o endereço IP do primeiro nó gerenciado é 10.0.0.12 e o endereço IP do segundo nó gerenciado é 10.0.0.14.

# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
#   - Comments begin with the '#' character
#   - Blank lines are ignored
#   - Groups of hosts are delimited by [header] elements
#   - You can enter hostnames or ip addresses
#   - A hostname/ip can be a member of multiple groups

10.0.0.12
10.0.0.14

Configurar o acesso SSH sem senha entre nós

Você precisará configurar uma conexão SSH (Secure Shell) entre o nó controlador e todos os nós gerenciados em que o SQL Server deve ser instalado.

Configurar o SSH no nó controlador

Se o SSH já tiver sido configurado, você poderá ignorar esta etapa.

Use o comando ssh-keygen para gerar chaves SSH. Ao executar o comando, será solicitado que você aceite os valores padrão. Quando concluído, você terá um par de chaves públicas e privadas.

Copiar a chave pública para os nós gerenciados

  1. Em cada nó gerenciado, você deve copiar a chave pública do nó controlador que acabou de criar, usando o comando ssh-copy-id. Se você quiser especificar o diretório de destino no nó gerenciado, poderá usar o parâmetro -i.

  2. No comando a seguir, a conta user pode ser a mesma que você configurou para cada nó gerenciado ao criar a VM. Você também pode usar a conta root, mas isso não é recomendado em ambiente de produção.

    sudo ssh-copy-id user@10.0.0.12
    sudo ssh-copy-id user@10.0.0.14
    
  3. Para confirmar se a chave pública SSH foi copiada para cada nó, use o comando ssh do nó controlador. Se você copiou as chaves corretamente, não será solicitada senha e a conexão será bem-sucedida.

    ssh user@10.0.0.12
    ssh user@10.0.0.14
    

Instalar a função de sistema do SQL Server

A função de sistema do Ansible é chamada ansible-collection-microsoft-sql. No nó controlador, execute o seguinte comando para instalar a função de sistema do SQL Server:

sudo yum install ansible-collection-microsoft-sql

Esse comando instala a função do SQL Server para /usr/share/ansible/collections, com os arquivos mostrados abaixo:

-rw-r--r--. 1 user user 7592 Jul  2 20:22 FILES.json
-rw-r--r--. 1 user user 1053 Jul  2 20:22 LICENSE-server
-rw-r--r--. 1 user user  854 Jul  2 20:22 MANIFEST.json
-rw-r--r--. 1 user user 1278 Jul  2 20:22 README.md
drwxr-xr-x. 1 user user   20 Jul  2 20:22 roles
drwxr-xr-x. 1 user user   20 Jul  2 20:22 tests

Criar e configurar o guia estratégico do Ansible

Depois de instalar a função de sistema, você criará o arquivo YAML do guia estratégico do SQL Server. Para entender as diversas variáveis de função, confira a documentação ou o arquivo README.md incluído com a função de sistema do SQL Server.

O seguinte exemplo mostra um arquivo do guia estratégico, com variáveis de função definidas para configurar o SQL Server e habilitar funcionalidades adicionais:

- hosts: all
  vars:
    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_password: "YourP@ssw0rd"
    mssql_edition: Evaluation
    mssql_enable_sql_agent: true
    mssql_install_fts: true
    mssql_install_powershell: true
    mssql_tune_for_fua_storage: true
  roles:
    - microsoft.sql.server​

Implantar o SQL Server em nós gerenciados

Para implantar o SQL Server em nós gerenciados usando o guia estratégico do Ansible, execute o comando a seguir por meio do nó controlador.

sudo ansible-playbook -u user playbook.yaml

Esse processo inicia a implantação e, ao final, você deverá ver um resumo da peça semelhante ao seguinte:

PLAY RECAP *******

10.0.0.12                  : ok=31   changed=42   unreachable=0    failed=0    skipped=0   rescued=1    ignored=0

10.0.0.14                  : ok=31   changed=42   unreachable=0    failed=0    skipped=0   rescued=1    ignored=0

Limpar os recursos

Se não quiser continuar usando suas VMs do Azure, lembre-se de removê-las. Se você criou as três VMs em um novo grupo de recursos, poderá remover todos os recursos dentro desse grupo de recursos usando a CLI do Azure.