geerlingguy.packer-debian

Rol de Ansible: Configuración de Packer para Debian/Ubuntu para Vagrant VirtualBox

CI

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.

Acerca del proyecto

Debian/Ubuntu configuration for Packer.

Instalar
ansible-galaxy install geerlingguy.packer-debian
Licencia
mit
Descargas
23.2k
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns