その他の言語はこちらをお読みください。
English, 日本語, Portugues do Brasil, Française, Español.
Ansible Tower Project は、AnsiblePlaybook の論理的なコレクションです。プレイブックは、Git、Subversion、Mercurial などのTower がサポートするソースコード管理 (SCM) システムに配置することで管理できます。
この演習では、以下について説明します。
- AnsibleTower プロジェクトの概要と利用
- Git リポジトリーに保存されている AnsiblePlaybook の使用
- Ansible ジョブテンプレートの作成と使用
このデモでは、Git リポジトリーに保存されている Playbook を使用します。
https://github.com/ansible/workshop-examples
Apache Web サーバーをインストールする Playbook が既に rhel/apache ディレクトリーにコミットされている
(apache_install.yml
):
---
- name: Apache server installed
hosts: all
tasks:
- name: latest Apache version installed
yum:
name: httpd
state: latest
- name: latest firewalld version installed
yum:
name: firewalld
state: latest
- name: firewalld enabled and running
service:
name: firewalld
enabled: true
state: started
- name: firewalld permits http service
firewalld:
service: http
permanent: true
state: enabled
immediate: yes
- name: Apache enabled and running
service:
name: httpd
enabled: true
state: started
ヒント
作成した Playbook の違いをメモしてください。最も重要なのは、
become
がなく、hosts
がall
に設定されていることです。
Tower で Source Control Management (SCM) として、このレポジトリーを設定して使用するには、このレポジトリーを使用する Project を作成する必要があります。
-
サイドメニュービューで RESOURCES → Projects に移動し、緑色の + ボタンをクリックします。フォームを記入します。
Parameter Value NAME Workshop Project ORGANIZATION Default SCM TYPE Git
次に、リポジトリーにアクセスするための URL が必要になります。上記の Github リポジトリーに移動し、右側にある緑色の Clone or download ボタンを選択し、Use https をクリックして、HTTPS URL をコピーします。
注意
クリックする Use https がなく、Use SSH がある場合でも問題ありません。URL をコピーしてください。https で始まる URL をコピーすることが重要です。
Project 構成に URL を入力します。
Parameter | Value |
---|---|
SCM URL | https://github.com/ansible/workshop-examples.git |
SCM UPDATE OPTIONS | Tick the first three boxes to always get a fresh copy of the repository and to update the repository when launching a job |
- SAVE をクリックします。
新しい Project は、作成後に自動的に同期されます。ただし、これを手動で行うこともできます。Projects ビューに移動し、プロジェクトの右側にある円形の矢印 Get latest SCM revision* アイコンをクリックして、プロジェクトを Git リポジトリーと再度同期します。
同期ジョブを開始した後、Jobs ビューに移動します。Git リポジトリーを更新するための新しいジョブがあります。
ジョブテンプレートは、Ansible ジョブを実行するための定義とパラメーターのセットです。ジョブテンプレートは、同じジョブを何度も実行するのに役立ちます。したがって、Tower から Ansible Jobを実行する前に、まとめる Job Template を作成する必要があります。
-
Inventory: ジョブが実行するホスト
-
Credentials ホストへのログインに必要な認証情報
-
Project: Playbook の場所
-
What 使用する Playbook
実際にやってみましょう。Templates ビューに移動して、 ボタンをクリックし、Job Template を選択します。
ヒント
フィールドへの記入を選ぶにあたり、オプションの概要を得るには拡大鏡をクリックすることができます。
Parameter | Value |
---|---|
NAME | Install Apache |
JOB TYPE | Run |
INVENTORY | Workshop Inventory |
PROJECT | Workshop Project |
PLAYBOOK | rhel/apache/apache_install.yml |
CREDENTIAL | Workshop Credentials |
LIMIT | web |
OPTIONS | tasks need to run as root so check **Enable privilege escalation** |
- SAVE をクリックします。
青い LAUNCH ボタンを直接クリックするか、Job Templates の概要でロケットをクリックすると、ジョブを開始できます。ジョブテンプレートを起動すると、自動的にジョブの概要が表示され、Playbook の実行をリアルタイムで追跡できます。
これには時間がかかる場合があるため、提供されているすべての詳細を詳しく調べてください。
-
インベントリー、プロジェクト、認証情報、Playbook などのジョブテンプレートのすべての詳細が表示されます。
-
さらに、Playbook の実際のリビジョンがここに記録されます。これにより、後でジョブの実行を分析しやすくなります。
-
また、開始時間と終了時間の実行時間が記録されるため、ジョブの実行が実際にどのくらいの時間であったかがわかります。
-
右側には、Playbook の実行の出力が表示されます。タスクの下のノードをクリックして、各ノードの各タスクの詳細情報が表示されていることを確認します。
ジョブが終了したら、メインの Jobs ビューに移動します。すべてのジョブがここに一覧表示されます。Playbook が実行される前に、SCM 更新が開始されていたことがわかります。これは、起動時に Project 用に構成した Git アップデートです。
小チャレンジ:
- 両方のホストでアドホックコマンドを使用して、Apache がインストールされ、実行されていることを確認します。
必要なすべての手順をすでに完了しているので、これを自分で試してください。
ヒント
systemctl status httpd
はどうでしょうか。
警告
回答を以下に示します
-
Inventories → Workshop Inventory に移動します
-
HOSTS ビューでは、すべてのホストを表示して、RUN COMMANDS をクリックします。
-
以下に記入してください。
Parameter | Value |
---|---|
MODULE | command |
ARGUMENTS | systemctl status httpd |
MACHINE CREDENTIALS | Workshop Credentials |
- LAUNCH をクリックします