Planifier un Job Template AWX via l'API

L'interface graphique d'AWX (Tower) peut parfois s'avérer capricieuse ou peu intuitive pour configurer des tâches planifiées complexes. Utiliser l'API REST via une simple commande curl permet de créer des planifications précises, rapides et reproductibles.


1. Le Script de Planification

Copiez ce code dans un terminal Linux (ou dans un script bash) pour créer la planification. Attention à bien modifier les variables avant de l'exécuter.

#!/bin/bash

# ==========================================
# Variables de configuration
# ==========================================
AWX_HOST="https://awx.numericare.fr"
TOKEN="ton_token_api_ici"
TEMPLATE_ID="42"

# ==========================================
# Appel API
# ==========================================
curl -X POST "$AWX_HOST/api/v2/job_templates/$TEMPLATE_ID/schedules/" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
        "name": "Conversion Media Quotidienne",
        "description": "Exécution automatique 2 fois par jour",
        "rrule": "DTSTART:20240101T030000Z RRULE:FREQ=DAILY;INTERVAL=1;BYHOUR=3,15;BYMINUTE=0",
        "extra_data": {},
        "inventory": null
    }'

2. Explication des Variables

Voici comment récupérer et adapter les valeurs nécessaires pour que la commande fonctionne avec votre environnement :

Variable Description & Comment la trouver
AWX_HOST L'URL de base de votre serveur AWX. Exemple : https://awx.mon-homelab.lan
TOKEN Votre jeton d'accès personnel. Pour le générer dans AWX : allez dans Users > Cliquez sur votre utilisateur > Onglet Tokens > Add (Cochez "Write" ou "All").
TEMPLATE_ID L'identifiant unique du playbook à lancer. Pour le trouver, ouvrez votre Job Template dans AWX et regardez l'URL : /templates/job_template/42/details. Ici, l'ID est 42.

3. Comprendre la syntaxe rrule (La Planification)

Le paramètre le plus complexe de la requête JSON est le rrule (Recurrence Rule). Il utilise le standard iCalendar. Voici comment le décoder et le modifier :

Syntaxe utilisée : DTSTART:20240101T030000Z RRULE:FREQ=DAILY;INTERVAL=1;BYHOUR=3,15;BYMINUTE=0

Autres exemples de rrule utiles :

Toutes les 4 heures : ... RRULE:FREQ=HOURLY;INTERVAL=4
Tous les lundis à 2h du matin : ... RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO;BYHOUR=2;BYMINUTE=0

Revision #2
Created 2026-05-05 09:09:32 UTC by Nico là
Updated 2026-05-05 12:01:33 UTC by Nico là