Vagrant ч.2
Немного о создании своих кастомных боксов. Любой бокс, который вы уже откуда-то скачали и подняли можно снова превратить в "чистый" кастомный бокс. Чистый с вашей точки зрения. Т.е. например у него будет преднастроенная среда (нужная версия ruby, например, настроенная через rvm), предустановленные пакеты (go, nginx, htop, tcpdump,... да что угодно), но он еще не "заляпан" вашими тестами или по, которое вы тестите.
\\ создать конфигурационный файл и подготовить его (сразу) для работы с боксом jessie64
\\ Используя Vagrantfile поднять виртуальную машину, используя virtulabox в качестве виртуализации
\\ подключиться по ssh к созданной виртуалке
\\ здесь комплекс мер для установки гостевых утилит:
\\ Ваша кастомная настройка бокса
Итак у вас уже есть развернутый бокс. и в нем вы уже настроили все что вам требуется. Теперь дело за малым - выгрузить его и начать использовать.
\\ чистим apt кеш от скачанных пакетов
\\ заполняем все свободное место нулями
\\ удаляем этот файл с нулями
\\ чистим историю и выходим из бокса
\\ создаем box-файл из нашей виртуалки. Созданный файл можно передать любому вашему коллеге и он сможет в одну команду развернуть у себя вашу дев-среду.
\\ этой командой импортируется созданный бокс
\\ удаляем созданную с помощью vagrant up виртуалку и чистим за собой.
Таким образом в следующий раз, когда вам потребуется развернуть преднастроенную виртуалку, это можно сделать всего в 2 команды:
Здесь вы уже могли заметить то что я употребил в названии версию, но такой способ версионности неудобен. О том как же сделать нормальное управление версиями - в будущих частях.
Немного о создании своих кастомных боксов. Любой бокс, который вы уже откуда-то скачали и подняли можно снова превратить в "чистый" кастомный бокс. Чистый с вашей точки зрения. Т.е. например у него будет преднастроенная среда (нужная версия ruby, например, настроенная через rvm), предустановленные пакеты (go, nginx, htop, tcpdump,... да что угодно), но он еще не "заляпан" вашими тестами или по, которое вы тестите.
# vagrant init debian/jessie64
\\ создать конфигурационный файл и подготовить его (сразу) для работы с боксом jessie64
# vagrant up --provider virtualbox
\\ Используя Vagrantfile поднять виртуальную машину, используя virtulabox в качестве виртуализации
# vagrant ssh
\\ подключиться по ssh к созданной виртуалке
# (ssh).... install Vbox Additions
\\ здесь комплекс мер для установки гостевых утилит:
vagrant@jessie:~$ cd /usr/src/
vagrant@jessie:~$ sudo su
root@jessie:/usr/src# wget http://download.virtualbox.org/virtualbox/5.1.22/VBoxGuestAdditions_5.1.22.iso
root@jessie:/usr/src# mount VBoxGuestAdditions_5.1.22.iso /mnt/
root@jessie:/mnt# apt install dkms build-essential
root@jessie:/mnt# cd /mnt
root@jessie:/mnt# ./VBoxLinuxAdditions.run
\\ Ваша кастомная настройка бокса
Итак у вас уже есть развернутый бокс. и в нем вы уже настроили все что вам требуется. Теперь дело за малым - выгрузить его и начать использовать.
# (ssh) sudo apt-get clean
\\ чистим apt кеш от скачанных пакетов
# (ssh) sudo dd if=/dev/zero of=/EMPTY bs=1M
\\ заполняем все свободное место нулями
# (ssh) rm -f /EMPTY
\\ удаляем этот файл с нулями
# (ssh) cat /dev/null > ~/.bash_history && history -c && exit
\\ чистим историю и выходим из бокса
# vagrant package --output my_own_new_fucking_amazing.box
\\ создаем box-файл из нашей виртуалки. Созданный файл можно передать любому вашему коллеге и он сможет в одну команду развернуть у себя вашу дев-среду.
# vagrant box add project_xxx_v1.0 my_own_new_fucking_amazing.box
\\ этой командой импортируется созданный бокс
# vagrant destroy
\\ удаляем созданную с помощью vagrant up виртуалку и чистим за собой.
Таким образом в следующий раз, когда вам потребуется развернуть преднастроенную виртуалку, это можно сделать всего в 2 команды:
$ vagrant init project_xxx_v1.0 && vagrant up
Здесь вы уже могли заметить то что я употребил в названии версию, но такой способ версионности неудобен. О том как же сделать нормальное управление версиями - в будущих частях.