AAP 2.5にCLI操作を行う
導入
pip install --upgrade pip
pip install "awxkit>=24.6,<25"
- awxkit を AWX 24 系で固定
- AAP 2.5 系に相当するawxkitは24.6以上25未満
- awxkitはaapではなくawxのバージョンに沿っている。
- jqもあった方がbetterか
利用前提環境変数
例1
export TOWER_HOST="https://xxx.xxx.xxx.xxx"
export TOWER_USERNAME="admin"
export TOWER_PASSWORD="<your_password>"
export TOWER_VERIFY_SSL=false # 自己署名の場合
export AWXKIT_API_BASE_PATH="/api/controller/" # 2.5のGW経由用 AAP 2.5以降で必要!!!
export TOWER_TOKEN=$(awx login -k | jq -r .token)
もしくは
eval $(awx login -k -f human)
例2
TOWER_TOKEN/CONTROLLER_OAUTH_TOKEN利用の場合、TOWER_USERNAMEとTOWER_USERNAMEは環境変数への設定は不要なので以下でも良い
export TOWER_HOST="https://xxx.xxx.xxx.xxx"
export TOWER_VERIFY_SSL=false # 自己署名の場合
export AWXKIT_API_BASE_PATH="/api/controller/" # 2.5のGW経由用 AAP 2.5以降で必要!!!
eval $(env TOWER_USERNAME=admin TOWER_PASSWORD=<your_password> awx login -k -f human)
awx login -k -f humanの出力例
$ env TOWER_USERNAME=admin TOWER_PASSWORD=<your_password> awx login -k -f human
export CONTROLLER_OAUTH_TOKEN=BPTLowYT**********************
$ eval $(TOWER_USERNAME=admin TOWER_PASSWORD=<your_password> awx login -k -f human)
$ echo $CONTROLLER_OAUTH_TOKEN
DtglYAql**********************
TOWER_TOKEN は旧来の名前、ドキュメントでは CONTROLLER_OAUTH_TOKEN も同義。
コマンド例
| やりたいこと | コマンド例 |
|---|---|
| すべてのインベントリーを確認 | awx inventory list -f human |
| 1 つ取得(ID=42) | awx inventory get 42 |
| 新規作成 | awx inventory create --name "test-inv" --organization "Default" |
| 変更 | awx inventory modify 42 --description "prod hosts" |
| 削除 | awx inventory delete 42 |
$ awx inventory list -f human
id name
== ==============
1 Demo Inventory
$ awx inventory get 1
{
"id": 1,
"type": "inventory",
"url": "/api/controller/v2/inventories/1/",
...
$ awx inventory create --name "test-inv" --organization "Default"
{
"id": 2,
"type": "inventory",
"url": "/api/controller/v2/inventories/2/",
...
$ awx inventory list -f human
id name
== ==============
1 Demo Inventory
2 test-inv
$ awx inventory modify 2 --description "prod hosts"
{
"id": 2,
"type": "inventory",
"url": "/api/controller/v2/inventories/2/",
...
"name": "test-inv",
"description": "prod hosts",
...
$ awx inventory delete 2
{}