packer-debian

Ansible Роль: Настройка Packer для Debian/Ubuntu для Vagrant VirtualBox

CI

Эта роль настраивает 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.

О проекте

Debian/Ubuntu configuration for Packer.

Установить
ansible-galaxy install geerlingguy/ansible-role-packer-debian
Лицензия
mit
Загрузки
22950
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns