← На главную страницу

Обход блокировки Vagrant для России

Хашикорп, как и многие иностранные компании, решил ввести санкции против России. Флаг им в руки, как говорится.

fuck you, hashicorp

Присылайте свои замечания, адреса зеркал и прочие полезные для доработки статьи штуки мне на почту: v@krsnv.ru. Если информация будет полезной, я дополню ею эту статью.

Из-за блокировки невозможно получить образы виртуальных машин из оригинального репозитория Hashicorp.

Но это не страшно. Есть три решения:

Зеркала c установщиками Vagrant

Зеркала образов (boxes) Vagrant

БУДЬТЕ ВНИМАТЕЛЬНЫ С ЗЕРКАЛАМИ. В сети наверняка может быть какое-то количество "левых" зеркал с образами, содержащими зловреды. Я лично таких не встречал, но мало ли что. Используйте только доверенные зеркала или свои собственные.

Vagrantfile

Указать зеркало нужно в переменной VAGRANT_SERVER_URL

VAGRANT_SERVER_URL="https://<АДРЕС СЕРВЕРА С БОКСАМИ>"

Пример Vagrantfile:


# -*- mode: ruby -*-
# vi: set ft=ruby :

ENV['VAGRANT_SERVER_URL']="https://<АДРЕС СЕРВЕРА С БОКСАМИ>"

Vagrant.configure("2") do |config|
  # config.vm.box = "ubuntu/xenial64"
  # ... ну и так далее -- ваша конфигурация
end

Скачать вручную

Расскажу на примере Laravel Homestead.

Идем на сайт-каталог боксов: https://app.vagrantup.com/. Выбираем нужный бокс. В нашем случае нас интересует Homestead: https://app.vagrantup.com/laravel/boxes/homestead.

Скачиваем нужную версию из списка. Надо нажать на мааааленькую синюю кнопку справа от версии бокса. Некоторые боксы собраны под разные виртуальные машины (VirtualBox, Parallels и так далее). Выбираем нужную версию.

Скаченный образ кладем рядом с Vagrantfile или указываем путь до него, либо импортируем. По-умолчанию скаченный файл будет называться vagrant.box


# Вариант №1: Импорт бокса
vagrant box add laravel/homestead "vagrant.box"
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "laravel/homestead"
  # ... ну и так далее -- ваша конфигурация
end

# Вариант №2: Использование бокса напрямую
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "vagrant.box"
  # ... ну и так далее -- ваша конфигурация
end