workshops

Training Course for Ansible Automation Platform

This project is maintained by ericzji

演習 2.3 - プロジェクトとジョブテンプレート

Read this in other languages: uk English, japan 日本語.

Tower の プロジェクト は、 Git、Subversion、Mercurial、ローカルホルダなど、Playbook の置き場所を定義する仕組みを提供します。 Tower ではサポートとされるソースコード管理(SCM)と連携して Playbook を管理することが可能です。

Playbook は SCM など、バージョン管理の仕組みの下に置いておくべきです。このラボでは、 Git リポジトリに保存されている Playbook を利用します。

Git リポジトリのセットアップ

このデモでは、既に Git リポジトリに保存されているプレイブックを使用します。

https://github.com/ansible/workshop-examples

このラボで利用する Apache Web Server をインストールするための Playbook は、上記 github サイトの 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

ヒント

Engine の演習で書いた Playbook と比較するとちょっと違っているところがあります。重要なところは、 become が無いところと、 hosts の設定に all を指定しているところです。

このリポジトリを Tower の Source Control Management (SCM) として利用するには プロジェクト を作成する必要があります。

プロジェクトの作成

ここで、リポジトリにアクセスするためのURLが必要です。上記の Github リポジトリに移動し、右側の緑色の Clone or download ボタンをクリック。さらに、 Clone with HTTPS が選択されていることを確認し、URL をコピーします。

SCM URL にコピーした URL を貼り付けます。

新しいプロジェクトは、作成後に自動的に同期されます。ただし、これを手動で行うこともできます。 Projects ビューに移動し、プロジェクトの右側にある円形矢印 最新のSCMリビジョンを取得 アイコンをクリックすると、プロジェクトを Git リポジトリと再度同期します。

ジョブテンプレートを作成してジョブを実行する

ジョブテンプレートは、Ansible ジョブを実行するための定義とパラメーターのセットです。ジョブテンプレートは、同じジョブを何度も実行するのに役立ちます。ジョブテンプレートではいくつかのパラメータを指定します。それぞれの意味は下記の通りです。

早速 ジョブテンプレート を作成してみましょう。♪

左のメニューから テンプレート を選択し、 plus ボタンをクリック。選択肢の中から ジョブテンプレート を選びます。

ヒント

下記フィールドの多くは、虫眼鏡アイコンをクリックの上オプション選択で設定が可能です。

青い 起動 ボタンを直接クリックするか、テンプレートのビューでロケットアイコンをクリックしてジョブを開始します。ジョブテンプレートを起動すると、自動的にジョブの概要が表示され、Playbook の実行をリアルタイムで追跡できます。

job exection

完了するまで少し時間がかかりますので、何を行っているか確認してみてください。

ジョブが完了したら、左のメニューからジョブをクリックします。すべてのジョブがここに一覧表示されます。Playbook を実行する前に、SCM 更新が開始されるのが分かります。これは、プロジェクト作成時に、 起動時のリビジョン更新 にチェックを入れましたね?その Git 情報の更新です!

チャレンジラボ: 結果の確認

以下に挑戦してみましょう!

確認する方法は以前のラボで学んでいると思いますので、考えてやってみてください。

ヒント

systemctl status httpd を使う!?

回答

次のラボの準備も含め少し作業します

以下を実施ください。

注意

次の章がそれに依存するので、これらの手順を必ず完了してください!

ヒント

Apache は既に最新バージョンでインストールされているため、ジョブは何も変更していないことが分かります。


Ansible Tower ワークショップ表紙に戻る