Dans notre environnement, seul un de nos serveurs AIX est autorisé à accéder à l'Internet à travers le pare-feu. Sur ce seul serveur, j'utilise suma pour télécharger tous les correctifs pour tous les niveaux de base, les niveaux technologiques et les Service Packs que nous avons dans notre environnement ; ceci est fait quotidiennement. Une fois par mois, je copie tous les correctifs ensemble dans un dossier par niveau de base et j'utilise inutoc
pour créer un couple de dépôts qui sont gelés et qui peuvent être utilisés pour patcher tous nos serveurs AIX. De cette façon, nous pouvons nous assurer que tous les serveurs sont au même niveau d'os. Nous appelons cela un "patchset mensuel".
Nous disposons d'un fichier CSV qui répertorie toutes les versions du noyau pour chaque "patchset mensuel" pour toutes nos versions d'UNIX/Linux. Ce fichier CSV est utilisé par notre Parcheando / validation Parcheando. Pour Linux / Solaris, j'ai trouvé des "trucs" pour déterminer la version du noyau à partir des fichiers de dépôt eux-mêmes, mais sur AIX, je ne parviens pas à déterminer l'oslevel sans effectivement Parcheando un serveur avec. Après Parcheando, je peux exécuter 'oslevel -s' pour déterminer le niveau d'os, mais c'est trop tard, car nos Parcheando Parcheando utilisent / requièrent le niveau d'os avant de démarrer le Parcheando réel.
Quelqu'un connaît-il une astuce pour y parvenir ? J'ai essayé ce qui suit jusqu'à présent :
- Notre dossier de dépôt contient de nombreux fichiers *.bff, qui sont des fichiers binaires, et je ne peux pas trouver l'oslevel dans ces fichiers.
- Les noms de fichiers *.bff sont pour la plupart des 'U' suivis de quelques chiffres et de '.bff' (donc inutilisables pour déterminer l'oslevel). Mais certains noms de fichiers contiennent effectivement (des parties de) l'oslevel dans le nom de fichier. Par exemple : 7200-01-06.bff 7200-02-01-1732.bff 7200-02-06.bff 7200-03-06.bff 7200-03.bff 7200-04-01.bff 7200-04-02.bff 7200-04-03.bff 7200-04.bff 7200-05-01.bff 7200-05-02.bff 7200-05.bff. Cependant, comme vous pouvez le voir, dans les derniers oslevels, la partie 'build date' est manquante dans le nom du fichier.
- Nous utilisons le patch
install_all_updates -Y -d <path_to_repo>
commande. J'ai essayé d'utiliserinstall_all_updates -p -d <path_to_repo>
en espérant qu'il serait visible quelque part dans la sortie, mais ce n'est pas le cas. - J'ai aussi essayé
installp -[lL] -d <path_to_repo>
mais là aussi, le niveau d'os n'est pas visible.
J'espère que quelqu'un pourra m'aider à ce sujet.
Modifier ci-dessous (en réponse à la réponse de @Jeff Schaller)
Merci beaucoup pour votre aide !
C'est très proche de la correspondance, mais pas exactement, j'en ai peur...
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | grep :bos\.rte\.install: | sort -t: -k17n | tail -1 | awk -F: '{print $3, $17}'
7.2.4.2 1937
root@servername /nim/export
--> oslevel -s
7200-04-01-1939
root@servername /nim/export
Mais je ne sais pas pourquoi... Une idée ?
Plus de détails :
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | grep 1937 | wc -l
613
root@servername /nim/export
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | grep 1939 | wc -l
0
root@servername /nim/export
-->
J'ai donc pensé qu'il devait y avoir un paquet installé avec une date de construction de 1939 qui fait que 'oslevel-s' affiche cette date de construction. J'ai donc exécuté les commandes suivantes pour trouver ce paquet :
--> lslpp -Lc all | awk -F':' '{print $2" "$3" "$18}' | grep 1937 | wc -l
288
root@servername /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> lslpp -Lc all | awk -F':' '{print $2" "$3" "$18}' | grep 1939 | wc -l
0
root@servername /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> oslevel -s
7200-04-01-1939
root@servername /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
-->
Comme vous pouvez le voir, je n'ai pas réussi à trouver ce paquet... :(
Edit #2 ci-dessous (en réponse au commentaire de @Jeff Schaller)
root@servername /
--> instfix -ic | grep 7200-04 | grep :-:
root@servername /
Ça n'a rien donné, j'en ai peur.
De plus, je ne suis pas sûr de ce que vous voulez dire exactement par "... le serveur est en retrait par rapport au niveau d'os attendu...". N'est-ce pas le contraire ? oslevel -s' donne 1939 comme date de construction, alors que tous les paquets indiquent que la date de construction devrait être 1937. N'est-ce pas "front-leveled" alors ?