はじめに
awx
コマンドを利用すると、API を通じて Ansible Tower / AWX 上の 様々な操作ができます。
少し組み合わせて、ジョブテンプレートやワークフロージョブテンプレートを一括削除するワンライナーをご紹介します。
awx
コマンドのインストールや接続情報の設定については、以下の記事を参照してください。
また、json をフィルターする関係で jq
をインストールしておく必要があります。
- 動作確認環境
- AWX 11.0.0
awx
コマンド 11.2.0
ジョブテンプレートの一括削除
awx job_template list
で name
一覧を取得して、各 name
を awx job_template delete
します。
for jt in $(awx job_template list -f jq --filter ".results[] | .name"); do awx job_template delete ${jt}; done
ワークフロージョブテンプレートの一括削除
awx workflow_job_templates list
で name
一覧を取得して、各 name
を awx workflow_job_templates delete
します。
for wf in $(awx workflow_job_templates list -f jq --filter ".results[] | .name"); do awx workflow_job_templates delete ${wf}; done
補足: 一覧を確認したい場合
削除する前に、一覧を確認したい場合は、以下のように実行します。
- 例1
$ awx job_template list -f jq --filter ".results[] | .name" jt_01_show jt_02_debug jt_03_debug
- 例2
$ awx job_template list -f human id name == =========== 28 jt_01_show 26 jt_02_debug 27 jt_03_debug
ワークフロージョブテンプレートの場合は、job_template
を workflow_job_templates
に読み替えてください。
おわりに
両方とも、特に確認やログ出力などなく削除するため、十分にご注意ください。
jq
のフィルターを工夫すると、特定の条件にマッチしたものだけ削除といった応用もできると思います。