Dzisiejszy artykuł ma za zadanie przedstawić możliwości programu apt-dater, konsolowego menedżera zdalnej aktualizacji pakietów.
Apt-dater dostarcza nam prosty w użyciu interfejs ncurses do zdalnego zarządzania aktualizacjami pakietów na dużej ilości komputerów za pomocą SSH i apt-dater-host. Obsługuje komputery oparte o system zarządzania pakietami Debiana, a także OpenSUSE oraz systemy bazujące na CentOS.
Osobiście zacząłem go stosować dość niedawno, ale jak na razie sprawuje się bez zarzutu i oszczędza mi masę czasu. Główną przyczyną, która skłoniła mnie do jego wdrożenia był wieczny problem, a właściwie ograniczona ilość czasu, którą mogłem przeznaczyć na utrzymywanie w aktualnym stanie wszystkich linuksowych stacji roboczych pracowników firmy. Większość z nich to rozmaite wersje Ubutnu lub Debian z gałęzi testing, a więc dzień bez update’ów to dzień stracony 🙂 Jeśli macie podobny problem zachęcam do dalszego czytania artykułu.
Host Admina
Na hoście, z którego zamierzamy zarządzać aktualizacjami należy zainstalować pakiet apt-dater.
aptitude install apt-dater
Następnym krokiem jest wygenerowanie zestawu kluczy SSH służących do nawiązywania połączeń z hostami zdalnymi. Nie jest zalecane używanie konta root’a ale nic nie stoi na przeszkodzie aby go używać.
ssh-keygen -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub.
Pliki konfiguracyjne znajdują się domyślnie w:
~/.config/apt-dater
/root/.config/apt-dater apt-dater.conf - główny plik konfiguracyjny hosts.conf - lista obsługiwanych hostów zdalnych screenrc - opcje dla screena
Aby dodać host zdalny należy wyedytować plik hosts.conf. Poniżej utworzono grupę CBK-USERS zawierającą host o nazwie dt-114. Hosty grupować możemy dowolnie. Ilość sekcji grupujących jest nieograniczona.
# [Sekcja Grupująca] # Hosts=([OptionalUser@]host.domain[:OptionalPort];)* # [CBK-USERS] Hosts=root@dt-114;
Hosty zdalne
Następnym krokiem jest przesłanie wygenerowanego wcześniej klucza publicznego na serwery zdalne.
AdminPC> scp /root/.ssh/id_rsa.pub root@hostzdalny:/root/ ZdalnyPC> cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
Na hoście zdalnym należy zainstalować pakiet apt-dater-host
aptitude install apt-dater-host
Jeśli używamy innego konta niż root musimy korzystać z sudo. W konfiguracji sudo należy dodać odpowiednie linie zezwalające wybranemu użytkownikowi (tu apt-dater) na korzystanie z apt-get lub aptitude albo obu.
apt-dater ALL=NOPASSWD: /usr/bin/apt-get, /usr/bin/aptitude
To czy używamy aptitude czy apt-get możemy zdefiniować w konfiguracji znajdującej się w pliku:
/etc/apt-dater-host.conf
cat /etc/apt-dater-host.conf # front-end for dpkg to use # Supported: apt-get, aptitude $DPKGTOOL="aptitude"; # use this command to become root $GETROOT="sudo"; # clean package cache after upgrade/install $CLEANUP=0; # the installation UUID $UUIDFILE = '/etc/apt-dater-host.uuid'; ## ## If this host is a mission critical system and ## needs scheduled downtimes for upgrades, enable ## (some) of the following $FORBID_* lines: ## # prevent apt-dater-host from refreshing package lists #$FORBID_REFRESH=1; # prevent apt-dater-host from upgrading packages #$FORBID_UPGRADE=1; # prevent apt-dater-host from installing packages #$FORBID_INSTALL=1;
W konfiguracji Debiana może zabraknąć opcji sudo (nie jest konieczna), dodatkowo pojawia się linia:
# enable use of --assume-yes on safe-upgrade $ASSUMEYES=1;
Warto zmienić tą wartość na 0. W innym wypadku aptitude automatycznie rozpocznie aktualizację systemy bez naszego potwierdzenia. Ja akurat wolę gdy najpierw wyświetlane są informacje co ma być aktualizowane a potem mogę podjąć decyzje o rozpoczęciu uaktualniania.
Apt-dater
Po instalacji niezbędnych paczek i skonfigurowaniu hostów można uruchomić program apt-dater. Po każdorazowym dodaniu nowego hosta trafi on do sekcji Unknown -> Nasza Grupa -> nazwa hosta.
Przy pierwszym połączeniu z nowym hostem należy wybrać go z listy i wcisnąć klawisz c a następnie odpowiedzieć twierdząco na pytanie zadane podczas nawiązywania połączenia.
Po nawiązaniu połączenia host trafi do odpowiedniej sekcji (w zależności czy są jakieś update czy też nie). W moim przykładzie host wymaga aktualizacji.
Aby zaktualizować system wciskamy klawisz u. Zostaniemy przeniesieni do zdalnej konsoli z uruchomionym apt-get/aptitude, gdzie możemy rozpocząć aktualizację systemu.
Po aktualizacji komputer trafi do sekcji zaktulizowany.
I tym sposobem w dość prosty sposób osiągnęliśmy zamierzony cel – stacje klienckie naszych „użyszkodników” wreszcie będą w mirę aktualne 🙂 . Raz na jakiś czas warto przeskoczyć po całej liście hostów wciskając klawisz g. Spowoduje to odświerzenie listy pakietów na hostach zdalnych.
2 komentarze
Możesz dodawać komentarze do tego artykułu.
Czy wygenerowany klucz do łączenia ze zdalnymi hostami, musi być niezabezpieczony hasłem?
Miłosz 11 lat ago
Jeśli jesteśmy pewni, że nie wpadnie on w niepowołane ręce nie widzę potrzeby hasłowania klucza prywatnego.
Konrad Kowalski 11 lat ago
Dodaj komentarz