geerlingguy.packer-debian
Rola Ansible: Konfiguracja Packer dla Debian/Ubuntu do Vagrant VirtualBox
Ta rola konfiguruje Debian/Ubuntu (minimalną lub pełną instalację) w celu przygotowania go do spakowania jako część pliku .box dla Vagrant/VirtualBox lub Vagrant/Vmware_desktop przy użyciu Packer.
Wymagania
Przed uruchomieniem tej roli za pomocą Packer, musisz upewnić się, że Ansible jest zainstalowany poprzez provisioner shell oraz, że wstępna konfiguracja VM (jak dodanie użytkownika vagrant do odpowiedniej grupy i pliku sudoers) jest zakończona, zazwyczaj przy użyciu pliku konfiguracyjnego Kickstart (np. ks.cfg
) lub preseeding z Packer. Przykładowa tablica provisionerów dla szablonu Packer .json wygląda tak:
"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",
]
}
],
Pliki powinny zawierać, co najmniej:
scripts/ansible.sh:
Przykład dla Ubuntu 16.04
#!/bin/bash -eux
# Instalacja repozytoriów Ansible i Ansible.
apt -y install software-properties-common
apt-add-repository ppa:ansible/ansible
apt-get update
apt-get install ansible
Przykład dla Debian 8.8
#!/bin/bash -eux
# Instalacja repozytoriów Ansible i Ansible.
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
Możesz również dodać inny provisioner shell do uruchomienia czyszczenia, usuwając wolne miejsce za pomocą dd
, ale to nie jest wymagane (po prostu zaoszczędzi trochę miejsca na dysku w pliku .box produkowanym przez Packer).
Jeśli chcesz dodać dodatkowe role, upewnij się, że dodasz je do tablicy role_paths
w szablonie .json, a następnie możesz je włączyć w main.yml
tak, jak zwykle. Konfiguracja Ansible będzie uruchamiana z lokalnego połączenia w systemie Linux, więc wszystkie istotne pliki muszą być skopiowane do VM; konfiguracja dla tego jest w szablonie .json. Przeczytaj więcej: Ansible Local Provisioner.
Zmienne Roli
Dostępne zmienne są wymienione poniżej, wraz z domyślnymi wartościami (zobacz defaults/main.yml):
vmware_install_open_vm_tools: false
(Tylko VMware) Przy użyciu zmiennej vmware_install_open_vm_tools
możesz wybrać, jakie komponenty integracyjne będą instalowane w VMware box. Domyślnie (false
) instaluje VMware Tools, a nie open-vm-tools
.
Przeczytaj więcej:
Zależności
Brak.
Przykład Playbooka
---
- hosts: all
roles:
- geerlingguy.packer-debian
Licencja
MIT / BSD
Informacje o Autorze
Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible for DevOps.
ansible-galaxy install geerlingguy.packer-debian