Puppet、Chef、Ansible、SaltStack、TerraformなどのInfrastructure as Code(IaC)向けの洗練されたツールは、通常、選択できる主流のテクノロジーです。これらのツールは、MySQLのデプロイなど、簡単に複製できるタスクでDBAを支援します。 MySQLのデプロイを自動化すると、特に、QA、ステージング、または開発環境にデプロイするためのソフトウェアエンジニアリングサイクルの手順をサポートおよび実行するための広範なプラットフォームがある場合に、時間を大幅に節約できます。
自動化を使用すると、必要なときにこれらをすばやく簡単に管理できます。
このブログでは、Ansibleを使ってみましょう。前述のように、サードパーティのソフトウェアを使用すると、特にMySQLクラスターをデプロイするための自動化をより簡単かつ迅速に提供できます。次に、既存のモジュール、特に利用可能なAnsibleロールを使用します。以前のブログで述べたように、Ansible Galaxy(ansibleコレクションとロールのリポジトリ)を使用できます。
その前に、展開の影響を受けるホストを宣言する必要があります。たとえば、このブログには次のようなものがあります。
$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5
次に、/ etc / ansible/hostsファイルにあります
[email protected]:〜#tail -n2 / etc / ansible / hosts
debnode4
debnode5
次に、以下のようにファイルmain.ymlを作成します。
[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
自動化にAnsibleを使用したこの単純なMySQLデプロイメントにUbuntu16.04を使用して実行しているため、これが発生します。
[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb
これで、MySQLデプロイメントのテストが表示されます
[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!
自動化してから、定式化します
上記で示したように、自動化して既存のものを利用することをお勧めします。このブログでは、Ansibleを選択しました。これは、この例のロールなどの既存のモジュールと、MySQLサーバーをデプロイするためのいくつかの手順を利用する方が簡単だからです。
もちろん、それはそれほど単純ではありません。このような既存の役割は、レプリケーションと調整する変数をサポートします。既存のモジュールでできることは何でも、独自のモジュールを再発明するのではなく、それを利用してください。既存のものを使用して、必要に応じて変更することができます。
ClusterControlは、MySQLの展開を上手に自動化します。独自に作成する代わりに、ClusterControlは無料でダウンロードでき、MySQLを必要な回数だけデプロイするために使用できます。このソフトウェアを使用して、ライターとリーダーのレプリケーションまたはライターとライターのレプリケーションのセットアップをセットアップできます。以下のスクリーンショットを確認してください:
必要なのは、目的のMySQLの送信元ホスト/IPアドレスを指定することだけです。サーバー。
ClusterControlデプロイメント自動化は、サーバーがデプロイされるジョブを管理する準備ができているかどうかを判断するための事前チェックを実行します。これには、アクセシビリティ、ストレージの可用性、およびハードウェア容量が含まれます。チェックは、ジョブを実行する準備ができたら調整される変数に合わせて調整されます。以下のスクリーンショットを確認してください:
ジョブアクティビティログに基づいて、調整されていることがわかります。サポートしているLinuxシステムの変数またはパラメーター。以下のスクリーンショットの例も見ると、メモリとディスクの可用性がチェックされ、MySQLのデプロイの準備ができています。したがって、MySQLを正常に実行するだけでなく、ClusterControlがサーバーと、監視用に収集したサーバーとそのサービスを監視および登録するために必要なパッケージをインストールします。
ClusterControl開発者ツール
ClusterControlには、アドバイザー専用の独自のスクリプトを作成できる機能があります。 MySQLデータベース展開の自動化にとってこれがどれほど重要であるかは、データベースが登録および展開されると、独自のアドバイザをさらに拡張または作成できることです。たとえば、以前のブログ「ClusterControlAdvisorを使用してSELinuxおよびMeltdown/ Spectreのチェックを作成する:パート1」を確認してください。展開後、最初のアドバイザを作成し、エクスプロイトを定期的にチェックできます。それだけでなく、ニーズに固有のカスタムパラメータを確認することもできます。
ClusterControls9sCLIツール
ClusterControlには、s9s CLIツールと呼ばれるCLIツールがあります。これは、githubリポジトリにあります。 s9s CLIツールを使用すると、1つのコマンドでMySQLをデプロイできます。たとえば、
$ 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
上記のコマンドを使用すると、マスターかスレーブかに関係なく、引数とともに次のIPアドレスを指定してMySQLレプリケーションクラスターをデプロイできます。
このツールは、MySQLなど、サポートしているお気に入りのデータベースの自動展開だけでなく、より強力で効率的な機能を提供します。 s9s CLIツールの詳細については、ClusterControlのドキュメントを確認してください