Lors de la mise à niveau de SAS© Viya™ (par exemple, lors d'un passage de la version 3.2 à 3.3) ou lors d'un redéploiement après une tentative échouée, il est possible que le playbook Ansible s'interrompe brutalement.
Une erreur fréquente concerne le composant sas©-javaesntl et se manifeste par un message indiquant qu'un chemin de destination est introuvable, bloquant ainsi tout le processus d'installation.
Lors de l'exécution du déploiement via Ansible, la tâche échoue avec le message JSON suivant :
Même si la variable sas©_install_java est correctement définie sur true dans votre fichier vars.yml, l'erreur persiste.
L'Origine du problème : Un état incohérent
Cette erreur survient généralement lorsque le système se trouve dans un état incohérent entre la base de données RPM et le système de fichiers réel.
Cela se produit souvent après plusieurs tentatives de déploiement infructueuses ou un nettoyage incomplet. Ansible détecte (via la base RPM) que le paquet sas©-javaesntl est déjà installé, il ne tente donc pas de le réinstaller. Cependant, les fichiers physiques (dans /opt/sas©/viya™/...) ont été supprimés ou déplacés manuellement, ou le montage a changé.
En conséquence, Ansible essaie de configurer un fichier qui n'existe plus physiquement, bien que le système le croie installé.
Diagnostic
Pour confirmer que vous êtes bien face à ce problème de "paquet fantôme", vous pouvez vérifier l'intégrité du paquet sur vos cibles via une commande ad-hoc Ansible :
Si le retour indique de nombreuses lignes commençant par missing (manquant), comme ci-dessous, la cause est confirmée :
missing /opt/sas©/viya™/config/etc/sysconfig/sas©-javaesntl
missing c /opt/sas©/viya™/config/etc/sysconfig/sas©-javaesntl/sas©-java
La Solution
Pour corriger cette situation, vous devez forcer la désinstallation du paquet corrompu avant de relancer le processus de nettoyage et d'installation.
Étape 1 : Supprimer le paquet manuellement
Utilisez Ansible pour supprimer proprement le paquet RPM problématique sur tous les nœuds concernés :
Étape 2 : Nettoyer l'environnement
Une fois le paquet supprimé, exécutez le playbook de nettoyage standard fourni par SAS© pour vous assurer que l'environnement est propre :
Étape 3 : Relancer le déploiement
Vous pouvez maintenant relancer votre commande de déploiement ou de mise à jour (ex: site.yml). Le système réinstallera correctement le paquet sas©-javaesntl et les fichiers de configuration seront créés comme prévu.