コンテンツにスキップ

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

アンインストール

How to uninstall Red Hat Ansible Controller(Ansible Automation Platform 2.x)? - Red Hat Customer Portal

プロジェクト設定

SCMを使わない場合

Gitとか使わずTowerのホストのファイルシステム上のplaybookを使う場合は /var/lib/awx/projects 以下にプロジェクトのディレクトリを作り、その配下にplaybook類を配置する。

たとえば /var/lib/awx/projects/sample-demo/playbook.yml など。

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/job_templates/?page_size=1000 | python -m json.tool

テンプレートの検索

curl https://server/api/v2/job_templates/?search=Demo+Job+Template

設定の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
}