Skip to main content

2 posts tagged with "ansible"

View All Tags

· 2 min read

На VagrantCloud не нашел нормальных box-ов с GUI.

Процесс

info

Буду делать аналогии с docker

config file

Описываем конфигурацию нашего VagrantBox (DockerImage) в формате .hcl (terraform)

source "vagrant" "ubuntu" {
add_force = true
communicator = "ssh"
provider = "virtualbox"
source_path = "ubuntu/focal64"
}

build {
name = "learn-packer"
sources = [
"source.vagrant.ubuntu"
]
}
tip

Полезные команды:

packer validate packer.hcl  # валидирует файл
packer fmt . # форматирует файлы, и кажется, выполняет валидацию

build

С помощью packer (docker engine) собираем образ.

packer build packer.hcl

Через некоторое время в директории learn-packer появится файл .box (docker_image)

push

Заливаем получившийся файл на VagrantCloud. Понадобиться собрать хэш-сумму файла, например через md5

provisioner

note

Любимый провиженер - ansible, но можно использовать shell

source "vagrant" "ubuntu" {
add_force = true
communicator = "ssh"
provider = "virtualbox"
source_path = "ubuntu/focal64"
}

build {
name = "learn-packer"
sources = [
"source.vagrant.ubuntu"
]
provisioner "ansible" {
playbook_file = "./ansible/packer-playbook.yml"
}
}

post-processors

caution

Не протестировал

Штуки которые выполняются после сборки, например публикация в VagrantCloud (docker push)

GitHub repo

· 2 min read

Inspiration

Буквально недавно писал про сборку Vagrant-а, доделалъ 🎉, в двух версиях:

  • в серверной работаем через ssh
  • и gui, установлены разные desktop приложения 💻

asciicast

Или схематично:

sequenceDiagram participant Packer participant Vagrant participant Ansible Packer->>Vagrant: Launch tmp VM Note right of Vagrant: !NOTE: at low level Vagrant uses Virtualbox API Vagrant->>Ansible: Configure tmp VM Ansible-->>Vagrant: Done! Vagrant-->>Packer: Done! %% loop Artifact %% Ansible->>Packer: Create Vagrant box from current VM state. %% end note over Packer: Creates Vagrant box from current VM state. note over Packer: Releases the Vagrant box on Vagrant Cloud.

Установка на Windows

Проверьте ресурсы вашей host OS:

CPU

WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors

Версию OS и общий объем RAM:

systeminfo |findstr /c:"OS Name" /c:"Total Physical Memory"

img

"Рекомедованные ресурсы"
  • 2 vpcu
  • 4Gi RAM

Вам потребуется:

VirtualBox Guest Additions

6.4. Installing the VirtualBox Guest Additions

info

Это, пожалуй, самое больное в использовании virtualbox - открыть гую на весь экран. Тут я не буду вам давать никаких обещаний, могу лишь накинуть идеи как вам с этим справиться:

vbguest vagrant plugin

danger

У меня сработало лишь один раз 💀

vagrant plugin uninstall vagrant-vbguest
vagrant destroy -f
vagrant up
vagrant plugin install vagrant-vbguest
vagrant vbguest --do install

ansible galaxy

Используйте мой пример - Guest Additions установит ansible роль.

caution

Гарантию, что у вас все сработает дать невозможно, но скорее всего понадобятся минимальные телодвижения.

Секретный вариант

Всегда можно погуглить / посмотреть ютуб на тему как сделать Virtualbox на весь экран 😉

Удачи и да прибудет с вами сила!

tip

Если не смотрели, исправьтесь:

Toggle me!
🦖 🦕