LoginSignup
1
1

More than 5 years have passed since last update.

サポートの作業を自動化していく(第一部最終回 StackStorm Workflow編)

Posted at

はじめに

4回に渡ってお送りしてきたStackStormを使ったサポート作業の自動化ですが、うっかりWorkflowの紹介をしていませんでした。

背景と目的

背景

StackStormでAnsible Packを無事使えるようになりました。今回はStackStormの全体のWorkflowを紹介します。

目的

ログインと設定ファイル作成の手間を省き、GUIで作業できるようにStackStormをフロントエンドとして立ち上げていきます。

今回やること

  • StackStormのWorkflowの作成

今回はやらないこと

  • 独自Dockerイメージの作成

手順

1. メタデータ
まずはメタデータファイルを作成します。
ここではDB立ち上げに使う変数を定義しています。
今回はコンテナ名、DBアクセス用のTCPポート番号、取り込むDumpファイルがおいてあるパスを変数として扱います。
メタデータは/opt/stackstorm/packs/<mypack>/actionsに通常配置しますが、
今回はコンテナにマウントしているため、/home/kannosan/<mypack>/actionsに配置します。

createSQL.meta.yaml
name: createSQL
enabled: true
pack: rcpsupport
entry_point: 'workflows/createSQL.yaml'
runner_type: "mistral-v2"
parameters:
  container_name:
    type: "string"
    required: true

  db_port:
    type: "string"
    required: true

  folder_path:
    type: "string"
    required: true

2. Workflow
処理の実態となるWorkflowを記載したファイルを作成します。
今回はWorkflowと言いながら、シングルアクションになっています。
処理自体は単純にAnsibleのPlaybookを呼び出し、そちらでコンテナ作成、DB立ち上げをさせています。
このときAnsibleのPlaybookはコンテナから見たパスとなるので、
ローカルホストのパスではなくコンテナにマウントされたパスとなることに気をつけてください。
こちらのファイルは/opt/stackstorm/packs/<mypack>/actions/workflowsに通常配置しますが、
やはりコンテナにマウントさせるため、/home/kannosan/<mypack>/actions/workflowsに配置します。

createSQL.yaml
---
version: '2.0'
rcpsupport.createSQL:
  input:
    - container_name
    - db_port
    - folder_path
  tasks:
    createSQL:
      action: ansible.playbook
      input:
        playbook: /root/ansible-playbook/create_sql_container.yml
        extra_vars:
          - container_name="<% $.container_name %>"
          - port="<% $.db_port %>"
          - base_path="<% $.folder_path %>"

以上のファイルを作成し、コンテナのStackStormを立ち上げるとStackStormのWeb GUIにWorkflowが登録されているはずです。
あとは問い合わせが来たら、適宜、名前・ポート番号・貰ったファイルパスを入れるとDBが立ち上がります。

まとめ

これまで問い合わせがあってからDB立ち上げにコマンドを毎回打って30分位拘束されていました。
これを利用するようになり、コマンド打って待っていればDBが立ち上がっているので、拘束時間は5分程度に短縮されました。
そこそこ効果があったと自負しています。
今回は自動化の基盤の構築+DB立ち上げのタスクの自動化をお届けしました。
まだまだ、自動化できるタスクはあるので、自動化が実現できたらまたご紹介していきたいと考えています。

1
1
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
1
1