KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Personalakte

Neben den bereits vorgestellten Aktionen bringt Rex noch viele weitere mit. Mit ihnen kann man unter anderem bequem an den Netzwerkeinstellungen schrauben, laufende Prozesse abschießen und sogar auf die Amazon Cloud zugreifen. Thematisch zusammengehörende Funktionen haben die Entwickler in Perl-Modulen zusammenfasst, von denen einige standardmäßig eingebunden sind. Hierzu zählt etwa der Dateiupload mit »file« aus Listing 3. Andere, wie etwa die Funktionen zur Benutzerverwaltung, muss man erst noch per Hand einbinden. Listing 4 zeigt dafür ein Beispiel.

Listing 4

Erstellen eines neuen Benutzerkontos

 

Zunächst bindet es das Modul »Rex::Commands::User« ein und verrät (hier der Einfachheit halber) die Login-Daten für den Benutzer »root« . Anschließend legt es auf allen entfernten Rechnern einen neuen Benutzer namens »klaus« an. Dazu muss es lediglich die benötigen Informationen in einen Hash schieben. So gibt etwa die Zeile:

home => '/home/klaus',

den Namen des zukünftigen Heimatverzeichnisses an. Neben den Hash-Einträgen aus Listing 4 existieren noch weitere, darunter auch:

expire => '2012-11-30',

Eigentlich kann man damit die Gültigkeit des Nutzerkontos bis zu dem angegebenen Stichtag beschränken. In der zum Redaktionsschluss aktuellen Rex-Version führte die Angabe auf den Testsystemen jedoch reproduzierbar zu einem Fehler.

Abbildung 4: Hier legt rex mit der entsprechenden Aufgabe aus Listing 4 einen neuen Nutzer an, wie …
Abbildung 5: … die Benutzerverwaltung des Clients beweist.

»create_user« legt einen neuen Nutzer an, analog löscht »delete_user« einen solchen wieder:

delete_user "klaus", {
 delete_home => 1,
};

»delete_home => 1,« bewirkt, dass auch das Home-Verzeichnis ins Nirwana wandert.

Mit Anhang

Die Aufgabe aus Listing 4 ist auf den Benutzer »klaus« festgenagelt und somit alles andere als flexibel. Viel praktischer wäre, wenn man der Aufgabe den Benutzernamen beim Aufruf übergeben könnte:

rex -H "marvin" neuernutzer --benutzername=klaus

Auch das ist kein Problem wie Listing 5 beweist. Dort packt zunächst das »my ($params) = @_;« sämtliche an »rex« zusätzlich übergebenen Parameter in »$params« . Der Wert des Parameters »benutzername« steckt dann in »$params->{,benutzername'}« . Listing 5 übergibt ihn sinnvollerweise dem »useradd« -Kommando, das wiederum das passende Benutzerkonto anlegt. Analog lassen sich beliebige weitere Parameter hinzufügen und abfragen. Diese Parameter müssen übrigens beim Aufruf von »rex« diesmal zwingend hinter dem Task-Namen stehen (wie im obigen Beispiel).

Listing 5

Auswertung von Parametern

 

Wie »useradd« benötigen manche Kommandos auf den entfernten Maschinen Root-Rechte. Dazu kann sich der Administrator wie in den hier vorgestellten Listings als »root« anmelden. Einige Distributionen wie Ubuntu deaktivieren dessen Nutzerkonto jedoch. Daher kann »rex« auf Wunsch auch jedes Kommando einer Task mit »sudo« ausführen. Man muss dem Aufruf von »rex« lediglich noch ein »-s« anhängen, das notwendige Passwort übergibt »-S« :

rex -H "marvin" -s -S 123456 neuernutzer --benutzername=klaus

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019