Read this in other languages:
English,
日本語,
Portugues do Brasil,
Française,
Español.
Ansible Tower の主要な新機能としてバージョン 3.1 からワークフローが導入されました。ワークフローの基本的な考え方は、複数のジョブテンプレートをリンクし実行できることです。各ジョブテンプレートの実行は、例えば以下の様な実行条件を付与することができます。
-
ジョブテンプレート A が成功すると、ジョブテンプレート B が自動的に実行される
-
ただし、失敗した場合は、ジョブテンプレート C が実行される
また、ワークフローはジョブテンプレートだけではなくプロジェクトやインベントリの更新を行うこともできます。
このラボでは、ワークフローの設定方法を学びます。
組織には以下の2つの部門があります。
-
自分の Git リポジトリで Playbook を開発・利用して Web アプリケーションを運用しているチーム
-
Git リポジトリで Tomcat 用の JSP Web アプリケーションを開発しているチーム
新しい Tomcat サーバーをデプロイする必要がある場合、以下の 2 つのことを行う必要があります
-
Tomcat をインストールし、ファイアウォール設定を行い、Tomcatサービスを開始する
-
Web アプリケーション開発チームが作成した最新の Web アプリケーションを展開する
Playbook、JSP ファイルなど、必要なものはすべて Git リポジトリーに存在します。それを利用してラボを行います。
メモ
シナリオでは、2 つの異なる Git リポジトリの利用を想定していますが、このラボでは同じリポジトリの2つの異なるブランチにアクセスしています
先のラボで実施した通り、まずはプロジェクトを作成し、 Git リポジトリを登録する必要があります。必要な情報は以下です。ご自身で設定してみてください。
注意
このラボは admin アカウントで実施します。 wweb ユーザーでログインしている場合は、ログアウトして admin でログインしなおしてください!
-
web オペレーションのためのプロジェクトを作成します
-
名前は Webops Git Repo とします
-
SCM アクセス先は https://github.com/ansible/workshop-examples.git です
-
SCM BRANCH/TAG/COMMIT は webops とします
-
-
アプリケーション開発者向けのプロジェクトを作成します。
-
名前は Webdev Git Repo とします
-
SCM アクセス先は https://github.com/ansible/workshop-examples.git です
-
SCM BRANCH/TAG/COMMIT は webdev とします
-
回答は以下の通り
-
Web 運用者用のプロジェクトを作成します。プロジェクト画面より緑色のプラスボタンをクリックし、以下の値を入力します。
-
名前 Webops Git Repo
-
組織 Default
-
SCM タイプ Git
-
SCM BRANCH/TAG/COMMIT webops
-
SCM 更新オプション 全てにチェックします
-
-
保存をクリックします
-
Web アプリ開発者用のプロジェクトを作成します。プロジェクト画面より緑色のプラスボタンをクリックし、以下の値を入力します。
-
名前 Webdev Git Repo
-
組織 Default
-
SCM タイプ Git
-
SCM BRANCH/TAG/COMMIT webdev
-
SCM 更新オプション 全てにチェックします
-
-
保存をクリックします
最終目標はワークフローの作成ですが、まず、通常のジョブテンプレートを作成する必要があります。
-
テンプレート を選択し、色のプラスボタンをクリックして、Job Templateを選択します
-
名前 Tomcat Deploy
-
ジョブタイプ 実行
-
インベントリー Workshop Inventory
-
プロジェクト Webops Git Repo
-
PLAYBOOK
rhel/webops/tomcat.yml
-
認証情報 Workshop Credentials
-
オプション 権限昇格の有効化にチェックを入れます
-
-
保存をクリック
-
上記の内容をアプリチームに対して繰り返します。テンプレート を選択し、色のプラスボタンをクリックして、ジョブテンプレートを選択します
-
名前 Web App Deploy
-
ジョブタイプ 実行
-
インベントリー Workshop Inventory
-
プロジェクト Webdev Git Repo
-
PLAYBOOK:
rhel/webdev/create_jsp.yml
-
認証情報 Workshop Credentials
-
オプション 権限昇格の有効化にチェックを入れます
-
-
保存をクリック
ヒント
Playbook の中身をご覧になりたい方は、 Github URL を確認して、適切なブランチに切り替えてご覧ください。
ジョブテンプレートが出来上がりましたので、ワークフローテンプレートを作成してみましょう。 ワークフローテンプレートも左メニューのテンプレートより作成します。
-
テンプレート を選択し、緑色のプラスボタンをクリックして、ワークフローテンプレートを選択します。
-
名前 Deploy Webapp Server
-
組織 Default
-
-
保存
-
これでワークフロービジュアライザーボタンがアクティブになります。早速クリックしてグラフィカルエディターを起動します。
-
開始 ボタンをクリックすると、Node 画面が開きます。右側で、ノードにアクションを割り当てることができます。ジョブ、プロジェクトの同期、インベントリー同期のいずれかが選択できます。
-
この実習ラボでは、先に作成したジョブテンプレートをリンクします。そのため、Tomcat Deploy ジョブを選んで選択をクリックします。
-
左側にノードが現れます。ノードにはジョブの名前が入っています。ノードの上にマウスポインターを合わせると、赤いxと緑の + 記号、真ん中には鎖のような青い記号が表示されます。
ヒント
赤い「x」を使用するとノードを削除でき、緑のプラスを使用すると次のノードを追加できます。青は他のノードへのリンク作成を行う際に使います。
-
緑の + を選択します
-
次のジョブとして Web App Deploy を選択します(次のページに切り替える必要がある場合があります)
-
実行 は成功時のままにします。
ヒント
この実行を使うことにより、より複雑なワークフローが可能になります。Playbook の実行が成功した場合と失敗した場合に、異なる実行パスをレイアウトできます。
-
選択 をクリック
-
ワークフロービジュアライザー画面で保存をクリックします
-
ワークフローテンプレート画面で保存をクリックします
作成が完了しましたので早速動作させてみましょう♪
- 起動 ボタンを直接クリックしても良いですし、テンプレート画面でロケットアイコンをクリックしても起動ができます。
ジョブビューでワークフローの実行がどのように表示されるかに注意してください。今回の通常のジョブテンプレートジョブの実行とは対照的に、右側にはプレイブックの出力はありませんが、複数のジョブステップの実行状況が表示されます。各ジョブで実行されたプレイブックの状況を確認したい場合は、各ステップの詳細をクリックしてください。再度ワークフロー実行画面に戻りたい場合は、左の画面の Web App Deloy の右隣にある小さな をクリックしてください。
ジョブが完了した後、すべてがうまく働いたかどうかを確認します。node1、node2またはnode3お使いの制御ホストから以下を実行します。
$ curl http://localhost:8080/coolapp/
ヒント
Tomcat がリクエストに応答するまで、数分待たなければならない場合があります。