Compartir a través de


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

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

  1. En cada nodo administrado, debe copiar la clave pública del nodo de controlador que acaba de crear mediante el ssh-copy-idcomando. Si desea especificar el directorio de destino en el nodo administrado, puede usar el -i parámetro.

  2. 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 la root 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
    
  3. 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.