Lancement site Alerte Gel par email gratuit
Je viens de lancer un site pour être alerté en cas de gel par email, si ça vous intéresse pour le potager ou autre, c’est gratuit ici : https://alerte-gel.net/
Je viens de lancer un site pour être alerté en cas de gel par email, si ça vous intéresse pour le potager ou autre, c’est gratuit ici : https://alerte-gel.net/
Changement de comportement entre v5.8 et v6.5.1l sur les relances automatiques de job et les alarmes.
On utilise les alarmes pour créer des tickets incidents en rajoutant une ligne txt spécifique dans un fichier spécifique scruté par notre superviseur.
L’ancien mode où l’alarme ne se déclenchait que sur le dernier RETRY en cas d’erreur me convenait mieux car on ne créait de ticket incident que dans ces cas-là. Les premières exécutions EN_ERREUR n’étaient pas remontées et c’était très bien (dans mon cas).
J’ai bien pensé à mettre le déclenchement alarme si statut est en erreur depuis 5 sec par ex mais ça poserait deux soucis :
J’ai remarqué que les relances auto étaient EN_DIFFICULTE dans le vtlist jobs_last_exec.
Palliatif / bricollage à définir dans le corps du script de l’alarme :
FOR /F "tokens=* USEBACKQ" %%g IN (`powershell.exe -NoProfile -NoLogo -Command "( (vtlist jobs_last_exec -v -f {VT_JOB_FULLNAME}) -split '\s+')[3]"`) DO (
IF "%%g" == "EN_ERREUR" (
rem Do stuff here me echo in log file
echo vtom: Error_Job_{VT_JOB_FULLNAME} - %date% %time:~0,5%[Inst]TECH[Inst] [Detail] [Detail] [Sev]2[Sev] >> D:\VTOM\vtom_err.log
)
)
Pense-bête pour ajouter tous les agents d’un certain type d’OS dans une unité de soumission
# vtmachine, vtaddunit 6.5.1l
$portAgent=30004
vtmachine |Select-String $portAgent | convertfrom-csv -Delimiter "|" -Header "blank","Name","Hostname","Iv4","Agent Port","Agent SSL","Agent Status","OS","Agent Version" | Where-Object { $_.OS -match "^Win" } | ForEach-Object { & vtaddunit.exe /name="ALL_WIN" /mode="M" /agent="+$($_.Name.trim())" }
vtmachine |Select-String $portAgent | convertfrom-csv -Delimiter "|" -Header "blank","Name","Hostname","Iv4","Agent Port","Agent SSL","Agent Status","OS","Agent Version" | Where-Object { $_.OS -match "^Lin" } | ForEach-Object { & vtaddunit.exe /name="ALL_LIN" /mode="M" /agent="+$($_.Name.trim())" }
vtmachine |Select-String $portAgent | convertfrom-csv -Delimiter "|" -Header "blank","Name","Hostname","Iv4","Agent Port","Agent SSL","Agent Status","OS","Agent Version" | Where-Object { $_.OS -match "^AIX" } | ForEach-Object { & vtaddunit.exe /name="ALL_AIX" /mode="M" /agent="+$($_.Name.trim())" }
Pour ceux qui cherchent du compute gratos mais correct, j’ai trouvé par hasard et testé la solution free tier de chez Oracle Cloud.
C’est vraiment bien, stable, puissant 4 Proc 24Go Mem, généreux 47Go Disk (mais à priori 2 volume block, au total 200Go). Seul bémol, c’est de l’arm64. M’enfin, couplé à une gestion DNS (chez moi no-ip.com, dispose de sous-domaine gratos), c’est parfait pour héberger mon serveur de dev.
J’ai testé aussi l’aapnel comme dans le tuto. Pas mal, c’est pratique, ça évite pas mal de conf Apache et SSL Let’s Encrypt (du moins c’est super simple par l’interface).
Gros bémol aussi à l’heure où j’écris ces lignes : le package npm Parcel 2 ne fonctionne pas. Le build nécessite GLIBC 2.29 et l’OS oracle 8 linux ne dispoe que du GLIBC 2.28. Tester avec une image Ubuntu 20.04 ==> c’est ok :
ubuntu@instance-xxxx:~/test$ npx parcel build index.html
✨ Built in 716ms
dist/index.html 7 B 258ms
J’ai aussi testé un serveur Express en nodeJS, ça fonctionne très bien.
Bon même si je n’y suis allé que pour le compute, le free tier propose aussi d’autres features gratuites à vie (bdd, APEX, etc) :
S’il y a encore des irréductibles Gaulois en v5.8 (ou moins de v6 - han je suis choqué), vous avez peut-être remarqué que votre base grossit, et les requêtes sur les statistiques VTOM (purges ou visu) sont très lentes et / ou freezent l’IHM - malgré vos purges vtstools
régulières.
Solution : faire un petit réinit de la base en bonne et dûe forme. Franchement ça change la vie. (passé d’une base de 16Go à moins de 2Go, plus de freeze, requêtes instant)
Sinon, en v6, ils ont rajouté l’option /clean
dans vtstools
:
/clean (ou -c) libere l'espace disque recuperable all | date_count | job | job_occ | current
plusieurs valeurs peuvent etre saisies en | realtime
les separant par une virgule
Note à moi-même, +13 ans plus tard je découvre toujours des subtilités dans VTOM.
Vous n’êtes pas sans savoir que l’action “Forcer à ENCOURS” squeeze toutes les contraintes d’heures, planning, ressources, liens, modes d’exécution etc.
Ou pas, en tous cas, pas le mode Simulation du job. J’étais pourtant sûr de mon coup mais non. Autant, on peut forcer à ENCOURS un job à STOP et il s’exécutera, autant un job à Simu, niet (il passera à TERMINE sans exécution).
A partir de la v6.4, Absyss met à disposition des APIs REST officielles, et soutenues.
Si vous connaissez les VITO (bande de veinards) et les groupes de travail des tables rondes, vous savez certainement que l’évolution du produit se dirigie vers une interface full web. Et qui dit interface web, dit API Rest en arrière plan.
Et moi qui croyais que les API avaient été faites pour nos beaux yeux ! (bon si ça nous fait plaisir, ça ne mange pas de pain :))
Si vous suivez mon blog, vous devez connaître les API non officielles du web access. Déjà bien pratiques, elles n’avaient qu’un but à la base, faire fonctionner la partie Web Access proposée par Absyss.
Nous dansions alors sur un seul pied quant à les utiliser en PROD, puisque non soutenues et non prévues pour ce que nous voulions en faire (bien souvent des outils perso web ou script pour requêter la base plutôt que d’utiliser les vtlist, vtstools ou autres).
Et alors là, pour le coup, ils ont fait fort.
Nouveau process dédié (Absyss API REST: vtapiserver), une documentation visuelle avec Swagger UI, des clés de sécurité avec des stratégies poussées (chaque clé n’a accès qu’à ce qu’on veut et a une portée bien définie - bon on peut tout mettre aussi)
Le billet ne sera donc pas très poussé car toute la doc’ est déjà sur le produit. Je vais juste vous montrer comment rajouter une clé et commencer à faire quelques requêtes.
Article complet iciScript powershell ps1 de Purge des modifications temporaires (applications et jobs) qui sont déjà passées -3 jours.
foreach($type in "app","job"){
$items = & tlist "$($type)s_mdf"
foreach ($item in $items){
$dateFinMdf = [datetime]::parseexact($item.split("/")[-1], "dd-MM-yyyy",$null)
if($dateFinMdf -lt (get-date).AddDays(-3)){
& vtdel$($type) /name "$item"
}
}
}
I’m Back ! qui l’eut cru. A faire du VTOM en plus … Même dans le fin fond de ma campagne, VTOM vient me hanter (et me nourrir, il faut bien l’admettre même si j’ai des tonnes de courgettes et tomates au jardin :)).
Bref, voici comment je fais pour requêter les stats VTOM en powershell.
# pour le port faire un vtping en cas de doute
# le fichier sqlFile contient les instructions SQL (vous mettez ce que vous voulez bien sûr, dans mon cas c'était pour avoir la dernière exécution d'un job donné en paramètres
# petit exemple avec les -v nomparam="'valeur'" pour passer des param au script SQL :nomparam
# -F";" (séparateur | de base mais je voulais ";")
# -P "footer=off" (pour ne pas avoir de récap (rows(xxx) à la fin du résultat)
# -A (pour ne pas avoir d'espaces entre les séparateurs)
$statCSV = (& $ENV:TOM_HOME\SGBD\bin\psql.exe -d"vtom" -p"20009" -U"vtom" -f $sqlFile -v vtenvname="'$vtenvname'" -v vtapplname="'$vtapplname'" -v vtjobname="'$vtjobname'" -v vtexpdatevalue="'$dateStatAge'" -A -F";" -P "footer=off") | ConvertFrom-Csv -Delimiter ';'
Quatre ans après ce billet, quelques petites modifications étaient nécessaires à mon sens. Autant, certaines techno’ tombent dans les oubliettes rapidement (4 ans c’est long en informatique) autant Docker n’a fait que prendre du poids.
Personnellement, je n’utilise plus que ça pour maintenir et déployer mes applications. Et en plus, ça fonctionne très bien sur mon RPI4.