Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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:
Red Hat Enterprise Linux (RHEL) 8.5 veya üzerini çalıştıran bir Azure VMoluşturun. Bu sanal makine (VM) denetleyici düğümü olur.
ilkyönetilen düğüm olarak hizmet vermek için RHEL çalıştıranBir Azure VM oluşturun.
ikinciyönetilen düğüm olarak hizmet vermek için Ubuntu Server çalıştıranBir Azure VM 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
Yönetilen her düğümde,
ssh-copy-idkomutunu kullanarak yeni oluşturduğunuz denetleyici düğümünden ortak anahtarı kopyalamanız gerekir. Yönetilen düğümde hedef dizini belirtmek istiyorsanız,-iparametresini kullanabilirsiniz.Aşağıdaki komutta
userhesabı, VM'yi oluştururken her yönetilen düğüm için yapılandırdığınız hesapla aynı olabilir.roothesabı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.14SSH ortak anahtarının her düğüme kopyalandığını onaylamak için denetleyici düğümünden
sshkomutunu 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.
İlgili içerik
- Hızlı Başlangıç: Helm grafiklerini kullanarak Kubernetes'e SQL Server Linux kapsayıcısı dağıtma
- Adutil'e giriş - Active Directory yardımcı programı
- Linux'da SQL Server veritabanlarını yedekleme ve geri yükleme
- Linux üzerinde Microsoft Dağıtılmış İşlem Düzenleyicisi'ni (MSDTC) yapılandırma