Возникла тут задача потенциальная – клиенту на его 15 серверах надо поднять прокси для какого то парсинга. Когда это надо будет и как быстро пока не понятно – решил под эту задачу изучить ansible и вьехать как автоматизировать такое дело как поднятие squid на куче серверов
По старой привычке на ноуте поднял в VirtualBox образ тестовой системы и чет вылезло в голове что читал про разные варианты контейнерной виртуализации – docker был сразу отброшен как технология мне не понятная и не логичная (возможно когда то ее пойму), решил начать с Vagrant – простое и довольно интересное – с моими задачами сразу нашлось место для нее. Суть технологии простая – Vagrant это по сути CLI для VirtualBox или LXC (пока с ним не работал) – который позволяет быстро развернуть нужную версию ОС с нужным набором софта. Все очень просто и быстро настраивается в пару тройку команд. Для начала просто его установил:
1 |
# aptitude install vagrant |
Дальнейшие манипуляции можно делать под пользователем ( не под root )
После этого в зависимости от надобности и потребностей – выбираем нужные репозиторий и подключаем его (найти можно тут – http://www.vagrantbox.es/ )
Добавление проходит очень просто:
1 2 3 |
$ vagrant box add {title} {url} $ vagrant init {title} $ vagrant up |
В моем случае это было так:
1 |
$ vagrant box add ARTACK/debian-jessie https://atlas.hashicorp.com/ARTACK/boxes/debian-jessie |
После чего я у себя в домашнем каталоге создал директорию для работы с образами:
1 |
$ mkdir -p ~/vagrant/squid-test && cd ~/vagrant/squid-test |
Далее инициализирую нужную мне версию ОС (Debian 8)
1 |
vagrant init ARTACK/debian-jessie |
После инициализации в диретории появляется файл Vagrantfile который служит для настройки виртуальной машины, в нем можно задавать имя, ресурсы, настройки сети и прочее, я внес только настройки имени машины, сети для этого раскомментировал и прописал некоторые настройки (больше настроек в документации)
1 2 3 4 5 6 7 8 9 |
Vagrant.configure(2) do |config| config.vm.box = "ARTACK/debian-jessie" config.vm.network "private_network", ip: "10.0.2.16" config.vm.provider "virtualbox" do |vb| vb.gui = true vb.name = "squid-test" vb.memory = "1024" end end |
после чего поднял и подключился к виртуалке с консоли (выполнять команды надо находясь в каталоге с Vagrantfile:
1 2 |
$ vagrant up $ vagrant ssh |
Понравилось тем что не надо долбать себе мозги с контейнерами как в docker, управление проще и логичнее, система не засирается за счет AUFS и много прочих интересных как для обычного админа приятностей.
После инициализации можно запустить и без консоли – просто запустив в Virtualbox