Base64 ist ein Format, das es erlaubt, Binärdaten in Text, und Text in Binärdaten zu Konvertieren, hier in der PowerShell. Die Base64-Codierung ist ein Prozess zum Konvertieren von Binärdaten in ein ASCII-Zeichenfolgeformat, und die Kodierung von 8-Bit-Binärdaten.
Base64 wandelt Daten (hauptsächlich Bilder) in Zeichen um, und zwar ursprünglich mit einem Satz von 64 Zeichen (Namensursprung), die sich in jedem ISO 8859-1 (auch bekannt als Latin-1) Zeichensatz wiederfinden und somit auch überall anzeigen lassen. Oder anders ausgedrückt: Aus einem Bild wird HTML-Code, denn inzwischen ist Base64 zum HTML-Standard geworden und es wird somit für Internetprojekte eingesetzt, vor allem eben für Inline-Grafiken.
Die Base64 Codierung wird auch häufig bei Mail-Systeme zum Versenden von E-Mail-Anhängen verwendet, da SMTP in seiner ursprünglichen Form nur für den Transport von 7-Bit-ASCII-Zeichen konzipiert war. Durch die Codierung eines Anhangs als Base64 vor dem Senden und die anschließende Decodierung beim Empfang wird sichergestellt, dass ältere SMTP-Server den Anhang nicht beeinträchtigen.
Text in Base64 Konvertieren in PowerShell
Die folgende Funktion Set-Base64 ermöglicht, ein Text in die Base64 Kodierung in der PowerShell zu konvertieren. Die Funktion Get-Base64 sorgt für das konvertieren zurück zum lesbaren Text.
Hinweis. wenn die Funktionen unter dem %userprofile%\Documents\WindowsPowerShell in die Datei Microsoft.PowerShell_profile.ps1 eingefügt wird, stehen die beiden Befehle in der PowerShell zur Ausführung zur Verfügung.
Base64 Code in Text Konvertieren
In der PowerShell konvertiert Set-Base64 den Text mit Übergabe in Base64 Kodierung, und mit Get-Base64 zurück in den lesbaren Text.
Binärdatei in Base64 Codierung Umwandeln
Dateien und Bilder lassen sich in Base64 Text umwandeln, hierzu lässt sich das Powershell-Cmdlet Get-Content verwenden, mit dem Parameter -Encoding Byte und -Raw.
Der Parameter -Raw sorgt dafür, dass die Datei komplett und nicht zeilenweise eingelesen wird, -Encoding Byte sagt PowerShell, dass es sich um eine Binärdatei handelt.
Bilddatei in Base64 Text Konvertieren
Bilddatei in Base64 Kodierung umwandeln, hierzu wird der PowerShell Befehl convert mit Parameter verwenden, der Base64 Text wird in die Datei image.txt geschreiben.
Nehmen wir ein weiteres Beispiel mit der Bilddatei bluebox.png, die du auf dein Computer herunterladen kannst. Konvertiere jetzt einfach die kleine 10×10-Pixel Grafik mit dieser Befehlszeile in der PowerShell.
Füge den Inhalt aus der Datei C:\temp\img.txt ein und platziere den Base64 <img src="data:image/png;base64,code hier" alt="Blue box" />
Doppelklicke auf die soeben erstellte HTML-Datei. Wenn alles richtig gemacht wurde, wird im Browser ein kleines blaues Kästchen angezeigt.
Addendum
Base64 ist keine Verschlüsselungsmethode. Es ist lediglich ein Encoding-Verfahren, das dazu dient, binäre Daten in eine für den Menschen lesbare Form zu konvertieren. Es bietet keine Sicherheit oder Geheimhaltung der Daten.
Base64 kodiert binäre Daten, indem es sie in eine Zeichenfolge von ASCII-Zeichen umwandelt. Dies ist nützlich, wenn man binäre Daten in Umgebungen übertragen möchte, die nur Textdaten unterstützen, wie z.B. E-Mail-Systeme.
E-Mail mit Anhang „content-transfer-encoding: base64“ senden im Beitrag hier.
Vagrant, eine freie Anwendung in Ruby zum Erstellen und Verwalten von virtuellen Maschinen
DevOps-Teams sehen sich zunehmend der Herausforderung gestellt, den Kunden neue Funktionen in kurzer Zeit zur Verfügung zu stellen, dabei stellen Cloud-Anbieter Lösungen durch skalierbare Plattformen mit Befehlszeilen- und API-Integrationen zur Verfügung. Mit nativen Tools können DevOps-Teams individuell angepasste Docker und Vagrant Lösungen für jeden Cloud-Provider bereitstellen.
Was ist Vagrant ?
Das Open-Source Projekt „Vagrant“ ist für den Aufbau kompletter Entwicklungsumgebungen konzipiert. Mit einem benutzerfreundlichen Workflow und dem Fokus auf Automatisierung. Zum Erstellen und Verwalten von Umgebungen mit virtuellen Maschinen (VM), und dies in einem einzigen Arbeitsablauf.
Vagrant bietet ein einheitliches Konfigurationsformat, mit einer Befehlszeile und einem gemeinsamen Provision-Provider, bereitgestellt für virtuelle Maschinen auf Hypervisoren oder als Cloud-VMs, für die Installation und Konfigurationen von Software.
Vagrant und Docker verfolgen dieselben Ziele, nämlich wiederholbare Umgebungen zu schaffen, das tun sie auf unterschiedliche, aber sich ergänzende Weise. In diesem Tutorial erfährst du, wie das quelloffene Werkzeug Vagrant zum fernsteuern bei der Virtualisierung eingesetzt werden kann.
Was ist Docker ?
Docker ermöglicht Software und unterstützende Konfigurationen in Images zu verpacken, die über mehrere Plattformen hinweg konsistent ausgeführt werden können. DevOps-Teams können mit Docker darauf setzen, dass die Software auf einem lokalen Arbeitsplatzrechner genauso läuft wie auf einer verwalteten Cloud-Plattform.
Die Kubernetes Plattform die auf Docker basiert, ermöglicht die Orchestrierung von Containern im umfangreichen Maßstab. Darüber hinaus unterstützten Cloud-Plattformen die Möglichkeit, Docker-Container in seinen Platform-as-a-Service (PaaS) zu betreiben.
Vagrant Installation
Vagrant ist in den Standard-Repos der meisten Linux-Distributionen enthalten. Sollte das Paket einmal nicht im Repository sein, oder es steht eine neuere Version im Vordergrund, so findet man die Binary’s auf der offiziellen Webseite mit den Links zum Herunterladen der Pakete für macOS, Windows und Linux.
Vagrant für Linux
Unter Debian und Ubuntu wird Vagrant wie folgt bereitgestellt.
eine aktuelle Version von Ruby kann erforderlich sein.
Vagrant anwenden
Vagrant speichert und liest sämtliche Informationen für die zu erstellenden VMs aus der Konfigurationsdatei „Vagrantfile“. Dazu legt man erst ein Verzeichnis an, in diesem ein neues Vagrant Projekt erstellt wird.
Der erste Befehl vagrant init erstellt ein Vagrantfile im aktuellen Ordner, welche dann den eigenen Anforderungen entsprechend bearbeitet werden kann.
$ vagrant init
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Als Standard provider wird VirtualBox verwendet. In der Konfigurationsdatei bei config.vm.provider kann angeben werden, welcher provider angewendet werden soll um eine VM oder ein Container zu erstellen.
Vagrant mit docker
config.vm.provider "docker" do |d|
d.image = "helloworld"
end
Hier wird docker als provider verwendet und die Variable d für den Container wird festgelegt mit welcher weitere Einstellungen vorgenommen werden können (zB. docker-Images).
Vagrant mit Hyper-V
Nutzt man in Windows Hyper-V ist als provider „hyperv“ zu wählen.
config.vm.provider "hyperv" do |h|
h.vm_integration_services = {
guest_service_interface: true,
CustomVMSRV: true
}
end
Vagrant Box Installation
Anstatt eine virtuelle Maschine von Grund auf zu erstellen, verwendet Vagrant ein Basis-Image, um eine virtuelle Maschine schnell zu klonen. Diese Basisbilder werden in Vagrant als „Box“ bezeichnet. Die Angabe der für eine Vagrant-Umgebung zu verwendenden Box ist immer der erste Schritt nach dem Erstellen einer neuen Vagrant-Datei. Hier als Hostsystem wird Windows mit Hyper-V eingesetzt.
vagrant box add hashicorp/bionic64
Vagrant fordert uns nun auf ein provider zu wählen.
==> box: Loading metadata for box 'hashicorp/bionic64'
box: URL: https://vagrantcloud.com/hashicorp/bionic64
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) hyperv
2) virtualbox
3) vmware_desktop
Als provider wähle 1) für Hyper-V was in Windows aktiviert sein muss.
Vagrant.configure("2") do |config|
config.vm.box = "generic/debian12"
config.vm.box_url = "https://vagrantcloud.com/hashicorp/bionic64"
end
Die Konfigurationsdatei Vagrantfile
Nun ein Command Prompt als Administrator öffnen, in Windows 11 ist es Windows Terminal, und den folgenden Befehl ausführen.
vagrant up --provider=hyperv
Möglicherweise erscheint zusätzlich zur Bestätigung ein Hinweis.
Bringing machine 'default' up with 'hyperv' provider...
==> default: Verifying Hyper-V is enabled...
The Hyper-V cmdlets for PowerShell are not available! Vagrant
requires these to control Hyper-V. Please enable them in the
"Windows Features" control panel and try again.
Sollte Hyper-V noch nicht vorliegen, ist die Hyper-V-Plattform und Hyper-V-Verwaltungstools für PowerShell wie folgt bereitzustellen.
Die Windows-Features werden aktiviert, mit Start + R den Befehlcontrol appwiz.cpl,,2ausführen.
Das Cmdlet kann auch aus der PowerShell aktiviert werden.
Die PowerShell als Administrator starten. Nach der aktivierung muss Windows neu gestartet werden.
Virtuelle Maschine Starten
Im einfachsten Fall ist das bereits alles, was für das Erzeugen und Starten einer virtuellen Maschine erforderlich ist. Nun folgt der Aufruf in der Konsole mitvagrant up
$ vagrant up
Bringing machine 'default' up with 'hyperv' provider...
==> default: Verifying Hyper-V is enabled...
==> default: Verifying Hyper-V is accessible...
==> default: Importing a Hyper-V instance
default: Creating and registering the VM...
default: Successfully imported VM
default: Configuring the VM...
default: Setting VM Enhanced session transport type to disabled/default (VMBus)
==> default: Starting the machine...
==> default: Waiting for the machine to report its IP address...
default: Timeout: 120 seconds
default: IP: 172.19.29.83
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 172.19.29.83:22
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
Um zu überprüfen, ob die VM wirklich läuft, genügt das Kommando.
vagrant status
Es wird als Status wie erwartet running gezeigt und gibt zudem einige Hinweise aus. Wie man die virtuelle Maschine wieder beenden kann, zeigt der Befehl wie folgt.
vagrant halt
Amelden
Für den Zugriff auf die virtuelle Maschine leitet Vagrant den Port 22 auf den Port 2222 des Hostsystems weiter, sodass sich eine SSH-Verbindung herstellen lässt. Benutzernamen und Port müssen nicht stets von Hand eingeben werden, es steht zudem ein Kommando zur Verfügung, das die Anmeldung automatisch vornimmt.
vagrant ssh
Die Verbindung zur virtuellen Maschine ist hergestellt, die VM kann ohne Einschränkungen verwendet und für weitere Anforderungen konfiguriert werden. Das Verzeichnis des Hostsystems, das die Datei „Vagrantfile“ enthält, bindet Vagrant in der virtuellen Maschine als Pfad /vagrant ein. Damit ist ein einfacher Austausch von Dateien zwischen Host und Gast möglich.
Vagrant stellt zahlreiche Kommands bereit. Ein Blick in die Vagrant Help Ausgabe mit vielen Kommands lohnt sich.
vagrant -h
Zu den Allgemeinen Kommands stehen weitere Unterbefehle zur Verfügung, die jedoch entweder komplexer sind oder nicht häufig verwendet werden. Um alle Unterbefehle in der Konsole auszugeben, führe den Befehlvagrant list-commandsaus.
Vagrant Box
Auf der Webseite von Vagrant wird eine Auswahl von Box Abbilder im Katalog zum direkten Download zur Verfügung gestellt. Alternativ gilt die darauf spezialisierte Webseite Vagrantbox.es als weitere Anlaufstelle.
Eine Vagrant Box auf Debian 12 wird wie folgt bereitgestellt.
vagrant init generic/debian12
vagrant up
Die Vagrant Box auf Rocky Linux 9 erhält man mit diesen zwei Zeilen.
vagrant init generic/rocky9
vagrant up
Hyper-V Manager
Bei der nutzung von Hyper-V als provider für Vagrant, können die erstellen VM im Hyper-V Manager verwaltet werden.
UNBLOG verwendet Cookies, um Dein Online-Erlebnis zu verbessern. Mit "ACCEPT" gibst Du Deine Zustimmung zur Nutzung dieser Website und unseren Datenschutzbestimmungen, oder wähle Cookie settings.
Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern, während Sie durch die Website navigieren. Von diesen werden die Cookies, die nach Bedarf kategorisiert werden, in Ihrem Browser gespeichert, da sie für das Funktionieren der grundlegenden Funktionen der Website wesentlich sind. Wir verwenden auch Cookies von Drittanbietern, mit denen wir analysieren und verstehen können, wie Sie diese Website nutzen. Diese Cookies werden nur mit Ihrer Zustimmung in Ihrem Browser gespeichert. Sie haben auch die Möglichkeit, diese Cookies zu deaktivieren. Das Deaktivieren einiger dieser Cookies kann sich jedoch auf Ihre Browser-Erfahrung auswirken.
Notwendige Cookies sind unbedingt erforderlich, damit die Website ordnungsgemäß funktioniert. Diese Kategorie enthält nur Cookies, die grundlegende Funktionen und Sicherheitsmerkmale der Website gewährleisten. Diese Cookies speichern keine persönlichen Informationen.
Alle Cookies, die für die Funktion der Website möglicherweise nicht besonders erforderlich sind und speziell zur Erfassung personenbezogener Daten des Benutzers über Analysen, Anzeigen und andere eingebettete Inhalte verwendet werden, werden als nicht erforderliche Cookies bezeichnet. Es ist obligatorisch, die Zustimmung des Benutzers einzuholen, bevor diese Cookies auf Ihrer Website ausgeführt werden.