VMware – VMs mit PowerCLI/PowerShell provisionieren

Wir arbeiten aktuell an einem kleinen Projekt, in dem wir einige VM-„Placeholder“ erstellen müssen.

Konkret geht es um VMs ohne Disks. Man könnte das alles mittels GUI machen, allerdings gibt es da angenehmere Varianten. Hier eine kurze Herangehensweise wie man das mit der PowerCLI machen kann:

VMware – VMs mit PowerCLI/PowerShell provisionieren weiterlesen

Docker Device Mappings

Ich tauche im Moment ins letzte Jahrtausend ab und automatisiere Abläufe, welche nicht über IP Kommunikation abbildbar sind. 🙂

Der erste Pilot dafür lief auf einem Raspberry Pi:


Darauf lief ein Expect-Script, welches sich an der Minicom bediente und automatisch gewisse Sachen ausführte.

Jetzt wollten wir das Ganze auf einen Server bringen und das Ganze funktionierte nicht mehr wie vorher. Nach einiger Recherche kamen wir dahinter, dass am Raspberry eine aktuellere Version der Minicom installiert war.

Am Server läuft CentOs und irgendwie war ich unfähig, die Minicom auf das gleiche Release wie am Pi zu bringen. 🙁

Ich dachte kurz an Docker und schaute, ob man nicht die ttyUSB0 in den Container bringen kann. Ergebnis: ja, man kann. Und es ist einfacher als gedacht:

docker run --device=/dev/ttyUSB0 *Imagename*

Nachher taucht im Container die ttyUSB0 auf. Eigentlich nicht kompliziert, oder?

root@faadd9042d8b:/# ll /dev/tty*
crw-rw-rw- 1 root root   5, 0 Feb 20 08:20 /dev/tty
crw-rw---- 1 root   18 188, 0 Feb 20 08:41 /dev/ttyUSB0

Also schnell ein Ubuntu Image gestartet, die Minicom und Expect entsprechend installiert und schon lief es wieder.

Vielleicht ist es ja für jemanden nützlich …

Nachtrag:
Man kann auch die ttyUSB1 auf ttyUSB0 mappen.

--device=/dev/ttyUSB1:/dev/ttyUSB0

Dh. die ttyUSB1 vom Docker-Host wird im Container als ttyUSB0 nutzbar.

Liebe Grüße

Falk

MCP Cloud Automation mit PowerShell

PowerShell erfreut sich großer Beliebtheit. Fast jeder Admin hatte in den letzten Jahren Berührungspunkte mit dieser Scriptingsprache. Kein Wunder, man kann damit wunderbar automatisieren.

Auch unsere Cloud-Services lassen sich damit administrieren. Aktuell schreibe ich ein kleines Script für das automatische Rollout von Backup-Agents.

Das bringt mich zu diesem Blog-Post, denn ich möchte nur kurz demonstrieren wie schnell man tägliche Tasks mit unseren PowerShell-Modulen automatisieren kann.

Log geht’s.

MCP Cloud Automation mit PowerShell weiterlesen

MCP Usage Reports automatisch erstellen

Weil wir gerade so eine Anfrage haben, möchte ich kurz darüber schreiben.

Man kann in der Dimension Data Cloud einen Usage Report über die Admin-UI erstellen. Dabei wird ein CSV-File generiert, welches dann weiter verarbeitet werden kann.

MCP Usage Reports automatisch erstellen weiterlesen

ESXCLI Commands mit PowerCLI ausführen

Hallo,

aktuell ist die Hölle los, weshalb hier auch weniger neue Beiträge landen.

Das hier fande ich jetzt aber so lässig, dass ich mich trotzdem kurz hinhocken musste um etwas darüber zu schreiben.

Konkret geht es darum, ESXCLI Befehle via PowerCLI (also PowerShell) auf ESX-Hosts auszuführen. Wie geht das? Genau so:

$esxcli = Get-EsxCli -VMHost 1.1.1.1

$esxcli

====================
EsxCli: 1.1.1.1

   Elements:
   ---------
   esxcli
   fcoe
   hardware
   iscsi
   network
   software
   storage
   system
   vm

Wie kann man das verwenden?

$esxcli.network.nic.list()

Description : Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
Driver      : e1000
Duplex      : Full
Link        : Up
MACAddress  : 00:0c:29:80:f9:a0
MTU         : 1500
Name        : vmnic0
PCIDevice   : 0000:002:01.0
Speed       : 1000

Nachdem man mit ESXCLI ja bekanntlich nicht nur Abfragen starten kann, sondern auch Konfigurationen verändern kann.

Hier nur ein Beispiel. Zunächst holen wir mal die Config:

$esxcli.system.syslog.config.get()


DefaultNetworkRetryTimeout : 180
DefaultRotationSize        : 1024
DefaultRotations           : 8
LogOutput                  : /scratch/log
LogToUniqueSubdirectory    : false
RemoteHost                 : <none>

 

$esxcli.system.coredump.network.set

TypeNameOfValue     : VMware.VimAutomation.ViCore.Util10Ps.EsxCliExtensionMethod
OverloadDefinitions : {boolean set(boolean enable, string interfacename, string serveripv4, long serverport)}
MemberType          : CodeMethod
Value               : boolean set(boolean enable, string interfacename, string serveripv4, long serverport)
Name                : set
IsInstance          : True

Genau in dieser Reihenfolge können wir jetzt das „SET“ starten:

$esxcli.system.syslog.config.set(8,1024,180,"/scratch/log",$false,"1.1.1.2")
true

Kontrolle mit GET:

$esxcli.system.syslog.config.get()

DefaultNetworkRetryTimeout : 180
DefaultRotationSize        : 1024
DefaultRotations           : 8
LogOutput                  : /scratch/log
LogToUniqueSubdirectory    : false
RemoteHost                 : 1.1.1.2

Hier gibt es eine Übersicht über alle möglichen ESXCLI-Commands:

How to list all the PowerCLI ESXCLI commands

Durchaus nützlich in meinen Augen. Was meint ihr?

 

Bis demnächst.

 

Liebe Grüße

Falk