■はじめに
この投稿は、vExperts Advent Calendar 2024 の 13日目です。
今回はAvi Load BalancerのAlert設定周りのTerraformのテンプレートファイルを作成して
Terraform Cloudにてワークスペースを実行しAlert設定を自動化したブログになります
Terraform Cloudのより詳細な使い方は過去の検証ブログを参考に
■目次
- ■はじめに
- ■目次
- ■対象者
- ■前提知識
- ■構成図
- ■Avi Load BalancerのAlert設定
- ■テンプレートファイルの準備
- ■terrform cloudの設定
- ■syslog通知の確認
- ■お片付け
- ■おわりに
■対象者
・Terraform Cloudで自動化を初めようと思っている人
・VMware Avi Load Balancerの自動化に興味がある人
■前提知識
・gitの操作が出来る
■構成図
Terraform Cloud実行における構成図は以下
■Avi Load BalancerのAlert設定
本セクションではEvent発生から通知までの仕組みに加え
実際の設定画面を使って新規でAlert設定する手順を説明
Event発生から通知
Event発生し通知されるまでのフローは以下
Alert設定概要
新規でAlert設定する場合は
手戻りを無くすためNotifications→Alert Action→Alert Configの順で設定するのが良い
今回は設定を自動化する為
Web UIの画面においては必要箇所のみ簡単に説明
Notifications(Syslog)
Syslogの設定は名前とIPアドレスのみの設定で完了
ポート番号はデフォルトで指定されている
Alert Action
Alert Actionの設定はNotificationsで作成したSyslog設定を指定
Alert Config
Alert Configの名前を指定
次にAlert Configが動作する為のトリガーになるEventを指定
最後に作成したAlert Actionを指定
参考
VMware by BroadcomのAvi Load Balancer Alert設定のドキュメント
■テンプレートファイルの準備
TerraformのAviのプロバイダーは以下を参考にしてください
作成したテンプレートファイルは以下
provider.tf main.tf
プロバイダー情報やAviコントローラーのユーザ情報などが記載されている
テンプレートファイル(provider.tf)は以下
terraform { required_providers { avi = { source = "vmware/avi" version = "30.2.1" } } } provider "avi" { avi_username = "admin" avi_tenant = "admin" avi_password = "<パスワード>" avi_controller = "< AviコントローラーのIPアドレス >" avi_version = "30.2.1" }
resourceブロックのリソースタイプとAviの設定項目の紐づけは以下
リソースタイプ | Avi Load Balancerの設定 |
---|---|
avi_alertsyslogconfig | Notification Syslog |
avi_actiongroupconfig | Alert Action |
avi_alertconfig | Alert Config |
よって作成したmain.tfは以下
data "avi_tenant" "default_tenant" { name= "admin" } resource "avi_alertsyslogconfig" "syslog" { name = "avi-syslog" syslog_servers { syslog_server = "< SyslogサーバのIP >" syslog_server_port = "514" udp = "True" } tenant_ref = data.avi_tenant.default_tenant.id } resource "avi_actiongroupconfig" "action" { name = "avi-syslog-action" external_only = "True" level = "ALERT_LOW" syslog_config_ref = avi_alertsyslogconfig.syslog.id tenant_ref = data.avi_tenant.default_tenant.id } resource "avi_alertconfig" "alert" { action_group_ref = avi_actiongroupconfig.action.id name = "avi-Syslog-Config-Events" alert_rule { sys_event_rule { event_id = "USER_LOGIN" not_cond = "False" } } category = "REALTIME" source = "EVENT_LOGS" summary = "Syslog for Config Events occured" throttle = "0" }
最後にgithubにpushすればファイル作成は終了
■terrform cloudの設定
ワークスペースの作成
前回と同じリポジトリを使用するが
Avi Load Balancer用のディレクトリを作成
特定のディレクトリを指定する方法は以下の
Terraform Working Directoryにてパスを入力
その他の設定は冒頭で説明した過去の検証ブログを参考に
ワークスペースの実行
ワークスペースを実行し
terraform planが正常終了
作成されるリソースを確認
問題なければconfirm & apply
terraform applyが成功
■syslog通知の確認
Avi Load Balancerでsyslog設定が出来ているかテストメッセージを送信して確認
まずはじめにValidate settingをクリック
送信するメッセージを入力してSubmitをクリック
syslogサーバにて以下のメッセージ確認が出来る
■お片付け
最後に作成した環境のお片付けを行う terraform destoroyをTerraform Cloudで実行する手順にあたる
ワークスペースの Settings->Destruction and Deletionにて Queue destroy planをクリック
確認の為のワークスペース名が求められるので入力しQueue destroy planをクリック
terraform planが正常終了
confirm & applyをクリック
成功してsyslog設定が削除されたことが分かる
■おわりに
はじめてのアドベントカレンダーに挑戦し無事ブログを公開できたことを嬉しく思います
本ブログの内容を少しアレンジしたデモを次のJapan VMUG vExpert が語る #42で行いたいと思います