Ansible Tower
バックアップとリストア
バックアップするには以下。
Towerは実行中で良い。
バックアップに成功すると、カレントに tower-backup-YYYY-mm-dd-HH:MM:SS.tar.gz
が作成される。(symlinkのtower-backup-latest.tar.gz
も作成される)
# ./setup.sh -b
リストアは以下。
# ./setup.sh -r -e restore_backup_file=/path/to/tower-backup-....tar.gz
アンインストール
プロジェクト設定
SCMを使わない場合
Gitとか使わずTowerのホストのファイルシステム上のplaybookを使う場合は /var/lib/awx/projects
以下にプロジェクトのディレクトリを作り、その配下にplaybook類を配置する。
たとえば /var/lib/awx/projects/sample-demo/playbook.yml
など。
ログ
第11章 Automation Controller ログファイル | Red Hat Product Documentation
- /var/log/tower/
- /var/log/supervisor/
- /var/log/nginx/
- /var/lib/pgsql/data/pg_log/
- /var/log/redis/
API
API一覧は以下。
11. Controller API Reference Guide — Automation Controller API Guide v4.2.1
認証
ユーザー名とパスワード
webログイン時に使用するユーザー名とパスワードでRESTを実行するにはBasic認証を使用する。
curl
であれば-u
オプション。
curl -u $username:$password -sk https://192.168.0.27/api/v2/job_templates/
パーソナルトークン
Towerのユーザーページで、対象ユーザーを選択、「トークン」押下して「+」押下で作成できる。
権限はread/writeのみ。
GUIで作ったパーソナルトークンを使ったRESTは以下のようにAuthorization: Bearer {token-string}
をヘッダに追加すればOK
$ export tower_token=........
$ curl -sk https://192.168.0.27/api/v2/job_templates/ -H "Authorization: Bearer $tower_token"
19.2. パーソナルアクセストークン (PAT) 向けの OAuth2 トークンシステムの使用
ping
$ curl -sk https://server/api/v2/ping/
ジョブ
一覧
$ curl -sk https://192.168.0.27/api/v2/jobs/?page_size=200
ソートするにはorder_by
を使う。キーは-
を先頭につけると逆順。
以下で最新のジョブが先頭に来る。
$ curl -sk "https://192.168.0.27/api/v2/jobs/?page_size=200&order_by=-created"
page_size
に指定できるのはMAX200?(オーバー時は無視されて200扱い)
ジョブテンプレート
一覧
$ curl -sk https://192.168.0.27/api/v2/job_templates/?page_size=1000 | python -m json.tool
詳細
$ curl -sk https://192.168.0.27/api/v2/job_templates/{template-ID}/
テンプレートの検索
curl https://server/api/v2/job_templates/?search=Demo+Job+Template
ジョブの起動
curl -XPost https://server/api/v2/job_templates/${TEMPLATE_ID}/launch/
チーム
チーム一覧
curl -XGET https://server/api/v2/teams/
設定のcategory_slug確認
「Settings」にある /api/v2/settings/
で確認できる。
curl -sk https://tower.example.org/api/v2/settings/ | python3 -m json.tool
{
"count": 20,
"next": null,
"previous": null,
"results": [
{
"url": "/api/v2/settings/all/",
"slug": "all",
"name": "All"
},
{
"url": "/api/v2/settings/authentication/",
"slug": "authentication",
"name": "Authentication"
},
{
"url": "/api/v2/settings/azuread-oauth2/",
"slug": "azuread-oauth2",
"name": "Azure AD OAuth2"
},
{
"url": "/api/v2/settings/changed/",
"slug": "changed",
"name": "Changed"
},
{
"url": "/api/v2/settings/github/",
"slug": "github",
"name": "GitHub OAuth2"
},
{
"url": "/api/v2/settings/github-enterprise/",
"slug": "github-enterprise",
"name": "GitHub Enterprise OAuth2"
},
{
"url": "/api/v2/settings/github-enterprise-org/",
"slug": "github-enterprise-org",
"name": "GitHub Enterprise Organization OAuth2"
},
{
"url": "/api/v2/settings/github-enterprise-team/",
"slug": "github-enterprise-team",
"name": "GitHub Enterprise Team OAuth2"
},
{
"url": "/api/v2/settings/github-org/",
"slug": "github-org",
"name": "GitHub Organization OAuth2"
},
{
"url": "/api/v2/settings/github-team/",
"slug": "github-team",
"name": "GitHub Team OAuth2"
},
{
"url": "/api/v2/settings/google-oauth2/",
"slug": "google-oauth2",
"name": "Google OAuth2"
},
{
"url": "/api/v2/settings/jobs/",
"slug": "jobs",
"name": "Jobs"
},
{
"url": "/api/v2/settings/ldap/",
"slug": "ldap",
"name": "LDAP"
},
{
"url": "/api/v2/settings/logging/",
"slug": "logging",
"name": "Logging"
},
{
"url": "/api/v2/settings/named-url/",
"slug": "named-url",
"name": "Named URL"
},
{
"url": "/api/v2/settings/radius/",
"slug": "radius",
"name": "RADIUS"
},
{
"url": "/api/v2/settings/saml/",
"slug": "saml",
"name": "SAML"
},
{
"url": "/api/v2/settings/system/",
"slug": "system",
"name": "System"
},
{
"url": "/api/v2/settings/tacacsplus/",
"slug": "tacacsplus",
"name": "TACACS+"
},
{
"url": "/api/v2/settings/ui/",
"slug": "ui",
"name": "UI"
}
]
}
その他のシステム設定
category_slugにsystem
を指定。
キー一覧は以下の通り
$ curl -sk https://tower.example.org/api/v2/settings/system/ ... | python3 -m json.tool
{
"ACTIVITY_STREAM_ENABLED": true,
"ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC": false,
"ORG_ADMINS_CAN_SEE_ALL_USERS": true,
"MANAGE_ORGANIZATION_AUTH": true,
"TOWER_URL_BASE": "https://127.0.0.1",
"REMOTE_HOST_HEADERS": [
"REMOTE_ADDR",
"REMOTE_HOST"
],
"PROXY_IP_ALLOWED_LIST": [],
"LICENSE": {
...
},
"REDHAT_USERNAME": "",
"REDHAT_PASSWORD": "",
"SUBSCRIPTIONS_USERNAME": "",
"SUBSCRIPTIONS_PASSWORD": "",
"AUTOMATION_ANALYTICS_URL": "https://cloud.redhat.com/api/ingress/v1/upload",
"INSTALL_UUID": "...",
"DEFAULT_CONTROL_PLANE_QUEUE_NAME": "controlplane",
"DEFAULT_EXECUTION_QUEUE_NAME": "default",
"DEFAULT_EXECUTION_ENVIRONMENT": null,
"CUSTOM_VENV_PATHS": [],
"INSIGHTS_TRACKING_STATE": false,
"AUTOMATION_ANALYTICS_LAST_GATHER": null,
"AUTOMATION_ANALYTICS_LAST_ENTRIES": "",
"AUTOMATION_ANALYTICS_GATHER_INTERVAL": 14400,
"IS_K8S": false
}