.shock - Fotolia

SaltStack als Management-Tool für vSphere-Umgebungen

vSphere-Umgebungen lassen sich auch mit SaltStack verwalten. Ein Blick auf Konfigurationsdatei und Profil für das vSphere-Management.

Die meisten IT-Umgebungen bestehen aus einem Mix aus physischen und virtuellen Maschinen und die Bereitstellung und Verwaltung derart heterogener Umgebungen erfordert ein konsistentes Management-System. SaltStack wird dabei mehr und mehr zu einer Alternative zu Tools wie Ansible, Puppet oder Chef, die mittlerweile häufig für entsprechende Szenarien zum Einsatz kommen.

SaltStack bietet Möglichkeiten, den Status von Zielsystemen zu verwalten, die Minions genannt werden. Über Remote-Execution-Engines kann jede Konfiguration verwaltet und auf Remote-Systemen angewendet werden. Obwohl SaltStack ursprünglich für die Linux-Plattform entwickelt wurde, kann SaltStack mittlerweile auch mit anderen Plattformen wie eben auch VMware vSphere umgehen.

So funktioniert SaltStack

SaltStack basiert auf einer Minion-Master-Topologie und verwendet spezifische Befehle, die auf einem oder mehrerer Minions ausgeführt werden. Hierfür wird der Minion-Key auf dem Salt-Master importiert, wodurch der Administrator des Salt-Masters Befehle wie salt '*' cmd.run 'ls -l /' ausführen kann. Dieser Befehl führt dann das Kommando ls -l / auf allen  Minions aus, die derzeit dem Salt-Master bekannt sind.

Abgesehen von der Remote-Ausführung bestimmter Befehle ermöglicht SaltStack Administratoren auch die Nutzung sogenannter Grains. Über einen Grain können Remote-Abfragen gestartet werden, um Status-Informationen über Minions zu sammeln und diese Informationen an einem zentralen Ort abzuspeichern.

SaltStack kann auch mit diesen Status-Informationen arbeiten, so lässt sich beispielsweise ein bestimmter Status auf einem System vorgeben, der eingehalten werden soll. Diese Stati werden über .sls-Dateien angewendet, die sehr detaillierte Informationen darüber enthalten, was auf einem System durchgeführt werden soll, um einen bestimmten Status einzuhalten.

Aufgrund der großen Flexibilität beim Management von Remote-Systemen gewinnen SaltStack-basierte Produkte derzeit rasant an Popularität. Die von SaltStack gebotene Funktionalität lässt sich dabei durchaus mit denen anderer Automatisierungs-Tools wie Puppet oder Ansible vergleichen.

SaltStack geht dabei aber einen Schritt weiter und verdankt seine zunehmende Beliebtheit nicht zuletzt der effizienten Möglichkeit, Remote-Befehle auf Management-Systemen auszuführen.

SaltStack zur vSphere-Verwaltung nutzen

SaltStack kann auch vSphere-Umgebungen verwalten, zuerst muss aber das VMware Cloud Module konfiguriert werden. Dieses Modul enthält die URL zum vSphere-Server sowie Nutzername und Passwort für die Anmeldung zu VMware.

Die Datei /etc/salt/cloud.providers auf dem Salt-Master wäre typischerweise der Ort, an dem die Informationen abgespeichert werden. Das folgende Beispiel zeigt den Inhalt der Datei, über die der Salt-Master mit dem VMware-System interagieren kann.

Beispiel für die VMware-Cloud-Provider-Konfiguration

my-vmware-config:
   driver: vmware
   user: 'DOMAIN\user'
   password: 'password'
   url: '10.20.30.40'

vcenter01:
   driver: vmware
   user: 'DOMAIN\user'
   password: 'password'
   url: 'vcenter01.domain.com'
   protocol: 'https'
   port: 443

vcenter02:
   driver: vmware
   user: 'DOMAIN\user'
   password: 'password'
   url: 'vcenter02.domain.com'
   protocol: 'http'
   port: 80

esx01:
   driver: vmware
   user: 'admin'
   password: 'password'
   url: 'esx01.domain.com'

Sobald die Verbindung zur vSphere-Umgebung definiert ist, kann SaltStack direkt mit dem vSphere-Server kommunizieren und automatisch bestimmte Operationen durchführen, beispielsweise das Starten virtueller Maschinen. Hierfür muss allerdings zunächst ein Profil definiert werden.

Beispiel für ein SaltStack-Profil

vmware-centos6.5:
  provider: vcenter01
  clonefrom: test-vm

  ## Optional arguments
  num_cpus: 4
  memory: 8GB
  devices:
    cd:
      CD/DVD drive 1:
        device_type: datastore_iso_file
        iso_path: "[nap004-1] vmimages/tools-isoimages/linux.iso"
      CD/DVD drive 2:
        device_type: client_device
        mode: atapi
        controller: IDE 2
      CD/DVD drive 3:
        device_type: client_device
        mode: passthrough
        controller: IDE 3
    disk:
      Hard disk 1:
        size: 30
      Hard disk 2:
        size: 20
        controller: SCSI controller 2
      Hard disk 3:
        size: 5
        controller: SCSI controller 3
    network:
      Network adapter 1:
        name: 10.20.30-400-Test
        switch_type: standard
        ip: 10.20.30.123
        gateway: [10.20.30.110]
        subnet_mask: 255.255.255.128
        domain: example.com
      Network adapter 2:
        name: 10.30.40-500-Dev-DHCP
        adapter_type: e1000
        switch_type: distributed
      Network adapter 3:
        name: 10.40.50-600-Prod
        adapter_type: vmxnet3
        switch_type: distributed
        ip: 10.40.50.123
        gateway: [10.40.50.110]
        subnet_mask: 255.255.255.128
        domain: example.com
    scsi:
      SCSI controller 1:
        type: lsilogic
      SCSI controller 2:
        type: lsilogic_sas
        bus_sharing: virtual
      SCSI controller 3:
        type: paravirtual
        bus_sharing: physical
    ide:
      IDE 2
      IDE 3

  domain: example.com
  dns_servers:
    - 123.127.255.240
    - 123.127.255.241
    - 123.127.255.242

  resourcepool: Resources
  cluster: Prod

  datastore: HUGE-DATASTORE-Cluster
  folder: Development
  datacenter: DC1
  host: c4212n-002.domain.com
  template: False
  power_on: True
  extra_config:
     mem.hotadd: 'yes'
    guestinfo.foo: bar
    guestinfo.domain: foobar.com
    guestinfo.customVariable: customValue

  deploy: True
  customization: True
  private_key: /root/.ssh/mykey.pem
  ssh_username: cloud-user
  password: veryVeryBadPassword
  minion:
    master: 123.127.193.105

  file_map:
    /path/to/local/custom/script: /path/to/remote/script
    /path/to/local/file: /path/to/remote/file
    /srv/salt/yum/epel.repo: /etc/yum.repos.d/epel.repo

  hardware_version: 10
  image: centos64Guest

Sobald das Profil definiert ist, muss es noch angewendet werden. Für die Interaktion mit der vSphere-Infrastruktur wird ein Salt Cloud-Modul und der Befehl salt-cloud verwendet. Die Struktur des Befehls lautet salt-cloud -p myprofile myinstance. Dieser Befehl wendet ein Profil wie das im Beispiel oben gezeigte an, um die Instanz myinstance bereitzustellen.

Das vSphere-Management per SaltStack ermöglicht Administratoren die Entwicklung einer generischen Deployment- und Management-Strategie, die sowohl für physische wie auch für virtuelle Infrastruktur verwendet werden kann.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Data-Center-Betrieb

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close