LoginSignup
11
8

More than 5 years have passed since last update.

Ansible Tower の REST API ことはじめ

Last updated at Posted at 2016-12-11

本記事は Ansible Advent Calender 2016 の 12/11 分の記事です。

■ Ansible Tower とは

Ansible Towerは構成管理ツール Ansible の Web GUI、CLI(tower-cli)ツールです。現在はRed Hat社のプロプライエタリ・ソフトウェア ですが、今後オープンソース化される予定もあります。 Ansible Tower は REST APIに対応していて、例えば以下のようなことができます。

  • Job Template(Playbook + αの定義)の実行、確認、追加
  • 実行時の標準出力の確認
  • インベントリやスケジュールの確認、追加

本記事では、APIをたたくための準備としてトークンの発行方法と、APIリクエスト例をご紹介します。

■ トークンの発行方法とトークンの使い方

  1. https://{Tower_IP_ADDRESS}/api/v1/authtoken/ に対して、{"username": "user", "password": "mypass"} というjsonをPOSTします。
  2. jsonでtokenという名前でトークンの値が返ってきます。
  3. APIリクエスト時にヘッダー内のAuthorization:Token {token-value}という形式で指定します。

image.png
※図中のトークンはダミーです

トークンの有効期限

デフォルトのトークンの有効期限は1800秒(30分)です。変更したい場合は、/etc/tower/conf.d/session.pyAUTH_TOKEN_EXPIRATION の値を変更します。

トークンの有効範囲

トークンはAPIリクエスト元ごとに発行が必要です。たとえばホストAから発行したトークンはホストBでは使用できませんので、別途ホストB用のトークンを発行する必要があります。
image.png

■ APIリクエスト例

例えば、JobTemplate ID 10 の JobTemplate を起動させる場合は、以下のようなPOSTをします。

https://{Tower_IP_ADDRESS}//api/v1/job_templates/10/launch/

(ヘッダー内に前述のトークンを指定)

結果はjsonで返ってきます。

なお、エンドポイントの一覧は https://{Towe_IP_ADDRESS}/api/ で確認できます。
image.png

■ さいごに

Ansible TowerはWeb管理画面のほうが注目されることが多い気がしますが、REST APIに対応していることもメリットと感じています。直接APIをサポートしていなかったサービスや機器も Ansible Tower を経由することによって、API化することができ、何か面白いことができようになるのではと思っています。

  
※本記事は、NetOpsCoding#4で発表した「スマホのセンサーでネットワークを操る」の抜粋をベースにしています。

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8