StackStorm.stackstorm
Ansible-st2
Ansible のロールとプレイブックを使用して、StackStorm をデプロイします。
StackStorm は、Pythonで書かれたイベント駆動型の自動化プラットフォームです。 GitHub、Docker、Nagios、NewRelic、AWS、Ansibleなど、50以上の統合に対応しており、既存のインフラストラクチャを複雑なワークフローに結びつけ、自動修復などを可能にします。つまり、Ops用のIFTTTオーケストレーションです。
対応プラットフォーム
- 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つのキーroles 、assignments 、mappings を持つ辞書です (LDAPグループのメンバーシップに基づく)。 roles 、assignments 、mappings は配列です。 配列内の各要素は、ST2ドキュメントに定義されたロールおよび割り当ての正確なYAMLスキーマに従います。 mappingsは少し異なり、name とmapping キーを使用しています。例は./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_proxy
、https_proxy
、no_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をデプロイするための他の方法に興味があるかもしれません:
構成管理
手動指示
ヘルプを得る
問題が発生した場合、私たちのコミュニティが手助けしてくれるので、自由に相談してください。
- 公開Slackチャンネルで質問する
- 問題を報告し、機能リクエストを提供するか、このプロジェクトに✮スターを付けてください
あなたの質問、コメント、貢献は大歓迎で、非常に感謝されます!
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