Partilhar via


Guia de início rápido: implantar o SQL Server no Linux usando um playbook do Ansible

Aplica-se a:SQL Server - Linux

Este guia de início rápido leva você pelas etapas para automatizar uma implantação do SQL Server no Linux em Máquinas Virtuais do Azure, usando um manual do Ansible.

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

Os playbooks do Ansible permitem que o Ansible configure o seu ambiente. Os playbooks são codificados usando YAML para que sejam legíveis por humanos.

Pré-requisitos

  • Uma assinatura do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita .

  • Crie um novo 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 Red Hat Enterprise Linux (RHEL) 8.5 ou superior. Esta VM torna-se 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 Ubuntu Server, para servir como o segundo nó gerenciado .

Visão geral

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

As VMs restantes são as máquinas de destino, também conhecidas como nós gerenciados , para implantar e configurar o SQL Server usando a função do sistema.

Instalar o Ansible Core

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

sudo yum install ansible-core

Você pode verificar 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 arquivo hosts no nó do controlador

Ansible criará um arquivo hosts no diretório /etc/ansible. Edite esse arquivo usando seu editor favorito 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 próprio inventário, consulte Como criar seu inventário.

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 acesso SSH sem senha entre nós

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

Configurar SSH no nó do 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, você será solicitado a aceitar os valores padrão. Quando terminar, terá um par de chaves privada e pública.

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

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

  2. No comando a seguir, a conta user pode ser a mesma conta 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 um 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 que a chave pública SSH foi copiada para cada nó, use o comando ssh a partir do nó controlador. Se você copiou as chaves corretamente, não será solicitada uma 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 do sistema Ansible é chamada ansible-collection-microsoft-sql. No nó do controlador, execute o seguinte comando para instalar a função de sistema do SQL Server:

sudo yum install ansible-collection-microsoft-sql

Este comando instala a função 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 playbook do Ansible

Depois de instalar a função do sistema, você criará o arquivo YAML do manual do SQL Server. Para compreender as várias variáveis de função, consulte a documentação ou o README.md incluído com a função do sistema do SQL Server.

O exemplo a seguir mostra um arquivo de playbook, com variáveis de função definidas para configurar o SQL Server e habilitar funcionalidade adicional:

- 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 nos nós gerenciados

Para implantar o SQL Server em nós gerenciados usando o manual do Ansible, execute o seguinte comando no nó do controlador.

sudo ansible-playbook -u user playbook.yaml

Esse processo inicia a implantação e, no final, ver-se-á um resumo da execução semelhante a este:

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 recursos

Se você não vai 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 da CLI do Azure.