0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LogicAppsとHybridRunbookWorkerで複数台の仮想マシンを操作する

Posted at

初めに

皆さんこんにちは、クラウド環境の運用をする上で仮想マシンへ一度にスクリプトを実行したいことって結構ありますよね。例えば、ソフトウェアの設定を変更したいとか、サーバー内のテキストファイルをプッシュしたいとか・・・。今回は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に実行結果を戻す
  • ワークフローを読みやすくする
    • 変数定義化する
    • 起動するサーバーごとに引数を渡す

構成図

今回構成していくイメージはこんな感じです。
image.png

Azure Logic Apps ー Azure Table Storage

  • Table Storage内に仮想マシン一覧のリストを作成しておき、一覧を取得してきます
  • 実行結果をTable Storageへ返します

Azure Logic Apps ー Automation Account

  • Logic AppsからHybrid Runbook Worker Jobを作成します
  • 実行結果をAzure Logic Appsへ返します

処理フロー

処理フロー図を以下に示します。
※記事を記載していく中で、更新していく可能性があります。
image.png

それぞれの記事の中で詳しく解説していきますが、ざっくりと流れはこんな感じです。

  1. スケジュール起動
  2. TableStorageからサーバーリストを取得
  3. サーバーリストに記載されているサーバーに対してジョブ作成
  4. ジョブの実行結果を取得し、TableStorageへ返却
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?