Posted in

Zarządzanie pakietami w AIX: Jak aktywować autofsinstall i na zawsze zapomnieć o ręcznym szukaniu filesetów

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.