他の言語でもお読みいただけます:
English、日本語、 Portugues do Brasil、 Française、 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