Бөлісу құралы:


Краткое руководство. Развертывание SQL Server на Linux с помощью сборника схем Ansible

Область применения: SQL Server — Linux

В этом кратком руководстве описано, как автоматизировать развертывание SQL Server на Linux на виртуальных машинах Azure с помощью сборника схем Ansible.

Ansible — этот продукт с открытым кодом, который автоматизирует подготовку облачных решений, управление конфигурацией и развертывание приложений.

Сборники схем Ansible позволяют направлять Ansible для настройки среды. Сборники схем программируются на языке YAML, что делает их удобными для восприятия.

Необходимые компоненты

Обзор

Первая виртуальная машина, в которой настраивается Ansible Core, будет являться узлом контроллера. На этом узле вы установите системную роль SQL Server.

Остальные виртуальные машины — это целевые компьютеры, также называемые управляемыми узлами, для развертывания и настройки SQL Server с помощью системной роли.

Установка Ansible Core

Начиная с RHEL 8.x на виртуальных машинах Azure пакет ansible-core можно установить из предварительно настроенного репозитория AppStream. Ansible Core можно установить на узле контроллера с помощью следующей команды:

sudo yum install ansible-core

Чтобы проверить успешность установки, введите следующую команду:

ansible --version

Результат будет выглядеть примерно так:

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

Изменение файла hosts на узле контроллера

Ansible создаст файл hosts в каталоге /etc/ansible. Измените этот файл с помощью выбранного редактора, чтобы добавить сведения об управляемом узле как запись группы или как несгруппированные записи. Сведения о создании собственной инвентаризации см. в разделе Создание инвентаризации.

В этом примере используется файл hosts, и IP-адрес первого управляемого узла — 10.0.0.12, а IP-адрес второго управляемого узла — 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

Настройка доступа без пароля по протоколу SSH между узлами

Необходимо настроить подключение Secure Shell (SSH) между узлом контроллера и всеми управляемыми узлами, где необходимо установить SQL Server.

Настройка SSH на узле контроллера

Если SSH уже настроен, этот шаг можно пропустить.

Используйте команду ssh-keygen для создания ключей SSH. При выполнении команды вам будет предложено принять значения по умолчанию. По завершении у вас будет пара закрытых и открытых ключей.

Копирование открытого ключа на управляемые узлы

  1. На каждом управляемом узле необходимо скопировать открытый ключ из только что созданного узла контроллера с помощью команды ssh-copy-id. Если вы хотите указать целевой каталог на управляемом узле, можно использовать параметр -i.

  2. В следующей команде учетная запись user может быть той же учетной записью, которую вы настраивали для каждого управляемого узла при создании виртуальной машины. Вы также можете использовать учетную запись root, но это не рекомендуется делать в рабочей среде.

    sudo ssh-copy-id user@10.0.0.12
    sudo ssh-copy-id user@10.0.0.14
    
  3. Чтобы убедиться, что открытый ключ SSH был скопирован на каждый узел, используйте команду ssh из узла контроллера. Если вы скопировали ключи правильно, вам не предлагается пароль, и подключение выполнено успешно.

    ssh user@10.0.0.12
    ssh user@10.0.0.14
    

Установка системной роли SQL Server

Системная роль Ansible называется ansible-collection-microsoft-sql. На узле контроллера выполните следующую команду, чтобы установить системную роль SQL Server:

sudo yum install ansible-collection-microsoft-sql

Эта команда устанавливает роль /usr/share/ansible/collections SQL Server с помощью указанного ниже файла:

-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

Создание и настройка сборника схем Ansible

После установки системной роли вы создадите YAML-файл сборника схем SQL Server. Сведения о различных переменных роли см. в документации или README.md, включенных в роль системы SQL Server.

В следующем примере показан файл сборника схем с переменными ролей, которые определены для настройки SQL Server и для включения дополнительных функций:

- 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​

Развертывание SQL Server на управляемых узлах

Чтобы развернуть SQL Server на управляемых узлах с помощью сборника схем Ansible, выполните следующую команду на узле контроллера.

sudo ansible-playbook -u user playbook.yaml

Этот процесс начинает развертывание, и в конце вы увидите сводку воспроизведения, которая выглядит примерно так:

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

Очистка ресурсов

Если вы не собираетесь в дальнейшем использовать виртуальные машины Azure, не забудьте удалить их. Если вы создали три виртуальные машины в новой группе ресурсов, можно удалить все ресурсы в этой группе ресурсов с помощью Azure CLI.