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
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
.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 contaroot
, 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
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.
Conteúdo relacionado
- Início rápido: Implantar um contêiner do SQL Server em Linux no Kubernetes usando gráficos do Helm
- Introdução ao adutil – Utilitário do Active Directory
- Fazer backup e restauração dos bancos de dados do SQL Server no Linux
- Como configurar o MSDTC (Coordenador de Transações Distribuídas da Microsoft) no Linux