geerlingguy.packer-debian

Ansible-Rolle: Packer Debian/Ubuntu-Konfiguration für Vagrant VirtualBox

CI

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:

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.

Über das Projekt

Debian/Ubuntu configuration for Packer.

Installieren
ansible-galaxy install geerlingguy.packer-debian
Lizenz
mit
Downloads
23.2k
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns