ワークショップ演習 - ワークフロー

その他の言語はこちらをお読みください。
uk English, japan日本語, brazil Portugues do Brasil, france Française, Español Español.

目次

目的

ワークフローの基本的な考え方は、複数のジョブテンプレートをリンクするというものです。インベントリー、Playbook、さらにはパーミッションを共有する場合と共有しない場合があります。リンクは条件付きにすることができます。

また、ワークフローは Job Templates に限定されるものではなく、プロジェクトやインベントリーの更新を含めることもできます。

これにより、AnsibleTower の新しいアプリケーションが可能になります。さまざまなジョブテンプレートを相互に構築できます。たとえば、ネットワーキングチームは、独自のコンテンツを使用して、独自のGitリポジトリに、さらには独自のインベントリを対象に Playbook を作成します。一方、運用チームには、独自のリポジトリー、Playbook、およびインベントリーがあります。

このラボでは、ワークフローを設定する方法を説明します。

ガイド

ラボシナリオ

組織に 2 つの部門があるとします。

デプロイする新しい Node.js サーバーがある場合は、次の 2 つのことが必要です。

Web 運用チーム

Web 開発者チーム


作業を少し簡単にするために、必要なものはすべて Github リポジトリーに既に存在します。Playbook、JSP ファイルなどです。接着するだけです。

注意

この例では、別々のチームのコンテンツに同じレポジトリーの異なる 2 つのブランチを使用します。実際には、SCM レポジトリーの構造は、ファクターによってことなります。

プロジェクトの設定

まず、通常どおりに Git リポジトリーをプロジェクトとして設定する必要があります。

警告

ユーザー wweb としてログインしている場合は、*admin** として再びログインします。

Web 運用チームのプロジェクトを作成します。Project ビューで、緑色のプラスボタンをクリックし、次のように入力します。

Parameter Value
NAME Webops Git Repo
ORGANIZATION Default
SCM TYPE Git
SCM URL https://github.com/ansible/workshop-examples.git
SCM BRANCH/TAG/COMMIT webops
SCM UPDATE OPTIONS
  • ✓ CLEAN
  • ✓ DELETE ON UPDATE
  • ✓ UPDATE REVISION ON LAUNCH

SAVE をクリックします。


Web 開発者チームのプロジェクトを作成します。Project ビューで、緑色のプラスボタンをクリックし、次のように入力します。

Parameter Value
NAME Webdev Git Repo
ORGANIZATION Default
SCM TYPE Git
SCM URL https://github.com/ansible/workshop-examples.git
SCM BRANCH/TAG/COMMIT webdev
SCM UPDATE OPTIONS
  • ✓ CLEAN
  • ✓ DELETE ON UPDATE
  • ✓ UPDATE REVISION ON LAUNCH

SAVE をクリックします。

ジョブテンプレートのセットアップ

次に、「通常」ジョブの場合と同じように、2 つのジョブテンプレートを作成する必要があります。

Template ビューに移動し、緑色のプラスボタンをクリックして、Job Template を選択します。

Parameter Value
NAME Web App Deploy
JOB TYPE Run
INVENTORY Workshop Inventory
PROJECT Webops Git Repo
PLAYBOOK rhel/webops/web_infrastructure.yml
CREDENTIAL Workshop Credentials
LIMIT web
OPTIONS ✓ ENABLE PRIVILEGE ESCALATION

SAVE をクリックします。


Template ビューに移動し、緑色のプラスボタンをクリックして、Job Template を選択します。

Parameter Value
NAME Node.js Deploy
JOB TYPE Run
INVENTORY Workshop Inventory
PROJECT Webdev Git Repo
PLAYBOOK rhel/webdev/install_node_app.yml
CREDENTIAL Workshop Credentials
LIMIT web
OPTIONS ✓ ENABLE PRIVILEGE ESCALATION

SAVE をクリックします。

ヒント

Ansible Playbook がどのようなものかを見たい場合は、Github URL を確認して適切なブランチに切り替えてください。

ワークフローの設定

ワークフローを設定します。ワークフローは Template ビューで構成されます。テンプレートを追加するときに、Job TemplateWorkflow Template のどちらかを選択できることに気付いたかもしれません。

workflow add

Templates ビューに移動して、今回は、Workflow Template を選択します。

NAME Deploy Webapp Server
ORGANIZATION Default

SAVE をクリックします。

テンプレートを保存すると、Workflow Visualizer が開き、ワークフローを作成できます。テンプレートの詳細ページのボタンを使用して、後で Workflow Visualizer を再度開くことができます。

ヒント

赤い “x” を使用すると、ノードを削除できます。緑色のプラスでは、次のノードを追加できます。チェーン記号は、別のノードに接続します。

ヒント

このタイプにより、より複雑なワークフローが可能になります。Playbook 実行に成功した実行パスや失敗した実行パスなど、各種パスのレイアウトを行うことができます。

ヒント

Workflow Visualizer には、より高度なワークフローを設定するためのオプションがあります。ドキュメントを参照してください。

ワークフローの起動

ワークフローの準備ができました。起動します。

青い LAUNCH ボタンを直接クリックするか、Templates ビューに移動し、ロケットアイコンをクリックして Deploy Webapp Server ワークフローを起動します。

起動

ワークフローの実行がジョブビューにどのように表示されるかに注目してください。通常のジョブテンプレートのジョブの実行と比べ、今回のものには、右側には Playbook の出力はありませんが、さまざまなワークフローステップの視覚的表現があります。その背後にある実際の Playbook を見たい場合は、各ステップで 詳細 をクリックしてください。詳細ビューから対応するワークフローに戻る場合は、ジョブ概要の左側の DETAIS 部分の JOB TEMPLATEw-button をクリックします。

jobs view of workflow

ジョブが終了した後、すべてが正常に動作したことを確認します。コントロールホストから node1node2node3 にログインし、以下を実行します。

#> curl http://localhost/nodejs

コントロールホストで curl を実行して、ノードに向けて nodejs パスを参照することもできます。また、単純な nodejs アプリケーションも表示されます。


ナビゲーション
前の演習 - 次の演習

クリックして Ansible for Red Hat Enterprise Linux Workshop に戻ります