StackStorm.stackstorm

Ansible-st2

Ansible のロールとプレイブックを使用して、StackStorm をデプロイします。

StackStorm は、Pythonで書かれたイベント駆動型の自動化プラットフォームです。 GitHub、Docker、Nagios、NewRelic、AWS、Ansibleなど、50以上の統合に対応しており、既存のインフラストラクチャを複雑なワークフローに結びつけ、自動修復などを可能にします。つまり、Ops用のIFTTTオーケストレーションです。

E2E テスト リポジトリ deb/rpm コミュニティSlackに参加

対応プラットフォーム

  • Ubuntu Focal (20.04)
  • RHEL 7 および CentOS 7
  • RHEL 8 および Rocky Linux 8

提供されている Vagrantfile を使用している場合は、デフォルトでFocalが使用されることに注意してください。

StackStormのWeb UIにアクセスするためには、ファイアウォールでhttpおよびhttpsポートが許可されていることを確認してください。

要件

サポートされているバージョンの Ansible とその依存関係が必要です。 StackStormにはRabbitMQ、Mongo、Redis、nginxが含まれているため、少なくとも2 GBのメモリと3.5 GBのディスクスペースが必要です。

インストール

# StackStormをデプロイ
ansible-playbook stackstorm.yml

変数

以下は、プレイブックやインベントリで再定義してStackStormのデプロイをカスタマイズできる変数のリストです。

変数 デフォルト 説明
st2repo
st2repo_name stable インストールするStackStormのPackageCloudリポジトリ。 stable, unstable, staging-stable, staging-unstable
st2
st2_version latest インストールするStackStormのバージョン。 利用可能なパッケージをインストールするにはpresent、自動更新を取得するにはlatest、または2.2.0のような数値バージョンや2.2.0-1のようなリビジョンで固定します。
st2_config {} st2.conf iniファイルに設定するStackStormの設定値を含むハッシュ。
st2_system_user stanley st2がローカル/リモートシェルアクションを実行するシステムユーザー。
st2_system_user_in_sudoers yes st2_system_userをsudoersに追加(ほとんどのst2機能が動作するために推奨)。
st2_ssh_key_file /home/{{st2_system_user}}/.ssh/{{st2_system_user}}_rsa st2_system_userのSSH秘密鍵のパス。デフォルトで自動生成されます。
st2_auth_enable yes StackStormのスタンドアロン認証を有効にします。
st2_auth_username testu StackStormのスタンドアロン認証で使用するユーザー名。
st2_auth_password testp StackStormのスタンドアロン認証で使用するパスワード。
st2_save_credentials yes /root/.st2/configファイルにローカルCLIの資格情報を保存します。
st2_rbac_enable no RBACを有効にします。
st2_rbac ロールのデフォルトのst2_rbac変数を参照 RBACのロールと割り当て。 これは、3つのキーrolesassignmentsmappingsを持つ辞書です (LDAPグループのメンバーシップに基づく)。 rolesassignmentsmappingsは配列です。 配列内の各要素は、ST2ドキュメントに定義されたロールおよび割り当ての正確なYAMLスキーマに従います。 mappingsは少し異なり、namemappingキーを使用しています。例は./roles/StackStorm.st2/defaults/main.ymlで確認できます。
st2_ldap_enable no LDAP認証バックエンドを有効にします。
st2_ldap ロールのデフォルトのst2_ldap変数を参照 LDAP認証バックエンドの設定。 st2_ldapは辞書で、一つのアイテムbackend_kwargsを持っています。 backend_kwargsはST2ドキュメントにリストされているように提供する必要があります。LDAP設定
st2_packs [ st2 ] インストールするパックのリスト。このフラグは--python3のみのパックでは機能しません。
st2_python_packages [ ] /opt/stackstorm/st2の仮想環境にインストールするPythonパッケージのリスト。 これは、代替の認証またはコーディネーションバックエンドをデプロイする際に必要です。
st2web
st2web_version latest インストールするst2webのバージョン。利用可能なパッケージをインストールするにはpresent、自動更新を取得するにはlatest、または2.2.0のような数値バージョンや2.2.0-1のようなリビジョンで固定します。
st2web_ssl_certificate null カスタムSSL証明書(.crt)の文字列。指定がない場合は自己署名証明書が生成されます。
st2web_ssl_certificate_key null カスタムSSL証明書の秘密鍵(.key)の文字列。指定がない場合は自己署名証明書が生成されます。
st2web_nginx_config null カスタムnginx設定ファイル(st2.conf)の文字列。指定がない場合はデフォルトのst2.confが使用されます。
st2chatops
nodejs_major_version 14 st2chatopsバージョン >= 3.5.0に適したデフォルトです。
st2chatops_version latest インストールするst2chatopsのバージョン。 利用可能なパッケージをインストールするにはpresent、自動更新を取得するにはlatest、または2.2.0のような数値バージョンや2.2.0-1のようなリビジョンで固定します。
st2chatops_st2_api_key "st2 apikey create -k"を使用してst2chatops.envに更新されるst2 APIキー
st2chatops_hubot_adapter st2chatopsで使用されるHubotアダプタ。 デフォルトはshellですが、サポートされているアダプタの一つに変更する必要があります。[必須]
st2chatops_config { } st2chatops_hubot_adapterのアダプタに基づき、アダプタ設定のハッシュを提供してst2chatops.envを更新します。 例: Slackのhubotアダプタの場合: st2chatops_config: HUBOT_SLACK_TOKEN: xoxb-CHANGE-ME-PLEASE
st2chatops_version latest インストールするst2chatopsのバージョン。 latestを使用して自動更新を取得するか、または2.2.0のような数値バージョンで固定します。

ローカルマシンに最新のstable StackStormとそのすべてのコンポーネントをインストール:

ansible-playbook --inventory localhost, --connection local stackstorm.yml

stackstorm.example.comという名前のリモートマシンにStackStormをインストールするには、インベントリを作成して参照します:

echo "stackstorm.example.com" > inventory
ansible-playbook --inventory inventory stackstorm.yml

latestバージョンを維持することは、プレイブックを再実行してStackStormを更新するのに便利です。新しいバージョンが利用可能な場合は、st2を再インストール(アップグレード)します。

これはデフォルトの動作です。更新を望まない場合は、特定のバージョンとリビジョン番号を固定することを検討してください。

リビジョン番号を固定して特定のst2バージョンをインストール:

ansible-playbook stackstorm.yml --extra-vars "st2_version=2.2.0 st2_revision=8"

プロキシの背後でのインストール

プロキシの背後でインストールしている場合は、プレイブック内で環境変数http_proxyhttps_proxyno_proxyを使用できます。 st2smoketestsの場合は、localhostのプロキシを無効にする必要があります。

environment:
  http_proxy: http://proxy.example.net:3128
  https_proxy: http://proxy.example.net:3128
  no_proxy: 127.0.0.1,localhost

開発

ansible-st2での開発にはいくつかの要件があります。

以下はサポートすべきプラットフォームです(エンドツーエンドテストに合格する必要があります):

  • Ubuntu Focal (20.04)
  • CentOS 7
  • Rocky Linux 8
  • RHEL 7 (AWS経由)
  • RHEL 8 (AWS経由)

プレイブックとロールは、Ansibleの冪等性をサポートする必要があります。 つまり、stackstorm.ymlプレイブックを再実行すると、changed=0.*failed=0という結果で終わる必要があります(バージョンとリビジョンが固定されている場合)。

ローカル開発用には、Vagrantfile が用意されています。 デフォルトでは、次のコマンドでUbuntu20ボックス(ubuntu/focal64)が設定されます:

vagrant up

他のサポートされているディストリビューション:

vagrant up ubuntu20
vagrant up centos7
vagrant up rockylinux8

他のインストール方法

StackStormをデプロイするための他の方法に興味があるかもしれません:

ヘルプを得る

問題が発生した場合、私たちのコミュニティが手助けしてくれるので、自由に相談してください。

あなたの質問、コメント、貢献は大歓迎で、非常に感謝されます!

プロジェクトについて

Install StackStorm (IFTTT for Ops) with all the components like Web UI, ChatOps and dependant services including RabbitMQ, MongoDB, nginx.

インストール
ansible-galaxy install StackStorm.stackstorm
ライセンス
apache-2.0
ダウンロード
624.6k
所有者
Event-driven automation. Used by Netflix & many more....