初めに
皆さんこんにちは、クラウド環境の運用をする上で仮想マシンへ一度にスクリプトを実行したいことって結構ありますよね。例えば、ソフトウェアの設定を変更したいとか、サーバー内のテキストファイルをプッシュしたいとか・・・。今回はLogicAppsを使ってそんなお悩みを解決します。
今回の記事は4本立てとなっております。読みたいところだけ読んで下さい。
目次
☆本記事☆LogicAppsとHybridRunbookWorkerで複数台の仮想マシンを操作する
LogicAppsでTableStorageからサーバーリストを取得してみる
説明:TableStorageにサーバーリストを作成しておき取得したサーバーリストを配列に加工します。LogicAppsのBicepでの構築と各種設定を同時に進めていきます。
- TableStorageから仮想マシンのリストを取得する
- TableStorageを用意する
- LogicAppsを用意する(Bicep)
- TableStorageから仮想マシンのリストを取得する
- 仮想マシンのLinuxサーバーだけにフィルタしてみる
サーバーリストを使用してLogicAppsからHybridRunbookWorkerを起動する
説明:Automationと仮想マシンをBicepでデプロイして、前段で配列に格納したサーバーリストを使用してHybridRunbookWorkerを起動するようにワークフローを改良していきます。
- 仮想マシンのリストを使用してRunbookを起動する
- AutomationAccountを用意する
- 仮想マシンのリストを使ってLogicAppsからAutomationAccountをキックする
Runbookを作成するLogicAppsのワークフローを読みやすく改良してエラー処理を実装する。
説明:ここまで作成したワークフローを読みやすく改良したり、エラー処理を導入したりしてより実用的なワークフローへとしていきます。
- エラーハンドリングを実装する
- 各コネクタのリトライ設定をする
- HybridRunbookWorkerのステータスに応じて処理を分ける
- Runbookの出力に合わせて処理を分ける
- TableStorageに実行結果を戻す
- ワークフローを読みやすくする
- 変数定義化する
- 起動するサーバーごとに引数を渡す
構成図
Azure Logic Apps ー Azure Table Storage
- Table Storage内に仮想マシン一覧のリストを作成しておき、一覧を取得してきます
- 実行結果をTable Storageへ返します
Azure Logic Apps ー Automation Account
- Logic AppsからHybrid Runbook Worker Jobを作成します
- 実行結果をAzure Logic Appsへ返します
処理フロー
処理フロー図を以下に示します。
※記事を記載していく中で、更新していく可能性があります。
それぞれの記事の中で詳しく解説していきますが、ざっくりと流れはこんな感じです。
- スケジュール起動
- TableStorageからサーバーリストを取得
- サーバーリストに記載されているサーバーに対してジョブ作成
- ジョブの実行結果を取得し、TableStorageへ返却