AWS에 StackStorm을 설치해 보십시오.


개시하다


StackStorm은 여러 서비스와 도구를 통합하고 자동화된 활동, 구동을 위한 자동화 플랫폼입니다.Comity에서 제공하는 팩이라고 불리는 소프트웨어 구성 요소를 추가하여 기능을 확장할 수 있습니다.
StackStrom Pack 요약
2016년 3월Brocade StackStorm 인수은 비즈니스바Brocade Workflow Composer(이하 BWC)로 판매됐다.BWC와 StackStorm의 차이점은 지원과 추가 기능(액세스 제어, LDAP, 워크플로우 설계자)으로 BWC90일 평가판 허가증에서 시도할 수 있지만, 이번에는 오픈소스 StackStorm을 설치해 활용법을 찾으려는 것이다.

StackStorm 시스템 구성 요소


Installation 설명서에 시스템 요구사항과 설치가 기재되어 있으니 확인하십시오.

System Requirements


Linux (64 bit)
Vagrant Box
Amazon AWS AMI
Ubuntu 14.04
bento/ubuntu-14.04
Ubuntu Server 14.04 LTS (HVM)
RHEL 7/CentOS 7
bento/centos-7.2
Red Hat Enterprise Linux (RHEL) 7.2 (HVM)
RHEL 6/CentOS 6
bento/centos-6.7
Red Hat Enterprise Linux (RHEL) 6 (HVM)
Testing
Production
Dual CPU system
Quad core CPU system
1GB RAM
>16GB RAM
10GB storage
40GB storage
Recommended EC2: t2.medium
Recommended EC2: m4.xlarge

설치하다.


이번에 AWS에 설치된 Ubuntu 서버에서 상기 시스템 조건이라면 AWS의 무료 사용 범위에 속하지 않기 때문에 t2.16GB 마이크로메모리 실례에 설치하고 싶습니다.
Ubuntu Server 16LTS의 경우 StackStorm을 설치할 때 오류가 발생할 수 있으므로 Ubuntu Server 14LTS의 인스턴스를 준비하십시오.
실례에 로그인하면 아래 스크립트만 실행하면 간단하게 설치할 수 있습니다.
curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password=<パスワード>
주의점
1) nginx를 설치해야 하기 때문에 Apache 등에서 Port:80을 이미 사용하면 스크립트가 오류로 인해 중지됩니다.
설치가 완료되면 다음이 표시됩니다.
####################### WARNING ########################
######## Chatops requires manual configuration #########
Edit /opt/stackstorm/chatops/st2chatops.env to specify
the adapter and settings hubot should use to connect to
the chat you're using. Don't forget to start the service
afterwards:

  $ sudo service st2chatops restart

For more information, please refer to documentation at
https://docs.stackstorm.com/install/deb.html#setup-chatops
########################################################


███████╗████████╗██████╗      ██████╗ ██╗  ██╗
██╔════╝╚══██╔══╝╚════██╗    ██╔═══██╗██║ ██╔╝
███████╗   ██║    █████╔╝    ██║   ██║█████╔╝
╚════██║   ██║   ██╔═══╝     ██║   ██║██╔═██╗
███████║   ██║   ███████╗    ╚██████╔╝██║  ██╗
╚══════╝   ╚═╝   ╚══════╝     ╚═════╝ ╚═╝  ╚═╝

  st2 is installed and ready to use.

Head to https://YOUR_HOST_IP/ to access the WebUI

Don't forget to dive into our documentation! Here are some resources
for you:

* Documentation  - https://docs.stackstorm.com
* Knowledge Base - https://stackstorm.reamaze.com

Thanks for installing StackStorm! Come visit us in our Slack Channel
and tell us how it's going. We'd love to hear from you!

웹 브라우저에서 https로 연결하면 로그인 화면이 표시됩니다.사용자가 "st2admin"비밀번호를 입력한 후 로그인에 성공했습니다.

작업 작성


동작확인Sample Python action을 사용하고 싶습니다.
1) 메타데이터 파일(my echo action.yaml)의 생성
• 기본 패키지에서 작업을 만듭니다.
$ cd /opt/stackstorm/packs/default/actions
$ vim my_echo_action.yaml
---
name: "echo_action"
runner_type: "python-script"
description: "Print message to standard output."
enabled: true
entry_point: "my_echo_action.py"
parameters:
    message:
        type: "string"
        description: "Message to print."
        required: true
        position: 0
• 파일의 소유자 및 권한 변경
$ chown root:st2packs my_echo_action.yaml
$ chmod 664 my_echo_action.yaml
2) Action 스크립트 파일(my echo action.py) 제작
$ vim my_echo_action.py
import sys

from st2actions.runners.pythonrunner import Action

class MyEchoAction(Action):
    def run(self, message):
        print(message)

        if message == 'working':
            return (True, message)
        return (False, message)
3) StackStorm에 메타데이터 읽기st2 action create -y my_echo_action.yaml4) 메타데이터 다시 로드
동작을 변경할 때 수동으로 삭제하거나 다시 불러와야 합니다.
또는 다음 방법으로 모든 메타데이터를 다시 불러옵니다.
$ st2ctl reload
Registering content...[flags = --register-actions --register-aliases --register-sensors --register-triggers --register-configs --register-rules]
2016-12-05 12:46:16,487 INFO [-] Connecting to database "st2" @ "0.0.0.0:27017" as user "None".
2016-12-05 12:46:16,546 INFO [-] =========================================================
2016-12-05 12:46:16,546 INFO [-] ############## Registering triggers #####################
2016-12-05 12:46:16,547 INFO [-] =========================================================
2016-12-05 12:46:16,628 INFO [-] Registered 0 triggers.
2016-12-05 12:46:16,629 INFO [-] =========================================================
2016-12-05 12:46:16,629 INFO [-] ############## Registering sensors ######################
2016-12-05 12:46:16,629 INFO [-] =========================================================
2016-12-05 12:46:16,930 INFO [-] Registered 3 sensors.
2016-12-05 12:46:16,930 INFO [-] =========================================================
2016-12-05 12:46:16,930 INFO [-] ############## Registering actions ######################
2016-12-05 12:46:16,930 INFO [-] =========================================================
2016-12-05 12:47:34,686 INFO [-] Registered 64 actions.
2016-12-05 12:47:34,687 INFO [-] =========================================================
2016-12-05 12:47:34,688 INFO [-] ############## Registering rules ########################
2016-12-05 12:47:34,688 INFO [-] =========================================================
2016-12-05 12:47:34,759 INFO [-] Registered 1 rules.
2016-12-05 12:47:34,760 INFO [-] =========================================================
2016-12-05 12:47:34,760 INFO [-] ############## Registering aliases ######################
2016-12-05 12:47:34,760 INFO [-] =========================================================
2016-12-05 12:47:34,934 INFO [-] Registered 9 aliases.
2016-12-05 12:47:34,935 INFO [-] =========================================================
2016-12-05 12:47:34,935 INFO [-] ############## Registering configs ######################
2016-12-05 12:47:34,935 INFO [-] =========================================================
2016-12-05 12:47:34,936 INFO [-] Registered 0 configs.
##### st2 components status #####
st2actionrunner PID: 842
st2api PID: 767
st2api PID: 1295
st2stream PID: 768
st2stream PID: 1290
st2auth PID: 758
st2auth PID: 1293
st2garbagecollector PID: 757
st2notifier PID: 761
st2resultstracker PID: 759
st2rulesengine PID: 765
st2sensorcontainer PID: 751
st2chatops is not running.
mistral-server PID: 860
mistral-api PID: 829
mistral-api PID: 2554
mistral-api PID: 2555

확인


1) 추가 설치 팩
이렇게 실행하면 다음과 같은 오류가 발생합니다.
$ st2 run default.echo_action message=working
id: 58462044cd37df050fb3d6dc
status: failed (0s elapsed)
parameters:
  message: 'working'
result:
  error: '

    Virtual environment (/opt/stackstorm/virtualenvs/default) for pack "default" doesn''t exist. If you haven''t

    installed a pack using "packs.install" command, you can create a new virtual environment using

    "st2 run packs.setup_virtualenv packs=default" command''

    '
  traceback: "  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2actions/container/base.py", line 98, in _do_run
    (status, result, context) = runner.run(action_params)
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2actions/runners/pythonrunner.py", line 118, in run
    raise Exception(msg)
"
팩에 있는 가상 환경이 필요하기 때문에 오류 내용에 따라 다음과 같은 방법으로 추가 팩을 설치합니다.st2 run packs.setup_virtualenv packs=default2) 작업 수행
이 Pythhon 동작은 메시지 매개 변수가 제공하는 텍스트를 표준 출력에 표시하고 매개 변수가 작동하는 경우 True를 반환합니다.
$ st2 run default.echo_action message=working
.
id: 58462289cd37df050fb3d6f1
status: succeeded
parameters:
  message: working
result:
  exit_code: 0
  result: working
  stderr: ''
  stdout: 'working
매개변수가 working이 아닌 경우 False가 반환됩니다.
$ st2 run default.echo_action message=test
.
id: 58462292cd37df050fb3d6f4
status: failed
parameters:
  message: test
result:
  exit_code: 0
  result: test
  stderr: ''
  stdout: 'test
새로운 동작이 추가된 것을 확인한 만큼 다음에는 룰, 센스, 트리거(Webhook) 등을 쓰고 싶다.

좋은 웹페이지 즐겨찾기