Bagikan melalui


Mulai cepat: Menyebarkan SQL Server di Linux menggunakan playbook Ansible

Berlaku untuk: SQL Server - Linux

Panduan ini membawa Anda melalui langkah-langkah untuk mengotomatiskan penerapan SQL Server di Linux pada Azure Virtual Machines, menggunakan playbook Ansible.

Ansible adalah produk sumber terbuka yang mengotomatiskan provisi cloud, manajemen konfigurasi, dan penyebaran aplikasi.

Playbook Ansible memungkinkan Anda mengarahkan Ansible untuk mengonfigurasi lingkungan Anda. Playbook dikodekan menggunakan YAML sehingga dapat dibaca manusia.

Prasyarat

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.

  • Buat grup sumber daya baru menggunakan Azure CLI, yang berisi tiga Azure Virtual Machines:

    • Buat Azure VM, menjalankan Red Hat Enterprise Linux (RHEL) 8.5 atau yang lebih tinggi. Komputer virtual (VM) ini menjadi simpul pengontrol.

    • Buat Azure VM, menjalankan RHEL, untuk berfungsi sebagai simpul terkelola pertama.

    • Buat Azure VM, yang menjalankan Ubuntu Server, untuk berfungsi sebagai simpul terkelola kedua.

Gambaran Umum

VM pertama, tempat Anda mengonfigurasi Ansible Core, adalah simpul pengontrol. Pada simpul ini, Anda menginstal peran sistem SQL Server.

VM yang tersisa adalah komputer target, juga dikenal sebagai simpul terkelola, untuk menyebarkan dan mengonfigurasi SQL Server menggunakan peran sistem.

Menginstal Ansible Core

Dimulai dengan RHEL 8.x di Azure VM, ansible-core paket dapat diinstal dari repositori AppStream yang telah dikonfigurasi sebelumnya. Anda dapat menginstal Ansible Core pada simpul pengontrol menggunakan perintah berikut:

sudo yum install ansible-core

Anda dapat memeriksa apakah penginstalan berhasil dengan perintah berikut:

ansible --version

Anda melihat output yang mirip dengan contoh berikut:

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

Mengedit hosts file pada simpul pengontrol

Ansible membuat file hosts di direktori /etc/ansible. Edit file ini menggunakan editor favorit Anda untuk menambahkan detail simpul terkelola, baik sebagai entri grup, atau sebagai entri yang tidak dikelompokkan. Untuk informasi tentang cara membuat inventaris Anda sendiri, lihat Cara membuat inventori Anda.

Dalam contoh ini menggunakan hosts file, alamat IP untuk simpul terkelola pertama adalah 10.0.0.12, dan alamat IP untuk simpul terkelola kedua adalah 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

Mengonfigurasi akses SSH tanpa kata sandi antar simpul

Anda perlu mengonfigurasi koneksi Secure Shell (SSH) antara simpul pengontrol dan semua simpul terkelola tempat SQL Server akan diinstal.

Mengonfigurasi SSH pada simpul pengontrol

Jika SSH sudah dikonfigurasi, Anda dapat melewati langkah ini.

ssh-keygen Gunakan perintah untuk menghasilkan kunci SSH. Saat menjalankan perintah, Anda akan diminta untuk menerima nilai default. Setelah selesai, Anda memiliki pasangan kunci privat dan publik.

Menyalin kunci publik ke simpul terkelola

  1. Pada setiap simpul terkelola, Anda harus menyalin kunci publik dari simpul pengontrol yang baru saja Anda buat, menggunakan ssh-copy-id perintah . Jika Anda ingin menentukan direktori target pada simpul terkelola, Anda dapat menggunakan -i parameter .

  2. Dalam perintah berikut, user akun dapat menjadi akun yang sama dengan yang Anda konfigurasi untuk setiap simpul terkelola saat membuat VM. Anda juga dapat menggunakan akun, root tetapi ini tidak disarankan di lingkungan produksi.

    sudo ssh-copy-id user@10.0.0.12
    sudo ssh-copy-id user@10.0.0.14
    
  3. Untuk mengonfirmasi bahwa kunci publik SSH disalin ke setiap simpul, gunakan ssh perintah dari simpul pengontrol. Jika Anda menyalin kunci dengan benar, Anda tidak dimintai kata sandi, dan koneksi berhasil.

    ssh user@10.0.0.12
    ssh user@10.0.0.14
    

Menginstal peran sistem SQL Server

Peran sistem Ansible disebut ansible-collection-microsoft-sql. Pada simpul pengontrol, jalankan perintah berikut untuk menginstal peran sistem SQL Server:

sudo yum install ansible-collection-microsoft-sql

Perintah ini menginstal peran SQL Server ke /usr/share/ansible/collections, dengan file berikut:

-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

Buat dan konfigurasikan playbook Ansible

Setelah menginstal peran sistem, Anda akan membuat file YAML untuk playbook SQL Server. Untuk memahami berbagai variabel peran, lihat dokumentasi atau README.md yang disertakan dengan peran sistem SQL Server.

Contoh berikut menunjukkan file playbook, dengan variabel peran yang ditentukan untuk mengonfigurasi SQL Server dan mengaktifkan fungsionalitas tambahan. Ganti <password> dengan kata sandi yang valid.

- 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: "<password>"
    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​

Menyebarkan SQL Server pada simpul terkelola

Untuk menyebarkan SQL Server pada simpul terkelola menggunakan playbook Ansible, jalankan perintah berikut dari simpul pengontrol.

sudo ansible-playbook -u user playbook.yaml

Proses ini memulai penerapan, dan di akhir, Anda akan melihat ringkasan sesi yang terlihat mirip dengan output ini:

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

Membersihkan sumber daya

Jika Anda tidak akan terus menggunakan Azure VM Anda, ingatlah untuk menghapusnya. Jika Anda membuat tiga VM dalam grup sumber daya baru, Anda dapat menghapus semua sumber daya di dalam grup sumber daya tersebut menggunakan Azure CLI.