■ はじめに
StackStorm の環境を準備するには、インストールスクリプトを実行する方法や Ansible の Playbook を実行する方法などがありますが、先日の公式ブログでは vagrant で VMごと StackStorm の環境を準備する方法が紹介されていました。
公式ドキュメントの「Vagrant & Virtual Appliance」にも、記載されていましたので、これらの情報をもとに試しに、環境を準備して、ごく簡単な動作確認をします。
環境:
- macOS High Sierra 10.13.4
- VirtualBox 5.2.12
- Vagrant 2.1.1
※ Ansible で StackStorm にインストールする場合はこちら http://tekunabe.hatenablog.jp/entry/2018/03/12
■ StackStorm 入りのVMの準備と起動
以下の2行だけです。
vagrant init stackstorm/st2 vagrant up
vagrant init stackstorm/st2
で最低限の Vagrantfile
が生成され、その情報をもとに vagrant up
でVMを起動するという流れです。
akirapc:st2 akira$ vagrant init stackstorm/st2 A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. akirapc:st2 akira$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'stackstorm/st2' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Loading metadata for box 'stackstorm/st2' default: URL: https://vagrantcloud.com/stackstorm/st2 ==> default: Adding box 'stackstorm/st2' (v2.7.2-20180523) for provider: virtualbox default: Downloading: https://vagrantcloud.com/stackstorm/boxes/st2/versions/2.7.2-20180523/providers/virtualbox.box ==> default: Successfully added box 'stackstorm/st2' (v2.7.2-20180523) for 'virtualbox'! ==> default: Importing base box 'stackstorm/st2'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'stackstorm/st2' is up to date... ==> default: Setting the name of the VM: stackstorm ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat default: Adapter 2: hostonly ==> default: Forwarding ports... default: 443 (guest) => 9000 (host) (adapter 1) default: 22 (guest) => 2222 (host) (adapter 1) ==> default: Running 'pre-boot' VM customizations... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default: default: Inserting generated public key within guest... default: Removing insecure key from the guest if it's present... default: Key inserted! Disconnecting and reconnecting using new SSH key... ==> default: Machine booted and ready! [default] GuestAdditions 5.2.12 running --- OK. ==> default: Checking for guest additions in VM... ==> default: Setting hostname... ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => /Users/akira/Documents/git/python_test/vagrant/st2 ==> default: Running provisioner: st2-version (shell)... default: Running: inline script default: st2 2.7.2, on Python 2.7 ==> default: Machine 'default' has a post `vagrant up` message. This is a message ==> default: from the creator of the Vagrantfile, and not from Vagrant itself: ==> default: ==> default: ███████╗████████╗██████╗ ██████╗ ██╗ ██╗ ==> default: ██╔════╝╚══██╔══╝╚════██╗ ██╔═══██╗██║ ██╔╝ ==> default: ███████╗ ██║ █████╔╝ ██║ ██║█████╔╝ ==> default: ╚════██║ ██║ ██╔═══╝ ██║ ██║██╔═██╗ ==> default: ███████║ ██║ ███████╗ ╚██████╔╝██║ ██╗ ==> default: ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ==> default: ==> default: To access the Web UI, head to: ==> default: https://10.10.10.10/ ==> default: Username: st2admin ==> default: Password: Ch@ngeMe ==> default: ==> default: Thanks for trying StackStorm!
■ CLIの確認
SSHログイン
そのまま vagrant ssh
コマンドでログインできます。
akirapc:st2 akira$ vagrant ssh Welcome to StackStorm v2.7.2 (Ubuntu 16.04 LTS GNU/Linux x86_64) * Documentation: https://docs.stackstorm.com/ * Community: https://stackstorm.com/community-signup * Forum: https://forum.stackstorm.com/ * Enterprise: https://stackstorm.com/#product Last login: Wed Jun 6 11:59:12 2018 from 10.0.2.2 vagrant@stackstorm:~$ hostname stackstorm vagrant@stackstorm:~$ uname -a Linux stackstorm 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux vagrant@stackstorm:~$
ログインできました。Ubutuを利用しているようです。
なお、VirtualBox の VM として SSH へポートフォワーディングは 2222/TCP に設定されますので、ssh コマンドやターミナルソフトでログインする場合は、 2222/TCP を指定します。
ユーザー名、パスワードともに vagrant
です。秘密鍵を利用する場合は .vagrant/machines/default/virtualbox/private_key
を指定します。
akirapc:st2 akira$ ssh vagrant@localhost -p 2222 vagrant@localhost's password: Welcome to StackStorm v2.7.2 (Ubuntu 16.04 LTS GNU/Linux x86_64) * Documentation: https://docs.stackstorm.com/ * Community: https://stackstorm.com/community-signup * Forum: https://forum.stackstorm.com/ * Enterprise: https://stackstorm.com/#product vagrant@stackstorm:~$ hostname stackstorm
StackStorm ログイン(認証)
StackStormの各種操作には、StackStormへのログインが必要です。ここでは環境変数にトークンを仕込む方法でログインと同等の状態にします。
ユーザーは st2admin
、パスワードは Ch@ngeMe
です。
vagrant@stackstorm:~$ export ST2_AUTH_TOKEN=`st2 auth -t -p Ch@ngeMe st2admin`
st2 run 動作確認
簡単な動作確認として st2 run
コマンドで date
コマンドを実行します。
vagrant@stackstorm:~$ st2 run core.local -- date -R . id: 5b17d02802ebd505e4388361 status: succeeded parameters: cmd: date -R result: failed: false return_code: 0 stderr: '' stdout: Wed, 06 Jun 2018 12:14:33 +0000 succeeded: true
正常に実行できました。
■ GUI(Web)の確認
ログイン
今度は、Web画面の確認をします。
VMの設定で、9000/TCP から 443/TCP へのポートフォワーディングが設定されていますので、ホストOSのブラウザから https://localhost:9000
にアクセスします。
CLI と居と同じく、ユーザーは st2admin
、パスワードは Ch@ngeMe
です。
ログ確認
ログイン後トップ画面の左の方で、先程CLIから実行した st2 run core.local -- date -R
のログが確認できます。
■ ログイン情報まとめ
初期のログイン情報は以下のとおりです。
ログイン方法 | ポート番号 | ユーザー名 | パスワード | 備考 |
---|---|---|---|---|
SSH | 2222 | vagrant | vagrant | 秘密鍵 .vagrant/machines/default/virtualbox/private_key |
Web | 9000 | st2admin | Ch@ngeMe | https://localhost:9000 |
st2 login |
- | st2admin | Ch@ngeMe |
■ まとめ
Vagrant と VirtualBox で艱難に OSごと StackStorm の環境を準備できることが確認できました。 特に OS/ディストリビューションにこだわりがなく、とにかく手軽にローカルに StackStorm の独立した環境を準備するには、この Vagnrant の方法が良いのではないかと思います。