Skip to content

Instantly share code, notes, and snippets.

@Uburwator
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Uburwator/2515478673aa0d056fd5 to your computer and use it in GitHub Desktop.
Save Uburwator/2515478673aa0d056fd5 to your computer and use it in GitHub Desktop.
# Несколько первых строк - стандартные заголовки, необходимые для функционирования файла. Они оставлены неизменными.
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Далее следует изменение параметров серии config.vm, которые затрагивают непосредственно поднимаемую машину.
# Какой мы будем использовать бокс
config.vm.box = "Win2012R2x64"
# Семейство операционных систем, в нашем случае просто windows
config.vm.guest = :windows
# Указываем, под каким именем Vagrant будет у себя учитывать эту машину. Это не влияет ни на имя хоста, ни на то, как он будет называться в Hyper-V. Если опустить - будет назначено имя “default”.
config.vm.define :godnota
# Как мы будем взаимодействовать с ОС. Традиционно используется SSH, но сейчас стало возможно использовать нативные средства - WinRM
config.vm.communicator = "winrm"
# Здесь указывается тип провижионинга. В будущем здесь засияет Chef, но для первоначальной настройки и примера вполне достаточно обойтись простым скриптом. Предполагается, что скрипт лежит в той же папке, где и сам Vagrantfile. Возможно указать и удалённый путь, как на веб-сервере, так и на расшаренном ресурсе - не забывайте только дублировать слеши (например, \\\\server\\DevOps\\Vagrant\\provision.ps1), иначе Руби поймёт их неправильно.
config.vm.provision "shell", path: "provision.ps1"
# Параметр, определяющий, сколько секунд Vagrant будет дожидаться полной загрузки виртуалки. Поскольку у нас не линукс, то советую поставить значение минут в 5, тем более мы предварительно прошлись sysprep, так что первая загрузка длится сильно дольше последующих
config.vm.boot_timeout = 300
# Сколько секунд ждать, прежде чем машина выключиться, получив соответствующий сигнал
config.vm.graceful_halt_timeout = 180
# Vagrant умеет синхронизовать (на самом деле монтировать по SMB) каталог на гипервизоре внутрь виртуальной машины. Фича полезная и по умолчанию включённая, однако в текущей версии для гостевых ОС Windows без специальных шаманств неработающая (для Ubuntu hashicorp/precise64 всё проходит гладко), поэтому во избежание ошибки приходится её отключать
config.vm.synced_folder ".", "/vagrant", disabled: true
# Далее ковыряем настройки Hyper-V. Советую увеличить это значение, иначе вагрант может не успеть определить адрес и, соответственно, не сможет сделать провижионинг.
config.vm.provider "hyperv" do |hv|
hv.ip_address_timeout = 300
end
# Последние штрихи - указываем учётные данные, которые будут использоваться для доступа. Обычно это локальный администратор, пароль указывается в открытом виде (всё равно потом лучше его поменять).
config.winrm.username = "Administrator"
config.winrm.password = "P@$$word"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment