他の言語でもお読みいただけます:
 English、
 English、 日本語、
日本語、 Portugues do Brasil、
 Portugues do Brasil、 Française、
 Française、 Español
 Español
ワークフローの基本的な考え方は、複数のジョブテンプレートをリンクするというものです。インベントリー、Playbook、さらにはパーミッションを共有する場合と共有しない場合があります。リンクは条件付きにすることができます。
また、ワークフローは Job Templates に限定されるものではなく、プロジェクトやインベントリーの更新を含めることもできます。
これにより、Ansible 自動コントローラーの新しいアプリケーションが可能になります。さまざまなジョブテンプレートを相互に構築できます。たとえば、ネットワーキングチームは、独自のコンテンツを使用して、独自のGitリポジトリに、さらには独自のインベントリを対象に Playbook を作成します。一方、運用チームには、独自のリポジトリー、Playbook、およびインベントリーがあります。
このラボでは、ワークフローを設定する方法を説明します。
組織に 2 つの部門があるとします。
webops という独自の Git ブランチで Playbook を開発している Web 運用チームwebdev という独自の Git ブランチでプレイブックを開発しているWeb開発者チーム。デプロイする新しい Node.js サーバーがある場合は、次の 2 つのことが必要です。
httpd、firewalld、および node.js インストールし、SELinux 設定を定義し、ファイアウォールを開き、httpd および node.js を起動する必要があります。node.js を再起動する必要があります。言い換えると、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 | 
 | 
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 | 
 | 
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 template と Add workflow template のどちらかを選択できることに気付いたかもしれません。
Resources -> Templates に移動し、Add ボタンをクリックして、Add job template を選択します。
| Name | Deploy Webapp Server | 
| Organization | Default | 
Save をクリックします。
テンプレートを保存すると、Workflow Visualizer が開き、ワークフローを作成できます。テンプレートの詳細ページのボタンを使用して、メニューから Visualizer を選択して、後で Workflow Visualizer を再度開くことができます。

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

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

ノードにマウスをかざし、(+) 記号をクリックして新規ノードを追加します。
ヒント
実行のタイプにより、より複雑なワークフローが可能になります。Playbook 実行に成功した実行パスや失敗した実行パスなど、各種パスのレイアウトを行うことができます。
Node Type については、Job Template (デフォルト) を選択し、Node.js Deploy ジョブテンプレートを選択します。 Save をクリックします。

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 はジョブ実行の数に置き換えます。

ジョブが完了したら、すべてが正常に動作したかどうかを確認します。コントロールホストから、node1、node2、および 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