Sicher verstaut - Deduplizierung spart Platz, Cloud-Backup für Windows, Areca sichert kostenlos. ADMIN 01/14 stellt Backups für Profis mit und ohne Cloud ... (mehr)

Verbindungen

Damit Landscape keine größeren Lücken in die Sicherheitsvorkehrungen der eigenen Infrastruktur reißt, initiieren ausschließlich Clients die Kommunikation mit dem Landscape-Server. Dabei verwenden sie die typischen HTTP- beziehungsweise HTTPS-Ports 80 und 443, die in den meisten Netzwerken und Firewalls ohnehin für ausgehende Verbindungen offenstehen.

Alle 30 Sekunden schickt der Landscape-Client einen unverschlüsselten HTTP-Request an den Server. Damit bekundet er einerseits, dass der Rechner noch läuft und gibt andererseits dem Server Gelegenheit, ein Ereignis auszulösen. Liegt irgendeine Nachricht vom Server vor, folgt eine diesbezügliche Anfrage über den verschlüsselten HTTPS-Port.

Abgesehen von diesen Kommunikationsvorgängen mit dem Landscape-Server schicken Landscape-Clients lediglich Abfragen an die Paket-Repositories. Damit halten sie ihre Quellen auf dem neuesten Stand und liefern auf dieser Grundlage dem Server Informationen über aktualisierbare Pakete. Landscape lädt und installiert diese auf Aufforderung; anderen Tools oder Benutzern, die das Paketverwaltungswerkzeug »apt-get« direkt aufrufen, kommt es dabei nicht in die Quere.

Programmierbare Schnittstelle

Landscape stellt nicht nur eine bequeme Weboberfläche für die Administration von Rechnern bereit. Über eine API greift der Admin auch mit eigenen Programmen und Skripten direkt auf die durch Landscape angebotenen Informationen und Funktionen zu. Dafür stellt Ubuntu im Landscape-Repository das Ubuntu-Paket »landscape-api« zur Verfügung. Der folgende Befehl fügt das Repository hinzu:

sudo add-apt-repository ppa:landscape/ landscape-api

Anschließend installiert man das Paket »landscape-api« , das einen gleichnamigen Kommandozeilen-Client sowie eine Python-Bibliothek für den direkten Landscape-Zugriff enthält.

Das Kommandozeilenprogramm greift für die Authentifizerung auf die Variablen »LANDSCAPE_API_KEY« , »LANDSCAPE_API_SECRET« und »LANDSCAPE_API_URI« zu, die man vor dem Aufruf von »landscape-api« in der Shell exportiert. Die ersteren beiden sind User-spezifisch und lassen sich in der Weboberfläche in den Benutzereinstellungen im Feld »API access« nachschlagen beziehungsweise generieren. Die Landscape-URI lautet im Allgemeinen »https://landscape.canonical.com/api« , außer wenn man auf das Canonical-Angebot einer lokalen Landscape-Installation (on-site) zurückgreift. Die Dokumentation empfiehlt, diese Variablen in der Datei »~/.landscape-api.rc« zu speichern und vor dem Aufruf von »landscape-api« einzulesen mit:

source ~/.landscape-api.rc

Eine vollständige Liste der verfügbaren Befehle gibt es mit:

landscape-api help

Größtenteils entsprechen die durch die API zur Verfügung gestellten Funktionen denen der Webschnittstelle. Allerdings schließt sie eine Lücke in der Paketverwaltung, denn die API erlaubt auch das Hinzufügen und Löschen von Paketquellen, auch auf Basis von Rechnergruppen.

Die zum API-Paket gehörige Python-Bibliothek liefert die gleiche Funktionalität. Nach dem Import von »landscape_api« erzeugt dieser Befehl im Python-Interpreter ein API-Objekt:

api = new landscape_api.base.API(uri,  key, secret)

Die Werte der Variablen »uri« , »key« und »secret« entsprechen denen der gleichnamigen Bash-Variablen. Das neue Objekt »api« erledigt wiederum die gleichen Abfragen wie das Shell-Pendant, beispielsweise mit »api.get_computers()« .

Alternativ erfolgt der Zugriff direkt über die HTTP-Schnittstelle per »GET« und »POST« . Der Parameter »action« enthält hier die Funktion, also etwa »GetComputers« . Die Anleitung unter [2] beschreibt, wie man eine gültige Signatur für die Authentifizierung erzeugt.

Ähnliche Artikel

comments powered by Disqus
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

Ausgabe /2023