开始使用 Ansible Tower 的 REST API
本文是2016年Ansible Advent Calender的12/11篇文章。
■ Ansible Tower 是什么
Ansible Tower是配置管理工具 Ansible 的Web GUI和CLI (tower-cli) 工具。目前属于红帽公司的专有软件,但未来也有可能开源。Ansible Tower支持REST API,可以实现以下功能。
-
- Job Template(Playbook + αの定義)の実行、確認、追加
実行時の標準出力の確認
インベントリやスケジュールの確認、追加
在本论文中,我们将介绍用于调用API的准备工作,包括令牌的生成方法和API请求示例。
-
- 参考: 公式ドキュメント Ansible Tower API Guide v3.0.2
https://docs.ansible.com/ansible-tower/latest/html/towerapi/
■ 发行令牌的方法和使用令牌的方式
-
- 对于https://{Tower_IP_ADDRESS}/api/v1/authtoken/,使用POST方式发送一个名为{“username”: “user”, “password”: “mypass”}的JSON。
-
- JSON中会返回一个名为”token”的值作为令牌。
- 在API请求中,通过在头部中设置Authorization: Token {token-value}的格式来指定令牌。
-
- 参考: 公式ドキュメント Auth Token API Endpoint
http://docs.ansible.com/ansible-tower/latest/html/towerapi/auth_token.html
令牌的有效期限
默认令牌的有效期是1800秒(30分钟)。如果想要更改,请修改 /etc/tower/conf.d/session.py 文件中的 AUTH_TOKEN_EXPIRATION 值。
-
- 参考: 公式ドキュメント Working with Session Limits
http://docs.ansible.com/ansible-tower/latest/html/administration/session_limits.html
令牌的有效范围 de
■ API请求示例
如果要启动 JobTemplate ID 10 的工作模板,可以进行以下的 POST 请求。
https://{Tower_IP_ADDRESS}//api/v1/job_templates/10/launch/
(在标头中指定前述的令牌)
结果将以JSON格式返回。
-
- 参考: 公式ドキュメント Browsable API
http://docs.ansible.com/ansible-tower/latest/html/towerapi/browseable.html
最后
我觉得Ansible Tower在网页管理界面方面更受关注,但它也对REST API提供支持,这也是一个优点。通过 Ansible Tower,可以将原本不直接支持API的服务和设备转变为支持API的,我认为这将带来一些有趣的可能性。
本文章基于NetOpsCoding#4的演讲”利用手机传感器操控网络”进行了摘要。