ark dans un script
Un jeton en variable, des réponses en JSON, aucune question et un code de sortie franc. Ce qu’il faut savoir pour automatiser avec ark.
Le jeton
Dans un script, pose le jeton dans ARKYA_TOKEN. ark s’en sert sans fichier sur le poste.
export ARKYA_TOKEN="ark_xxxxxxxxxxxxxxxx"
ark whoamiPour ark push et ark deploy, Docker doit aussi être connecté au registre. ark login le fait, et lit le jeton dans ARKYA_TOKEN :
ark loginSur une machine partagée, isole les fichiers d’ark avec ARKYA_HOME :
export ARKYA_HOME="$RUNNER_TEMP/arkya"Aucune question
| Option | Effet |
|---|---|
--yes | répond oui aux confirmations : appliquer un plan, supprimer, restaurer |
--demarrage-immediat | donne l’accord au démarrage immédiat quand la commande crée une application ou une base |
ark init pose aussi ses questions de nom et de projet. Donne-les en options :
ark init --app mon-api --project Production --demarrage-immediatLire la réponse en JSON
--json rend la réponse brute de l’API, la même que celle de l’espace client.
ark ls --json | jq -r '.[] | select(.rangeCode == "ACS") | .name'
ark info mon-api --json | jq -r '.status'Les commandes qui le comprennent sont listées dans Toutes les commandes. ark status ne le comprend pas : pour un script, lis ark info.
Le code de sortie
ark sort avec 0 quand tout s’est bien passé, et 1 sinon, avec le message d’erreur et une piste sur la sortie standard.
ark backup create ma-base "nuit-$(date +%Y%m%d)" || echo "la sauvegarde n’est pas partie"L’ordre des mots
Mets toujours le nom du service avant les options. Une option suivie d’un mot prend ce mot comme valeur :
ark rm mon-api --yesUne tâche planifiée
Une sauvegarde chaque nuit, depuis une machine qui tourne déjà :
0 4 * * * ARKYA_TOKEN=ark_xxxxxxxxxxxxxxxx /usr/local/bin/ark backup create ma-base "nuit-$(date +\%Y\%m\%d)"Dans une crontab, échappe les % : sinon, la ligne est coupée et la sauvegarde ne part jamais. Une base peut aussi se sauvegarder seule : voir Sauvegardes d’une base.