Skip to main content

3 posts tagged with "packer"

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!
🦖 🦕

· 2 min read

Предыстория

Когда я только знакомился с AWS по youtube плейлисту, я смастерил VPC в двух AZ с несколькими подсетями. Один из типов подсетей был private - с nat-gateway, в курсах забыли сказать, что они не входят во фритир. За пару дней за 2 гейта накапало около $6. Было обидно, я поставил биллинг аларм.

#!NOTE

Тот самый курс от Курс ADV-IT

История

Совсем недавно я учился (на котиках) созданию артефактов с помощью packer. После тренировки в AWS я со спокойной душой в console нужного региона убил все AMI и пошел дальше.

Неделю спустя в почте заметил очередное письмо от AWS (мне иногда на личный gmail аккаунт приходят от них billing репорты, всегда пустые, и приглашения не re:invent).

alert

Увидел что я потратил 85% "фри-тирного" места под снэпшоты ebs дисков.

info

AWS Free Tier - тут можно прочитать сколько вам в месяц выделяется того или иного ресурса бесплатно в рамках фри-тира.

Ага - из-за негодяя packer-а помимо AMI-шек создаются еще и такие сущности.

snapshots

Мораль
  • пермым делом во фри-тире сделайте не рутового пользователя, вторым настройте биллинг алерты (я бы поставил трешхолд на 50% - в моем случае бюджет таял быстро).
  • Авторам видео / гайдлайнов, конечно, стоило бы указывать, что это не входит во фри-тир - или входит, но слабые лимиты.