geerlingguy.packer-debian
Ansible-Rolle: Packer Debian/Ubuntu-Konfiguration für Vagrant VirtualBox
Diese Rolle konfiguriert Debian/Ubuntu (entweder minimal oder mit vollem Installationsumfang), um es als Teil einer .box-Datei für Vagrant/VirtualBox oder Vagrant/Vmware_desktop-Bereitstellungen mit Packer zu verpacken.
Anforderungen
Bevor du diese Rolle über Packer ausführst, musst du sicherstellen, dass Ansible über einen Shell-Provisioner installiert ist und dass die erste VM-Konfiguration (wie das Hinzufügen eines Vagrant-Benutzers zur entsprechenden Gruppe und zur Sudoers-Datei) abgeschlossen ist. Dies geschieht in der Regel mithilfe einer Kickstart-Installationsdatei (z. B. ks.cfg
) oder Vorpflanzen mit Packer. Ein Beispiel für ein Array von Provisionern für deine Packer .json-Vorlage sieht so aus:
"provisioners": [
{
"type": "shell",
"execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'",
"script": "scripts/ansible.sh"
},
{
"type": "ansible-local",
"playbook_file": "ansible/main.yml",
"role_paths": [
"/Users/jgeerling/Dropbox/VMs/roles/geerlingguy.packer-debian",
]
}
],
Die Dateien sollten mindestens Folgendes enthalten:
scripts/ansible.sh:
Ein Beispiel für Ubuntu 16.04
#!/bin/bash -eux
# Ansible-Repository und Ansible installieren.
apt -y install software-properties-common
apt-add-repository ppa:ansible/ansible
apt-get update
apt-get install ansible
Ein Beispiel für Debian 8.8
#!/bin/bash -eux
# Ansible-Repository und Ansible installieren.
apt -y install software-properties-common
echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
apt -y update
apt -y install ansible
ansible/main.yml:
---
- hosts: all
sudo: yes
gather_facts: yes
roles:
- geerlingguy.packer-debian
Du möchtest vielleicht auch einen weiteren Shell-Provisioner hinzufügen, um Aufräumarbeiten durchzuführen, z. B. freien Speicherplatz mit dd
zu löschen, aber das ist nicht notwendig (es spart nur ein wenig Speicherplatz in der von Packer erstellten .box-Datei).
Wenn du zusätzliche Rollen hinzufügen möchtest, stelle sicher, dass du sie zum role_paths
-Array in der Vorlage .json-Datei hinzufügst, und dann kannst du sie wie gewohnt in main.yml
einfügen. Die Ansible-Konfiguration wird über eine lokale Verbindung innerhalb der Linux-Umgebung ausgeführt, daher müssen alle relevanten Dateien auf die VM kopiert werden; die Konfiguration dafür befindet sich in der Vorlage .json-Datei. Weitere Informationen: Ansible Local Provisioner.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):
vmware_install_open_vm_tools: false
(Nur VMware) Mit der Variable vmware_install_open_vm_tools
kannst du auswählen, welche Integrationskomponenten in die VMware-Box installiert werden. Der Standardwert (false
) installiert VMware Tools und nicht open-vm-tools
.
Weitere Informationen:
- open-vm-tools
- open-vm-tools auf GitHub
- VMware Unterstützung für Open VM Tools (2073803)
- VMware Tools
Abhängigkeiten
Keine.
Beispiel-Playbook
---
- hosts: all
roles:
- geerlingguy.packer-debian
Lizenz
MIT / BSD
Autor Informationen
Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible for DevOps.
Debian/Ubuntu configuration for Packer.
ansible-galaxy install geerlingguy.packer-debian