Inicio rápido: Implementación de SQL Server en Linux mediante un cuaderno de estrategias de Ansible
Se aplica a: SQL Server - Linux
En este inicio rápido se describen los pasos necesarios para automatizar una implementación de SQL Server en Linux en Azure Virtual Machines mediante un cuaderno de estrategias de Ansible.
Ansible es un producto de código abierto que automatiza el aprovisionamiento en la nube, la administración de configuración y las implementaciones de aplicaciones.
Los cuadernos de estrategias de Ansible permiten indicar a Ansible cómo configurar el entorno. Los cuadernos de estrategias se codifican con YAML para que sean legibles.
Requisitos previos
Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
Cree un nuevo grupo de recursos mediante la CLI de Azure, que contiene tres Virtual Machines de Azure (VM):
Cree una máquina virtual de Azure que ejecute Red Hat Enterprise Linux (RHEL) 8.5 o superior. Esta máquina virtual se convierte en el nodo de control.
Cree una máquina virtual de Azure, que ejecute RHEL, para que actúe como el primer nodo administrado.
Cree una máquina virtual de Azure, que ejecute Ubuntu Server, para que actúe como el segundo nodo administrado.
Información general
La primera máquina virtual, donde se configura Ansible Core, es el nodo del controlador. En este nodo, instalará el rol de sistema SQL Server.
Las máquinas virtuales restantes son las máquinas de destino, también conocidas como nodos administrados, para implementar y configurar SQL Server mediante el rol del sistema.
Instalación de Ansible Core
A partir de RHEL 8.x en máquinas virtuales de Azure, el paquete ansible-core
se puede instalar desde el repositorio de AppStream preconfigurado. Puede instalar Ansible Core en el nodo del controlador mediante el siguiente comando:
sudo yum install ansible-core
Para confirmar que la instalación se realizó correctamente, con el comando siguiente:
ansible --version
Verá un resultado similar al del siguiente ejemplo:
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 hosts
archivo en el nodo del controlador
Ansible creará un hosts
archivo en el /etc/ansible
directorio. Edite este archivo con su editor favorito para agregar los detalles del nodo administrado, ya sea como una entrada de grupo o como entradas no agrupadas. Para obtener información sobre cómo crear su propio inventario, consulte Cómo crear el inventario.
En este ejemplo, con el hosts
archivo, la dirección IP del primer nodo administrado es 10.0.0.12 y la dirección IP del segundo nodo administrado es 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
Configuración del acceso SSH sin contraseña entre nodos
Deberá configurar una conexión de Secure Shell (SSH) entre el nodo de controlador y todos los nodos administrados en los que se va a instalar SQL Server.
Configuración de SSH en el nodo del controlador
Si SSH ya se ha configurado, puede omitir este paso.
Use el ssh-keygen
comando para generar claves SSH. Al ejecutar el comando, se le pide que acepte los valores predeterminados. Cuando haya terminado, tendrá un par de claves privada y pública.
Copia de la clave pública en los nodos administrados
En cada nodo administrado, debe copiar la clave pública del nodo de controlador que acaba de crear mediante el
ssh-copy-id
comando. Si desea especificar el directorio de destino en el nodo administrado, puede usar el-i
parámetro.En el comando siguiente, la
user
cuenta puede ser la misma que configuró para cada nodo administrado al crear la máquina virtual. También puede usar laroot
cuenta, pero no se recomienda en un entorno de producción.sudo ssh-copy-id user@10.0.0.12 sudo ssh-copy-id user@10.0.0.14
Para confirmar que la clave pública SSH se copió en cada nodo, use el
ssh
comando del nodo de controlador. Si copió correctamente las claves, no se le pide una contraseña y la conexión se realiza correctamente.ssh user@10.0.0.12 ssh user@10.0.0.14
Instalación del rol de sistema de SQL Server
El rol de sistema de Ansible se denomina ansible-collection-microsoft-sql
. En el nodo del controlador, ejecute el siguiente comando para instalar el rol de sistema SQL Server:
sudo yum install ansible-collection-microsoft-sql
Este comando instala el rol de SQL Server en /usr/share/ansible/collections
, con los archivos que se muestran a continuación:
-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
Creación y configuración del cuaderno de estrategias de Ansible
Después de instalar el rol del sistema, creará el archivo YAML de SQL Server cuaderno de estrategias. Para comprender las distintas variables de rol, consulte la documentación o el README.md incluido con el rol del sistema de SQL Server.
En el ejemplo siguiente se muestra un archivo de cuaderno de estrategias, con variables de rol definidas para configurar SQL Server y habilitar funcionalidad 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
Implementación de SQL Server en los nodos administrados
Para implementar SQL Server en nodos administrados mediante el cuaderno de estrategias de Ansible, ejecute el siguiente comando desde el nodo del controlador.
sudo ansible-playbook -u user playbook.yaml
Este proceso comienza la implementación y, al final, debería ver un resumen de la reproducción similar a la siguiente:
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
Limpieza de recursos
Si no va a seguir usando las máquinas virtuales de Azure, recuerde quitarlas. Si creó las tres máquinas virtuales en un nuevo grupo de recursos, puede quitar todos los recursos de ese grupo de recursos mediante la CLI de Azure.
Contenido relacionado
- Inicio rápido: Implementación de un contenedor de SQL Server en Linux en Azure Kubernetes Service (AKS) mediante gráficos de Helm
- Introducción a adutil: utilidad de Active Directory
- Copia de seguridad y restauración de bases de datos de SQL Server en Linux
- Cómo configurar el Coordinador de transacciones distribuidas de Microsoft (MSDTC) en Linux