packer-debian
Ansible Роль: Настройка Packer для Debian/Ubuntu для Vagrant VirtualBox
Эта роль настраивает Debian/Ubuntu (либо минимальная, либо полная установка) для упаковки в .box файл для Vagrant/VirtualBox или Vagrant/Vmware_desktop с использованием Packer.
Требования
Перед запуском этой роли через Packer убедитесь, что Ansible установлен с помощью shell provisioner, и что предварительная настройка ВМ (например, добавление пользователя vagrant в соответствующую группу и файл sudoers) завершена, обычно с использованием файла Kickstart (например, ks.cfg
) или preseeding с Packer. Пример массива provisioners для вашего Packer .json шаблона может выглядеть так:
"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",
]
}
],
Файлы должны содержать, как минимум:
scripts/ansible.sh:
Пример для Ubuntu 16.04
#!/bin/bash -eux
# Установить репозиторий Ansible и сам Ansible.
apt -y install software-properties-common
apt-add-repository ppa:ansible/ansible
apt-get update
apt-get install ansible
Пример для Debian 8.8
#!/bin/bash -eux
# Установить репозиторий Ansible и сам 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
Вы также можете добавить еще один shell provisioner для очистки, удаляя свободное пространство с помощью dd
, но это не обязательно (это просто сэкономит немного места на диске в .box файле, созданном Packer).
Если вы хотите добавить дополнительные роли, убедитесь, что вы добавили их в массив role_paths
в шаблоне .json файле, а затем можете включить их в main.yml
, как обычно. Конфигурация Ansible будет выполняться через локальное соединение из Linux среды, поэтому все соответствующие файлы должны быть скопированы на ВМ; конфигурация для этого в шаблоне .json файле. Узнайте больше: Ansible Local Provisioner.
Переменные роли
Доступные переменные перечислены ниже, вместе с их значениями по умолчанию (см. defaults/main.yml):
vmware_install_open_vm_tools: false
(Только для VMware) Используя переменную vmware_install_open_vm_tools
, вы можете выбрать, какие интеграционные компоненты будут установлены в VMware box. По умолчанию (false
) устанавливаются VMware Tools, а не open-vm-tools
.
Узнайте больше:
Зависимости
Нет.
Пример Playbook
---
- hosts: all
roles:
- geerlingguy.packer-debian
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2014 году Джеффом Гирлингом, автором Ansible for DevOps.
ansible-galaxy install geerlingguy/ansible-role-packer-debian