Każdy administrator AIX doskonale zna sytuację, gdy podczas pracy na nowym środowisku okazuje się, że w systemie brakuje potrzebnego polecenia. Do tej pory proces uzupełniania takich narzędzi wymagał przejścia przez ustandaryzowaną procedurę. Należało użyć komendy which_fileset, aby precyzyjnie zidentyfikować, z jakiego pakietu pochodzi poszukiwany plik binarny:
# which_fileset perfpmr
/usr/lib/cdat/types/perfpmr bos.cdat 7.3.2.0
/usr/lib/cdat/types/perfpmr/perfpmr bos.cdat 7.3.2.0
Następnie konieczne było podmontowanie nośnika instalacyjnego lub alokacja zasobów z serwera NIM, aby docelowo móc przeprowadzić ręczną instalację oprogramowania.
Wraz z wydaniem AIX 7.3 TL4, IBM zaprezentował doskonałe ułatwienie, które znacząco optymalizuje ten proces: funkcjonalność autofsinstall.
To nowe narzędzie pozwala na automatyczne doinstalowanie brakujących filesetów bezpośrednio w momencie wywołania nieznanej komendy. To niezwykle wygodne podejście do zarządzania pakietami, dobrze znane administratorom z systemów linuksowych. Wprowadzenie go do środowiska AIX pozwala na automatyzację i poprawę komfortu codziennej pracy.
Jak to wygląda w praktyce?
Przejdźmy od teorii do praktyki. Aby pokazać, jak autofsinstall zachowuje się w akcji, celowo usunąłem z systemu narzędzie perfpmr.
Zobaczmy, co się stanie, gdy spróbujemy je wywołać w środowisku (zakładając poprawnie skonfigurowanego klienta NIM):
# perfpmr --help
perfpmr belongs to fileset bos.cdat. Its not installed on the system. Do you want to install it? (y/Yes).
y
+-----------------------------------------------------------------------------+
Pre-installation Verification...
+-----------------------------------------------------------------------------+
Verifying selections...done
Verifying requisites...done
Results...
SUCCESSES
(...)
+-----------------------------------------------------------------------------+
Summaries:
+-----------------------------------------------------------------------------+
Installation Summary
-------------------
Name Level Part Event Result
-------------------------------------------------------------------------------
bos.cdat 7.3.2.0 USR APPLY SUCCESS
bos.cdat 7.3.2.0 ROOT APPLY SUCCESS
bos.cdat for command perfpmr successful.
Usage: /usr/lib/cdat/types/perfpmr/perfpmr [-d arg]
Po potwierdzeniu chęci instalacji brakujących pakietów, system sam sprawdził jaki pakiet należy doinstalować (w tym przypadku bos.cdat), automatycznie przeprowadzono instalację i, co najważniejsze, natychmiast wykonano nasze pierwotne polecenie.
Konfiguracja i mechanika: Jak to działa pod maską?
Mechanizm automatycznej instalacji pakietów jest domyślnie wyłączony. Aby sprawdzić jego status, wystarczy wywołać polecenie autofsinstall -l
# autofsinstall -l
Auto-installation of missing commands is not enabled.
Aktywacja to jedno polecenie autofsinstall -a
# autofsinstall -a
Auto-installation of missing commands is enabled.
Please open a new terminal for the changes to take effect.
Po jego wykonaniu należy otworzyć nową sesję. Jest to związane z tym, że polecenie to dodaje do pliku .profile trap:
# cat .profile
trap "if [[ -f /usr/lib/instl/fileset_resolve ]]; then /usr/lib/instl/fileset_resolve; fi" DEBUG
To właśnie skrypt fileset_resolve przechwytuje nieznane polecenia i inicjuje proces instalacji. Jeśli w przyszłości zechcemy zrezygnować z tej funkcji, wystarczy wywołać autofsinstall -d i ponownie wczytać profil.
# autofsinstall -d
Auto-installation of missing commands is disabled.
Please open a new terminal for the changes to take effect.
Kolejnym krokiem jest alokacja lpp_source zawierającego filesety instalacyjne dla używanej wersji systemu:
# nimclient -o allocate -a lpp_source=lpp_source_7300_04_00_2546
bez alokacji zasobów pojawi się błąd:
# perfpmr
perfpmr belongs to fileset bos.cdat. Its not installed on the system. Do you want to install it? (y/Yes).
y
LPP source not allocated to client.

