Olá a todos, criei este post para explicar o que é um Plugin no Vagrant, como instalá-los e utilizá-los correctamente no nosso ficheiro vagabundo; Este post será actualizado à medida que eu for obtendo mais informações sobre outros plugins
Para começar, vamos dar uma vista de olhos a um simples ficheiro vagabundo contendo uma caixa do Windows Server 2019:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
SHELL
Isto é apenas para lhe dar uma visão de um ficheiro vagabundo muito simples contendo apenas a caixa, o nome do vm, a memória RAM e um terminal de concha pronto a usar.
Vamos prosseguir!
Recarregar
Para que serve carga ?
Bem, usar recarregar no seu ficheiro vagabundo é o mesmo que fazer uma reinicialização na sua máquina;
Portanto, vamos colocar isto em contexto;
Digamos que instalámos Chocolatey e queremos utilizá-lo para instalar o git.
Bem, isso é fácil, mas não podemos fazê-lo de imediato porque, uma vez que o vm não foi recarregado (reiniciado), não pode ter em conta a modificação feita anteriormente;
Por isso, para corrigir isto, precisamos de adicionar um dispositivo de recarga ao nosso ficheiro vagabundo!
config.vm.provision :reload
O comando acima é o que precisamos de acrescentar ao nosso vagrantfile* mas não o podemos utilizar se não estiver instalado.
Assim, para instalar o reload* porvisionador, abrir um terminal Powershell e digitar:
vagrant plugin install vagrant-reload
Isto instalará o plugin que lhe permitirá utilizar o reload provisionador no nosso ficheiro vagabundo;
Lembra-se do nosso simples ficheiro de vagabundagem? Vamos dar uma vista de olhos ao aspecto do ficheiro vagabundo com a instalação de Chocolatey:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
SHELL
No nosso ficheiro vagabundo acima, instalamos Chocolatey. Mas, lembrem-se, queremos usá-lo para instalar as nossas ferramentas e sem recarregar o vm isto não será possível!
O que vamos fazer é, recarregar após a instalação de Chocolatey e depois de recarregar onde vai abrir um novo Provisor de terminal de Chocolatey para que possamos instalar Git usando Chocolatey;
Portanto, vamos dar uma vista de olhos ao nosso ficheiro vagabundo e ver como tudo isto funciona, colocando o Git em conjunto:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
SHELL
config.vm.provision :reload
config.vm.provision "shell", inline: <<-SHELL
choco install git -y
SHELL
Óptimo! Conseguimos a instalação do plugin e a recarga bem sucedida do nosso vm !
Tamanho do disco
Outro plugin útil é o TamanhoDisk*!
Este plugin permitir-nos-á gerir o tamanho do disco do nosso vm (todos os que usam o Vagrant sabem que esta é uma questão sensata :) )
Como vimos anteriormente, precisamos primeiro de instalar o plugin directamente na nossa máquina para o podermos utilizar no nosso ficheiro vagabundo.
Portanto, copiar colar o seguinte:
vagrant plugin install vagrant-disksize
Óptimo, o plugin está instalado e pronto para ser posto a funcionar!
Vamos ver como fica:
config.disksize.size = '40GB'
Como podem ver, quero ter um disco de 40gb de tamanho. mas onde o devemos colocar? Vamos dar uma vista de olhos a um ficheiro básico vagabundo:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end
Muito simples e básico ficheiro vagabundo, mas falta qualquer coisa! Onde está o tamanho do disco*?
Bem, uma vez que faz parte da configuração do vm, vamos colocá-lo logo após a caixa do vm:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "mcree/win2019"
config.vm.box_version = "1.0.1584095692"
wvm.disksize.size = "40GB"
config.vm.provider "virtualbox" do |v|
v.name = "Windows Server 2019"
v.memory = "2048"
end
E aí está! Pode agora criar vm's com a quantidade de tamanho de disco que desejar :)
NOTE: Se iniciar o seu vm e verificar que o seu vm de janelas não tem o tamanho de disco que atribuiu e provavelmente só tem até 20gb de tamanho de disco.
A outra quantidade não é atribuída à partição certa. Para corrigir isto, vamos digitar o seguinte comando em uma Powershell: (não se esqueça no fim da linha de comando de adicionar o seu GB, no meu caso dei 40gb por isso vou colocar 39 no fim do comando)
Resize-Partition -DriveLetter C -Size 39gb
Espero vê-lo em breve no próximo post :)