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

他の言語でもお読みいただけます:
uk Englishjapan日本語brazil Portugues do Brasilfrance FrançaiseEspañol Español

目次

目的

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

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

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

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

ガイド

ラボシナリオ

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

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

Web 運用チーム

Web 開発者チーム

言い換えると、Web 運用チームは、アプリケーションのデプロイメント用にサーバーを準備し、Web 開発者チームがそのサーバー上にアプリケーションをデプロイします。


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

注意

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

プロジェクトのセットアップ

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

警告

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

Resources -> Projects 内で、Add ボタンをクリックして、Web オペレーションチームのプロジェクトを作成します。以下のようにフォームに移動します。

パラメーター
Name Webops Git Repo
Organization Default
Default Execution Environment Default execution environment
Source Control Credential Type Git
Source Control URL https://github.com/ansible/workshop-examples.git
Source Control Branch/Tag/Commit webops
Options
  • ✓ Clean
  • ✓ Delete
  • ✓ Update Revision on Launch

Save をクリックします。


Resources -> Projects 内で、Add ボタンをクリックして、Web 開発者チームのプロジェクトを作成します。以下のようにフォームに移動します。

パラメーター
Name Webdev Git Repo
Organization Default
Default Execution Environment Default execution environment
Source Control Credential Type Git
Source Control URL https://github.com/ansible/workshop-examples.git
Source Control Branch/Tag/Commit webdev
Options
  • ✓ Clean
  • ✓ Delete
  • ✓ Update Revision on Launch

Save をクリックします。

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

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

Resources -> Templates に移動し、Add ボタンをクリックして、Add job template を選択します。

パラメーター
Name Web App Deploy
Job Type Run
Inventory Workshop Inventory
Project Webops Git Repo
Execution Environment Default execution environment
Playbook rhel/webops/web_infrastructure.yml
Credentials Workshop Credential
Limit web
Options ✓ Privilege Escalation

Save をクリックします。


Resources -> Templates に移動し、Add ボタンをクリックして、Add job template を選択します。

パラメーター
Name Node.js Deploy
Job Type Run
Inventory Workshop Inventory
Project Webdev Git Repo
Execution Environment Default execution environment
Playbook rhel/webdev/install_node_app.yml
Credentials Workshop Credential
Limit web
Options ✓ Privilege Escalation

Save をクリックします。

ヒント

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

ワークフローのセットアップ

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

Resources -> Templates に移動し、Add ボタンをクリックして、Add job template を選択します。

Name Deploy Webapp Server
Organization Default

Save をクリックします。

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

start

Start ボタンをクリックすると、Add Node ウィンドウが開きます。Job Template を選択して、ノードタイプで、ノードにアクションを割り当てます。

Web App Deploy ジョブテンプレートを選択し、Save をクリックします。

Add Node

新しいノードが表示され、ジョブテンプレートの名前で START ボタンに接続されます。ノードの上にマウスポインターに移動し、ノードの詳細 (+)、ノードの詳細 (i)の表示(i)、ノードの編集(pencil)、利用可能なノード(chain)へのリンク、ノード(trash bin)を削除します。

workflow node

ノードにマウスをかざし、(+) 記号をクリックして新規ノードを追加します。

ヒント

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

Node Type については、Job Template (デフォルト) を選択し、Node.js Deploy ジョブテンプレートを選択します。 Save をクリックします。

Add Nodejs

Visualizier ビューの右上にある Save をクリックします。

ヒント

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

ワークフローの起動

Deploy Webapp Server Details ページから、ワークフローを Launch します。

起動

Jobs > Deploy Webapp Server Output にワークフローの実行が表示されていることに注意してください。通常のジョブテンプレートのジョブ実行とは異なり、ジョブが完了しても Playbook の出力はありませんが、ジョブが完了するまでの時間が表示されています。実際の Playbook の実行内容を見たい場合は、詳細を確認したいノードにカーソルを合わせてクリックします。ジョブの詳細表示の中で、Output メニューを選択すると、Playbook の出力が表示されます。Deploy WebappServer** ワークフローの Output ビューに戻りたい場合は、Views -> Jobs -> XX - Deploy Webapp Server で Output の概要に戻ることができます。

注記: XX はジョブ実行の数に置き換えます。

jobs view of workflow

ジョブが完了したら、すべてが正常に動作したかどうかを確認します。コントロールホストから、node1node2、および node3 に対して以下の curl コマンドを実行します。各 curl コマンドの出力は Hello World のはずです。

[student@ansible-1 ansible-files]$ curl http://nodeX/nodejs
Hello World

注記: X は、チェックするノードの適切な番号に置き換える必要があります。


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

Click here to return to the Ansible for Red Hat Enterprise Linux Workshop