Aracılığıyla paylaş


Hızlı Başlangıç: Ansible playbook kullanarak Linux'ta SQL Server dağıtma

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu hızlı başlangıçta, Ansible playbook kullanarak Azure Sanal Makinelerinde Linux üzerinde SQL Server dağıtımını otomatikleştirme adımları izlenir.

Ansible, bulut sağlama, yapılandırma yönetimi ve uygulama dağıtımlarını otomatik hale getiren açık kaynaklı bir üründür.

Ansible playbook'ları Ansible'ı ortamınızı yapılandırmaya yönlendirmenize olanak tanır. Playbook'lar yaml kullanılarak kodlanmıştır, böylece insan tarafından okunabilir.

Önkoşullar

  • Bir Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturabilirsiniz.

  • Üç Azure Sanal Makinesi içeren Azure CLI kullanarak yeni bir kaynak grubu oluşturun:

Genel bakış

Ansible Core'un yapılandırıldığı ilk VM, denetleyici düğümüdür. Bu düğümde SQL Server sistem rolünü yüklersiniz.

Kalan VM'ler, sistem rolünü kullanarak SQL Server'ı dağıtmak ve yapılandırmak için yönetilen düğümler olarak da bilinen hedef makinelerdir.

Ansible Core'u yükleme

Azure VM'lerinde ansible-core RHEL 8.x'ten başlayarak paket önceden yapılandırılmış AppStream deposundan yüklenebilir. Ansible Core'u aşağıdaki komutu kullanarak denetleyici düğümüne yükleyebilirsiniz:

sudo yum install ansible-core

Yüklemenin başarılı olup olmadığını aşağıdaki komutla de kontrol edebilirsiniz:

ansible --version

Aşağıdaki örneğe benzer bir çıktı görürsünüz:

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

Denetleyici düğümünde hosts dosyasını düzenleme

Ansible, hosts dizinde bir /etc/ansible dosyası oluşturur. Yönetilen düğüm ayrıntılarını grup girdisi veya gruplanmamış girdi olarak eklemek için sık kullandığınız düzenleyiciyi kullanarak bu dosyayı düzenleyin. Kendi envanterinizi oluşturma hakkında bilgi için bkz. Envanterinizi oluşturma.

hosts dosyasını kullanan bu örnekte, ilk yönetilen düğümün IP adresi 10.0.0.12 ve ikinci yönetilen düğümün IP adresi 10.0.0.14'dür.

# 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

Düğümler arasında parolasız SSH erişimini yapılandırın

DENETLEYICI düğümü ile SQL Server'ın yükleneceği tüm yönetilen düğümler arasında Bir Secure Shell (SSH) bağlantısı yapılandırmanız gerekir.

Denetleyici düğümünde SSH'yi yapılandırma

SSH zaten yapılandırılmışsa bu adımı atlayabilirsiniz.

SSH anahtarları oluşturmak için ssh-keygen komutunu kullanın. Komutu çalıştırdığınızda, varsayılan değerleri kabul etmek isteyip istemediğiniz sorulur. Tamamlandığında, özel ve ortak anahtar çifti elde etmiş olacaksınız.

Açık anahtarı yönetilen düğümlere kopyalayın

  1. Yönetilen her düğümde, ssh-copy-id komutunu kullanarak yeni oluşturduğunuz denetleyici düğümünden ortak anahtarı kopyalamanız gerekir. Yönetilen düğümde hedef dizini belirtmek istiyorsanız, -i parametresini kullanabilirsiniz.

  2. Aşağıdaki komutta user hesabı, VM'yi oluştururken her yönetilen düğüm için yapılandırdığınız hesapla aynı olabilir. root hesabını da kullanabilirsiniz, ancak bu bir üretim ortamında önerilmez.

    sudo ssh-copy-id user@10.0.0.12
    sudo ssh-copy-id user@10.0.0.14
    
  3. SSH ortak anahtarının her düğüme kopyalandığını onaylamak için denetleyici düğümünden ssh komutunu kullanın. Anahtarları doğru kopyaladıysanız, parola girmeniz istenmez ve bağlantı başarılı olur.

    ssh user@10.0.0.12
    ssh user@10.0.0.14
    

SQL Server sistem rolünü yükleme

Ansible sistem rolü ansible-collection-microsoft-sqlolarak adlandırılır. Denetleyici düğümünde aşağıdaki komutu çalıştırarak SQL Server sistem rolünü yükleyin:

sudo yum install ansible-collection-microsoft-sql

Bu komut, SQL Server rolünü, aşağıdaki dosyalarla birlikte /usr/share/ansible/collections öğesine yükler.

-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 playbook'unu oluşturma ve yapılandırma

Sistem rolünü yükledikten sonra SQL Server playbook YAML dosyasını oluşturacaksınız. Çeşitli rol değişkenlerini anlamak için belgelerine veya SQL Server sistem rolüne dahil README.md bakın.

Aşağıdaki örnekte, SQL Server'ı yapılandırmak ve ek işlevleri etkinleştirmek için tanımlanan rol değişkenleriyle birlikte bir playbook dosyası gösterilmektedir. <password> geçerli bir parolayla değiştirin.

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

Yönetilen düğümlere SQL Server dağıtma

Ansible playbook'unu kullanarak yönetilen düğümlere SQL Server dağıtmak için denetleyici düğümünden aşağıdaki komutu çalıştırın.

sudo ansible-playbook -u user playbook.yaml

Bu süreç dağıtımı başlatır ve sonunda, bu çıktıya benzeyen oyunun bir özetini görmeniz gerekir:

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

Kaynakları temizleme

Azure VM'lerinizi kullanmaya devam etmeyecekseniz kaldırmayı unutmayın. Üç VM'yi yeni bir kaynak grubunda oluşturduysanız, azure CLI kullanarak bu kaynak grubundaki tüm kaynakları kaldırabilirsiniz.