Debian i Apt-dater – czyli aktualizacje pod kontrolą

Avatar photo
  • Konrad Kowalski
  • 01/06/2012
  • Debian
  • 2 komentarze
Debian

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.

apt-dater - interfejs ncurses

apt-dater - interfejs ncurses

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.

apt-dater nowy host

apt-dater nowy host

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.

apt-dater - pierwsze połączenie z hostem zdalnym

apt-dater - pierwsze połączenie z hostem zdalnym

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.

apt-dater - host zdalny wymaga aktualizacji

apt-dater - host zdalny wymaga aktualizacji

Aby zaktualizować system wciskamy klawisz u. Zostaniemy przeniesieni do zdalnej konsoli z uruchomionym apt-get/aptitude, gdzie możemy rozpocząć aktualizację systemu.

apt-dater - host zdalny z uruchomionym aptitude

apt-dater - host zdalny z uruchomionym aptitude

Po aktualizacji komputer trafi do sekcji zaktulizowany.

apt-dater - host został zaktualizowany

apt-dater - host został zaktualizowany

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.

Warto przeczytać

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 10 lat ago Reply


    • Avatar photo

      Jeśli jesteśmy pewni, że nie wpadnie on w niepowołane ręce nie widzę potrzeby hasłowania klucza prywatnego.

      Konrad Kowalski 10 lat ago Reply


Dodaj komentarz