Otomasi sedang digemari akhir-akhir ini. Teknologi berkembang dengan cepat, dan lebih banyak orang berkontribusi pada platform perangkat lunak otomatisasi pihak ketiga yang tersedia. Sebagai musim penyebaran cepat, otomatisasi sekarang diperlukan dan dianggap sebagai de facto; Anda tidak dapat menyingkirkan otomatisasi hal-hal yang dianggap perlu. Kebutuhan ini penting untuk menyelesaikan sesuatu dengan cepat dan menghilangkan tugas yang berlebihan. Setelah ini hadir, organisasi dan perusahaan dapat fokus pada hal-hal bisnis logis yang membuatnya lebih menarik untuk pertumbuhan. Blog ini mencakup alat ikhtisar singkat dan poin pertimbangan untuk otomatisasi database diikuti dengan topik tentang cara menggunakan ClusterControl untuk otomatisasi database.
Teknologi untuk Otomatisasi Penerapan Database
Alat canggih untuk Infrastruktur sebagai Kode (IaC) seperti Puppet, Chef, Ansible, SaltStack, dan Terraform biasanya merupakan teknologi utama yang dapat dipilih. Alat-alat ini membantu DBA dengan tugas-tugas yang mudah direplikasi, seperti menggunakan MySQL. Mengotomatiskan penerapan MySQL Anda menghemat banyak waktu, terutama jika Anda memiliki platform yang luas untuk mendukung dan mengikuti langkah-langkah siklus rekayasa perangkat lunak yang akan diterapkan untuk lingkungan QA, staging, atau pengembangan Anda.
Menggunakan otomatisasi membuat hal-hal ini lebih cepat dan lebih mudah untuk dikelola saat dibutuhkan.
Memilih Perangkat Lunak Otomasi Anda
Dalam blog ini, mari kita coba menggunakan Ansible. Seperti yang dinyatakan sebelumnya, menggunakan perangkat lunak pihak ketiga memudahkan dan mempercepat untuk menyediakan otomatisasi terutama untuk menyebarkan cluster MySQL Anda. Sekarang kita akan menggunakan modul yang ada terutama peran Ansible yang tersedia. Seperti yang dinyatakan di blog kami sebelumnya, kami dapat menggunakan Ansible Galaxy (repositori untuk koleksi dan peran yang memungkinkan).
Sebelum itu, Anda perlu mendeklarasikan host yang akan terpengaruh oleh penerapan. Misalnya, di blog ini, saya memiliki yang berikut:
$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5
Kemudian di file /etc/ansible/hosts saya,
[email protected]:~# tail -n2 /etc/ansible/hosts
debnode4
debnode5
Kemudian, buat file main.yml seperti di bawah ini,
[email protected]:~/deploy-mysql# cat main.yml
---
# tasks file for deploy-mysql
- hosts: all
become: yes
vars_files:
- vars/main.yml
roles:
- role: geerlingguy.mysql
Karena saya menjalankan Ubuntu 16.04 untuk penerapan MySQL sederhana ini menggunakan Ansible untuk otomatisasi saya, saya akhirnya memiliki ini,
[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb
Sekarang, pengujian penerapan MySQL menunjukkan,
[email protected]:~/deploy-mysql# ansible all -a "mysql -Nse 'select concat(\"hello world at \", @@hostname,\"\!\");' " 2>/dev/null
debnode4 | CHANGED | rc=0 >>
hello world at debnode4!
debnode5 | CHANGED | rc=0 >>
hello world at debnode5!
Otomatiskan, lalu rumuskan
Seperti yang telah kami tunjukkan di atas, lebih baik untuk mengotomatisasi dan memanfaatkan yang sudah ada. Di blog ini, saya memilih Ansible karena lebih mudah untuk memanfaatkan modul yang ada seperti role dalam contoh ini dan hanya beberapa langkah untuk men-deploy server MySQL.
Tentu saja, tidak sesederhana itu. Ada peran yang ada, seperti yang ini, yang mendukung replikasi dan lebih banyak variabel untuk disesuaikan. Apa pun yang dapat dilakukan modul yang ada, manfaatkan itu daripada menciptakan kembali milik Anda sendiri. Anda tinggal menggunakan yang sudah ada, lalu memodifikasinya sesuai kebutuhan.
Kontrol Cluster untuk Otomatisasi
ClusterControl mengotomatiskan penerapan MySQL dengan mahir. Alih-alih membuat sendiri, ClusterControl dapat diunduh secara bebas, dan Anda dapat menggunakannya untuk menyebarkan MySQL Anda berapa kali pun yang Anda inginkan. Anda dapat menggunakan perangkat lunak untuk mengatur replikasi penulis-pembaca atau pengaturan replikasi penulis-penulis. Lihat tangkapan layar di bawah ini:
Anda hanya perlu menentukan host sumber/alamat IP MySQL yang Anda inginkan server.
Otomasi penerapan ClusterControl melakukan pra-pemeriksaan untuk menentukan apakah server siap mengelola pekerjaan yang akan diterapkan. Ini melibatkan aksesibilitas, ketersediaan penyimpanan, dan kapasitas perangkat keras. Pemeriksaan diselaraskan dengan variabel yang akan disetel setelah siap menjalankan pekerjaan. Lihat tangkapan layar di bawah ini:
Berdasarkan log aktivitas pekerjaan, Anda akan melihat bahwa log menyesuaikan variabel atau parameter dalam sistem Linux yang kami dukung. Jika Anda juga melihat contoh tangkapan layar yang kami miliki di bawah, ini akan memeriksa ketersediaan memori dan disk dan mempersiapkan penerapan MySQL. Dengan demikian, ia menginstal paket-paket yang diperlukan, tidak hanya agar MySQL berjalan normal tetapi juga untuk ClusterControl untuk memantau dan mendaftarkan server dan layanannya yang kami kumpulkan untuk pemantauan.
Alat Pengembang ClusterControl
ClusterControl memiliki fitur di mana Anda dapat membuat skrip sendiri khusus untuk penasihat. Seberapa penting ini untuk otomatisasi penyebaran database MySQL Anda adalah bahwa, setelah database terdaftar dan digunakan, Anda dapat lebih meningkatkan atau membuat Penasihat Anda sendiri. Misalnya, periksa blog kami sebelumnya yang berjudul Menggunakan ClusterControl Advisor untuk Membuat Cek untuk SELinux dan Meltdown/Spectre:Bagian Satu. Setelah penerapan, Anda dapat menulis Penasihat pertama Anda kemudian memeriksa eksploit secara teratur. Tidak hanya itu, Anda juga dapat memeriksa parameter khusus yang unik untuk kebutuhan Anda.
Alat CLI ClusterControl s9s
ClusterControl memiliki alat CLI yang kami sebut sebagai alat CLI s9s yang dapat ditemukan di sini di repositori github kami. Alat s9s CLI memungkinkan Anda untuk menggunakan MySQL hanya dengan satu perintah. Misalnya,
$ s9s cluster --create \
--cluster-type=mysqlreplication \ --nodes="192.168.1.117?master;192.168.1.113?slave;192.168.1.115?slave;192.168.1.116?master;192.168.1.118?slave;192.168.1.119?slave;" \
--vendor=oracle \
--db-admin="root" \
--db-admin-passwd="root123" \
--cluster-name=ft_replication_23986 \
--provider-version=5.7 \
--log
Perintah di atas memungkinkan Anda untuk menerapkan cluster Replikasi MySQL dengan memberikan alamat IP berikut dengan argumennya, apakah itu master atau slave.
Alat ini menyediakan fitur yang lebih kuat dan efisien selain dari penyebaran otomatis database favorit Anda yang kami dukung, seperti MySQL. Lihat dokumentasi kami untuk ClusterControl untuk mempelajari lebih lanjut tentang alat CLI s9s