Slide 1

Slide 1 text

StackstormというIFTTT的なツールを Dockerコンテナに載せた小話 AP Communications Co., Ltd. Software Engineer Gakuji Tamaki

Slide 2

Slide 2 text

1/7. はじめまして

Slide 3

Slide 3 text

- 3/7. Stackstormとは - 4/7. IFTTT的に作業同士を繋げる方法 - 5/7. DockerでStackstormを立ち上げる一例 - 6/7. DockerでStackstormを動かす意義と苦労話 - 7/7. サンプルコード 2/7. 今日お話すること

Slide 4

Slide 4 text

- 3/7. Stackstormとは - 4/7. IFTTT的に作業同士を繋げる方法 - 5/7. DockerでStackstormを立ち上げる一例 - 6/7. DockerでStackstormを動かす意義と苦労話 - 7/7. サンプルコード 2/7. 今日お話すること

Slide 5

Slide 5 text

出所: Create your own - IFTTT - 定形処理の自動化を進めることができる OSS - イベント駆動型でひとつひとつの処理をWorkflowを繋げていく - IFTTT for Ops ≒ Stackstorm 3/7. Stackstormとは 3-1/7. Stackstormとは

Slide 6

Slide 6 text

3/7. Stackstormとは 3-2/7. Stackstormでできること 作業(task)同士を繋げること - cron的な任意の時間指定 - ファイルの編集 - 作業の成否 出所: Installing Extreme Workflow Composer — StackStorm 3.1.0 documentation

Slide 7

Slide 7 text

3/7. Stackstormとは 3-3/7. Stackstormの構成要素 出所: High Availability Deployment — StackStorm 3.1.0 documentation Stackstormは   の 複数プロセスから 構成されている オレンジ

Slide 8

Slide 8 text

3/7. Stackstormとは 3-3/7. Stackstormでできること Succeeded Failed 作業(task)同士を繋げること - cron的な任意の時間指定 - ファイルの編集 - 作業の成否

Slide 9

Slide 9 text

- 3/7. Stackstormとは - 4/7. IFTTT的に作業同士を繋げる方法 - 5/7. DockerでStackstormを立ち上げる一例 - 6/7. DockerでStackstormを動かす意義と苦労話 - 7/7. サンプルコード 2/7. 今日お話すること(再掲)

Slide 10

Slide 10 text

4/7. IFTTT的に作業同士を繋げる方法 4-1/7. 構成図とバージョン情報 出所: "Dockerコンテナ上に立てた StacksormのWorkflowからAnsibleのPlaybookの結果をslackに通知する", gkzz

Slide 11

Slide 11 text

4/7. IFTTT的に作業同士を繋げる方法 4-2/7. デモの内容 出所: draw.io ①Workflow実行 成否判定フラグ初期化 ②NW機器へPlaybook実行 ③slackへ実行結果と  実行ログを通知

Slide 12

Slide 12 text

Succeeded: Failed : Workflow フラグ初期化 succeeded 成功? 4/7. IFTTT的に作業同士を繋げる方法 4-3/7. デモのフローチャート Failed NW機器へ Playbook実行 Slackへ通知

Slide 13

Slide 13 text

4/7. IFTTT的に作業同士を繋げる方法 4-4/7. デモ

Slide 14

Slide 14 text

- 3/7. Stackstormとは - 4/7. IFTTT的に作業同士を繋げる方法 - 5/7. DockerでStackstormを立ち上げる一例 - 6/7. DockerでStackstormを動かす意義と苦労話 - 7/7. サンプルコード 2/7. 今日お話すること(再掲)

Slide 15

Slide 15 text

5/7. DockerでStackstormを立ち上げる一例 5-1/7. st2-dockerリポジトリを活用 出所: StackStorm/st2-docker クローンしたst2-dockerリポジトリ内の docker-compose.ymlを使うだけで Stackstormの環境構築は”一応”できる 必要なPackの設定などはコンテナ内で 行う必要がある、、、。

Slide 16

Slide 16 text

5/7. DockerでStackstormを立ち上げる一例 5-2/7. AnsibleとSlack Packをインストールする場合 出所: gkzz/st2-docker-gkz git clone \ && docker-compose up -d slackbotのトークンなど環境変数の設定 必要なPackをインストールしてくれるシェル スクリプトを実行

Slide 17

Slide 17 text

5/7. DockerでStackstormを立ち上げる一例 5-3/7. シェルスクリプトの中身 . /path/to/reload.shで実行 ./path/to/reload.d/*.shのシェルスクリプトを実行 Packをインストールと設定ファイルをsedで編集 出所: gkzz/st2-docker-gkz

Slide 18

Slide 18 text

- 3/7. Stackstormとは - 4/7. IFTTT的に作業同士を繋げる方法 - 5/7. DockerでStackstormを立ち上げる一例 - 6/7. DockerでStackstormを動かす意義と苦労話 - 7/7. サンプルコード 2/7. 今日お話すること(再掲)

Slide 19

Slide 19 text

- VM直下より環境の再構築が容易 - Packの開発と動作検証が捗る ∵ 設定手順がコード化され、冪統制がある程度担保 ∵ リポジトリ、エラーを引いたコマンド、ログを共有すれば、 エラーの調査も(多少)ラク 6/7. DockerでStackstormを動かす意義と苦労話 6-1/7. DockerでStackstormを動かす意義

Slide 20

Slide 20 text

- Dockerで立ち上げていなくてもあるあるなお話、、、。 - バージョンの引き上げが難儀 -> 特にpython2.7とubuntu14.04 -> 今後はubuntu18.04を使っている StackStorm HA in Kubernetesを使っていくことが推奨? 6/7. DockerでStackstormを動かす意義と苦労話 6-1/7. DockerでStackstormを動かす苦労話 出所: Move away from Ubuntu Trusty before the EOL date (April 2019) · Issue #151 · StackStorm/st2-docker

Slide 21

Slide 21 text

おしまい st2-docker-gkz https://github.com/gkzz/st2-docker-gkz Mydemo Pack for StackStorm https://github.com/gkzz/mydemo_pack Dockerコンテナ上に立てたStacksorm のWorkflowからAnsibleのPlaybookの 結果をslackに通知する https://qiita.com/gkzz/items/ad52628e5f89d2ad6541 7/7. サンプルコード