BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ワークフローにイベント駆動型の自動化を提供するPuppet Relay

ワークフローにイベント駆動型の自動化を提供するPuppet Relay

原文(投稿日:2020/07/19)へのリンク

Puppetは、イベント駆動型自動化プラットフォームであるRelayのベータリリースを発表した。Relayにより、コードによるプロセスの自動化ができる。事前に記述されたワークフローがいくつかあり、追加のワークフローを作成するためのサポートがある。Relayには、AWS、Kubernetes、Azure、PagerDuty、GitHubなどのワークフローで使用できる多数の統合機能がある。

Relayは、if-this-then-thatスタイルのタスクと、マルチステップの分岐並列処理の両方を自動化するように設計されている。これは、未使用のAzureディスクの削除や、Jiraで必要なチケットを作成してSlackで部屋を開くことによるPagerDutyアラートに対応するなどのタスクになる。

ワークフロー内には、トリガーとステップがある。トリガーは、ワークフローの実行を初期化するイベントハンドラーである。トリガーは手動で、スケジュールに従って、または外部ソースを介してアクティブ化できる。ステップは、Relayによって実行される自動化ワークフローの一部である。パラメータとシークレットは、ステップ実行の一部として渡される。

たとえば、Relayを使用してEC2インスタンスを確認し、特定のタグなしでインスタンスを終了できる。このワークフローでは、4日後を終了日にまたはライフタイムのタグが付けられていない、または期限切れまたは無効なライフタイムタグが付けられていない特定のアカウントのEC2インスタンスを終了する。この場合、適切なcronスタイルの構文を使用して次のトリガーブロックを設定することにより、ワークフローをスケジュールに従って実行できる:

triggers:
- name: schedule
  source:
    type: schedule
    schedule: '0 * * * *'
  binding:
    parameters:
      region: us-east-1
      dryRun: true
      lifetimeTag: lifetime
      terminationDateTag: termination_date

ステップは、各ステップを独立して柔軟に実行できるコンテナである。任意のOCI準拠コンテナを使用できる。ビルド時にRelayツールを追加すると、メタデータサービスにアクセスできるようになる。別の方法として、タスクがシェルまたはPythonスクリプトで記述できる場合は、relaysh/coreイメージを使用できる。このイメージは、Relayチームが管理するAlpineベースのイメージであり、Relay SDKがプリロードされている。relaysh/core:latestrelaysh/core:latest-python イメージが利用可能である。

たとえば、relaysh/coreイメージでPythonスクリプトを実行するステップを設定すると、次のようになる:

steps:
- name: filter-instances
  image: relaysh/core:latest-python
  spec:
    terminationDateTag: !Parameter terminationDateTag
    lifetimeTag: !Parameter lifetimeTag
    instances: !Output {from: describe-instances, name: instances}
  inputFile: https://raw.githubusercontent.com/puppetlabs/relay-workflows/master/ec2-reaper/filter-instances.py

specマップは、ステップ内で使用できるキーと値を定義する。Relayの!Parameterタイプでは、グローバルパラメータの値を検索してコンテナに提供できる。!Secretを使用して、暗号化された値にアクセスできる。ワークフロー内でロジックを実行できる!Merge!Concatなどのユーティリティ関数もある。

利用可能な事前作成されたワークフローがいくつかある。Puppetは、Relayを改善し、追加の統合で拡張するためのコミュニティへの貢献を求めている。Relayに関するさらなる議論に利用できるSlackチャネルもある。

この記事に星をつける

おすすめ度
スタイル

BT