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
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
.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 contaroot
, 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
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.