cmndrsp0ck.galera-cluster

galera-cluster

目的

このリポジトリは、浮動IP再割り当てを持つ2つのHAProxyノードとMariaDB Galeraクラスターをデプロイし、構成するのに役立ちます。プロビジョニングはTerraformによって行われ、構成はAnsibleで行われます。

必要条件

  • リソースをプロビジョニングするためにTerraformをインストールする必要があります。
  • 新しくプロビジョニングされたDropletに構成変更を適用するには、Ansibleをインストールする必要があります。
  • AnsibleのインベントリはTerraformによって管理されるため、terraform-inventoryが必要です。
  • DigitalOcean APIキーが必要です。APIキーの生成手順はこちらで確認できます。
  • 同梱のgen_auth_keyスクリプトを使用して、ロードバランシングクラスター用の認証キーを生成します。

構成

Terraform

terraform.tfvars

サンプルファイルterraform.tfvars.sampleが用意されていますので、_.sample_を削除することを忘れないでください。すべての変数が設定されたら、Terraformは認証してDropletをデプロイできるはずです。

  • do_token - 読み書き権限を持つDigitalOcean APIキー
  • project - インフラストラクチャの異なるグループを簡単に区別できる名前
  • region - データセンターの場所スラグ
  • image_slug - debian-9-x64がデフォルトで使用されます。これは特定のAnsibleロールと一緒に使用するために書かれています。
  • keys - DigitalOceanのSSHキーID。APIを使用して取得できます。
  • private_key_path - プライベートキーのファイルパス。通常は/home//.ssh/id_rsaにあります。
  • ssh_fingerprint - SSHキーのMD5フィンガープリント
  • public_key - SSH公開鍵の内容
  • ansible_user - 後でAnsibleでDropletを構成するときに使用するユーザー名

Ansible

requirements.ymlファイルを使用してAnsibleロールをインストールします。

$ ansible-galaxy install -r requirements.yml

Ansibleロールには、**group_vars/**内に機密データを含む変数を設定する必要があります。設定すべき変数については、それぞれのREADME.mdファイルを参照してください。

簡単なメモ!Ansibleボルトを使用してファイルを暗号化します。プレイブックを実行するたびにボルトパスワードを入力する必要がないように、リポジトリの外にファイルを作成してパスワードを設定することをお勧めします。

$ echo 'password' > ~/.vaultpass.txt

また、ansible.cfgファイル内のvault_password_file = ~/.vaultpass.txtのコメントを解除してください。

これで、すべての設定が完了し、Dropletのプロビジョニングと構成を開始する準備が整いました。

デプロイ

Terraform

Terraformを使って始めます。リポジトリのルートディレクトリに戻ることを確認してください。terraform initを実行して、digitaloceanやtemplateプロバイダのTerraformプラグインをダウンロードする必要があります。すべてが設定されたら、terraform planを実行して実行プランを作成します。

terraform applyを使用してDropletと浮動IPを構築します。ノードの数に応じて、約1〜2分かかるはずです。

Ansible

Terraformの作業が完了したら、ansible all -i /usr/local/bin/terraform-inventory -m pingを使用してネットワーク接続を確認できます。すべてのノードに対してpongが返されるはずです。

これでDropletの構成を始める準備が整いました。リポジトリのルートからAnsibleプレイブックを実行して、Dropletを構成します。

ansible-playbook -i /usr/local/bin/terraform-inventory site.yml

このプレイブックは、浮動IP再割り当てサービスであるheartbeatをインストールし構成し、HAProxyロードバランサーをインストールし構成し、MariaDB Galeraクラスターをセットアップします。Ansibleが現在実行している役割とステップに関する安定した出力が表示されます。エラーが発生した場合は、正しい役割とタスクに簡単にトレースできます。

ライセンス

GPL-3.0

著者情報

cmndrsp0ck

プロジェクトについて

Configures a MariaDB Galera Cluster

インストール
ansible-galaxy install cmndrsp0ck.galera-cluster
ライセンス
gpl-3.0
ダウンロード
135
所有者