geerlingguy.packer-debian
Rol de Ansible: Configuración de Packer para Debian/Ubuntu para Vagrant VirtualBox
Esta rol configura Debian/Ubuntu (ya sea instalación mínima o completa) para que se empaquete como parte de un archivo .box para despliegue en Vagrant/VirtualBox o Vagrant/Vmware_desktop utilizando Packer.
Requisitos
Antes de ejecutar esta rol a través de Packer, debes asegurarte de que Ansible esté instalado a través de un provisionador de shell, y de que la configuración preliminar de la máquina virtual (como agregar un usuario vagrant al grupo adecuado y al archivo sudoers) esté completa, generalmente utilizando un archivo de instalación Kickstart (por ejemplo, ks.cfg
) o presembrado con Packer. Un ejemplo de arreglo de provisionadores para tu plantilla .json de Packer es algo como:
"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",
]
}
],
Los archivos deberían contener, como mínimo:
scripts/ansible.sh:
Un ejemplo para Ubuntu 16.04
#!/bin/bash -eux
# Instalar repositorio Ansible y Ansible.
apt -y install software-properties-common
apt-add-repository ppa:ansible/ansible
apt-get update
apt-get install ansible
Un ejemplo para Debian 8.8
#!/bin/bash -eux
# Instalar repositorio Ansible y 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
También podrías querer añadir otro provisionador de shell para realizar limpieza, borrando espacio libre usando dd
, pero esto no es obligatorio (solo ahorrará un poco de espacio en disco en el archivo .box producido por Packer).
Si deseas agregar roles adicionales, asegúrate de añadirlos al arreglo role_paths
en el archivo de plantilla .json, y luego puedes incluirlos en main.yml
como lo harías normalmente. La configuración de Ansible se ejecutará a través de una conexión local desde dentro del entorno Linux, por lo que todos los archivos relevantes deben copiarse a la máquina virtual; la configuración para esto está en el archivo de plantilla .json. Lee más: Provisionador Local de Ansible.
Variables de la Rol
Las variables disponibles se enumeran a continuación, junto con los valores por defecto (ver defaults/main.yml):
vmware_install_open_vm_tools: false
(Solo VMware) Usando la variable vmware_install_open_vm_tools
, puedes seleccionar qué tipo de componentes de integración se instalarán en la caja de VMware. El valor por defecto (false
) instala VMware Tools y no open-vm-tools
.
Lee más:
Dependencias
Ninguna.
Ejemplo de Playbook
---
- hosts: all
roles:
- geerlingguy.packer-debian
Licencia
MIT / BSD
Información del Autor
Esta rol fue creada en 2014 por Jeff Geerling, autor de Ansible for DevOps.
Debian/Ubuntu configuration for Packer.
ansible-galaxy install geerlingguy.packer-debian