Ferramentas do usuário

Ferramentas do site


vagrant:create_box

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
vagrant:create_box [2014/07/25 17:16] Édson Kuzniewskivagrant:create_box [2022/05/25 16:24] (atual) – edição externa 127.0.0.1
Linha 1: Linha 1:
 ====== Links para ver ====== ====== Links para ver ======
 +[[http://aruizca.com/steps-to-create-a-vagrant-base-box-with-ubuntu-14-04-desktop-gui-and-virtualbox/]]\\
 +[[https://stackmachine.com/blog/building-a-vagrant-base-box-with-packer]]\\
 +[[https://docs.vagrantup.com/v2/virtualbox/configuration.html]]
  
-[[https://github.com/fespinoza/checklist_and_guides/wiki/Creating-a-vagrant-base-box-for-ubuntu-12.04-32bit-server]]\\ +====== Create a BOX ====== 
-[[https://github.com/ckan/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box]]\\ +{{:vagrant:virtualbox-settings.png?nolink&400|}}\\ 
-[[http://aruizca.com/steps-to-create-a-vagrant-base-box-with-ubuntu-14-04-desktop-gui-and-virtualbox/]]+set **USER** and **PASSWORD** define ''vagrant''\\ 
 +set **PASSWORD** root define ''vagrant'' 
 +<code> 
 +   $ sudo apt-get install dkms 
 +   $ sudo apt-get install -y build-essential linux-headers-server 
 +</code> 
 +{{:vagrant:vitualbox-guest-addtions.png?nolink&400|}} 
 +<code> 
 +$ sudo mount /dev/cdrom /media/cdrom 
 +$ sudo /media/cdrom/VBoxLinuxAdditions.run 
 +$ sudo umount /media/cdrom 
 +$ sudo apt-get clean
  
-====== Create BOX ======+$ sudo /etc/init.d/vboxadd setup 
 +$ sudo apt-get update -y 
 +</code>
  
-[[http://blog.eriksen.com.br/pt-br/criando-boxes-vagrant-customizados-com-veewee|Criando boxes Vagrant customizados com o Veewee]]+===== Add the vagrant user to sudoers file ===== 
 +<code> 
 +$ sudo echo "vagrant ALL=NOPASSWD:ALL" >> /etc/sudoers.d/vagrant 
 +$ sudo chmod 0440 /etc/sudoers.d/vagrant 
 +</code>
  
-Eu já falei um pouco sobre o Vagrant e sobre a filosofia DevOpsNo post sobre Vagrant mostrei como usar um box Ubuntu publicamente disponível e quão fácil é usar um provisionador shell para configurar um box LAMP básico.+===== Install Vagrant Public Keys ===== 
 +<code> 
 +$ mkdir ~/.ssh 
 +$ wget -qO- https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub >> ~/.ssh/authorized_keys
  
-Então eu disse que existem boxes publicamente disponíveis mas omiti o site [[http://www.vagrantbox.es/|Vagrant boxes]]. Por que da omissão? Simplesmente eu não os acho tão úteis e acho que as desvantagens superam os benefícios. Pegar um box que você não sabe como foi coonfigurado por levar a sérios problemas de segurança. E se o box é apenas uma instalação básica, é quase sem real utilidade já que você precisará fazer o provisionamento da sua configuração desejada a cada vez que iniciar uma VM baseada no box.+# Ensure we have the correct permissions set 
 +$ chmod 0700 /home/vagrant/.ssh 
 +$ chmod 0600 /home/vagrant/.ssh/authorized_keys 
 +$ chown -R vagrant /home/vagrant/.ssh 
 +</code>
  
-E por que não criar um box base? Veewee ao resgate! +===== Install OpenSSH Server =====
- +
-===== Veewee ===== +
- +
-O [[https://github.com/jedi4ever/veewee|Veewee]] é uma ferramenta para criar boxes Vagrant e imagens KVM, VirtualBox e Fusion facilmente. Mãos a obra, vamos abrir um terminal. Você precisará ter o [[http://rubygems.org/pages/download|RubyGems instalado]] na sua máquina para instalar o Veewee. Leia o post sobre o [[http://blog.eriksen.com.br/pt-br/fuja-user-space-usando-vagrant-configurar-ambientes-desenvolvimento#instalacao|Vagrant]] para ver como instalá-lo. Vamos instalar a última versão alpha disponível (observação: os seguintes comandos foram testados em um velho e bom MacOS X Leopard). +
- +
-<code>$ sudo gem install veewee --pre</code> +
- +
-==== ERRO 1 ====+
 <code> <code>
-$ sudo gem install veewee --pre +$ sudo apt-get install -y openssh-server 
-ERROR:  While executing gem ... (Gem::DependencyError) +$ sudo vi /etc/ssh/sshd_config
-    Unable to resolve dependencies: veewee requires net-ssh (~> 2.2.0); fog-core requires net-ssh (>= 2.1.3); net-scp requires net-ssh (>= 2.6.5)+
 </code> </code>
- +==== Ensure the following is set ====
-=== Correção ===+
 <code> <code>
-$ sudo gem install net-scp+Port 22 
 +PubKeyAuthentication yes 
 +AuthorizedKeysFile %h/.ssh/authorized_keys 
 +PermitEmptyPasswords no
 </code> </code>
-e tente novamente 
- 
-==== ERRO 2 ==== 
 <code> <code>
-Building native extensions.  This could take a while... +$ sudo service ssh restart 
-ERROR:  Error installing veewee: +</code>
- ERROR: Failed to build gem native extension.+
  
-        /usr/bin/ruby1.9.1 extconf.rb +===== GRUB ===== 
-/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError+Run Gedit as root (gksu gedit).\\ 
- from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' +\\ 
- from extconf.rb:1:in `<main>' +Open ''/etc/default/grub'' and locate the following lines:\\ 
- +<code
- +GRUB_HIDDEN_TIMEOUT=0 
-Gem files will remain installed in /var/lib/gems/1.9.1/gems/gherkin-2.12.2 for inspection. +GRUB_HIDDEN_TIMEOUT_QUIET=true
-Results logged to /var/lib/gems/1.9.1/gems/gherkin-2.12.2/ext/gherkin_lexer_ar/gem_make.out+
 </code> </code>
-=== Correção ===+Change the values as follows:
 <code> <code>
-$ sudo apt-get install ruby-dev +GRUB_HIDDEN_TIMEOUT=10 
-$ sudo gem install hpricot +GRUB_HIDDEN_TIMEOUT_QUIET=false
-$ sudo gem install optiflag+
 </code> </code>
 +Save and run ''sudo update-grub'' from your terminal and ''reboot''.
  
-Veewee vem com muitos templates de sistemas operations que você pode usar para criar seu box base Vagrant ou imagem de VM (e é por isso que usamos a última versão alpha já que contém templates atualizados para os principais sistemas operacionais). Você pode listar os templates disponíveis usando o seguinte comando: +===== Create Vagrant Base Box ===== 
- +Asuming you already have Vagrant installed in the host systemjust run the following command:
-<code>$ vagrant basebox templates | sort</code> +
-Existem templates para distros Linux populares (Debian, Ubuntu, CentOS, Scientific Linux), alguns sabores Unix (Solaris, FreeBSD) e até mesmo a preview release 8 do Windows. Vamos criar um box Debian. Primeiro, vamos definir o nosso box base com o nome 'squeeze64-lamp' usando o Debian 6.0.4 AMD64. +
- +
-<code>$ mkdir -p ~/Dev/veewee/squeeze/amd64 +
-$ cd ~/Dev/veewee/squeeze/amd64 +
-$ vagrant basebox define squeeze64-lamp Debian-6.0.4-amd64-netboot +
-[vagrant] The basebox 'squeeze64-lamp' has been succesfully created from the template 'Debian-6.0.4-amd64-netboot' +
-[vagrant] You can now edit the definition files stored in definitions/squeeze64-lamp or build the box with: +
-[vagrant] vagrant basebox build 'squeeze64-lamp'</code> +
-Nós podemos ver alguns arquivos no diretório definitions/squeeze64-lamp que são usados para instalar o software necessário para um box base Vagrant: +
- +
-<code>$ ls definitions/squeeze64-lamp/ +
-base.sh       cleanup-virtualbox.sh definition.rb      puppet.sh       vagrant.sh        zerodisk.sh +
-chef.sh       cleanup.sh            preseed.cfg        ruby.sh         virtualbox.sh</code> +
-O principal arquivo aqui é o definition.rb. Ele tem um hash com algumas definições da VM VirtualBox (como o número de CPUs e tamanhos de memória e disco)definições de boot e do Kickstart - que são usadas para automatizar a instalação do sistema operacional - e os arquivos de pós-instalação. Vamos configurar o mesmo box LAMP do post sobre [[http://blog.eriksen.com.br/pt-br/fuja-user-space-usando-vagrant-configurar-ambientes-desenvolvimento#provionamento-lamp|Vagrant]]. Faça o download ou clone o repositório Git [[https://github.com/eriksencosta/vagrant-shell-scripts|vagrant-shell-scripts]] e altere os arquivos de pós-instalação em definitions.rb usando o seguinte trecho:+
 <code> <code>
-:postinstall_files =[ +$ vagrant package –-base <VitualBox VM Name
-  "base.sh", +</code> 
-  "vagrant.sh", +==== Install the box ==== 
-  "virtualbox.sh", +<code> 
-  "ruby.sh", +vagrant box add {boxname} package.box 
-  "puppet.sh", +</code> 
-  "chef.sh", +==== Init a Vagrant Box by referencing the Base one we have created ==== 
-  "dotdeb.sh", +<code> 
-  "db-mysql.sh", +$ vagrant init {boxname} 
-  "dev-tools.sh", +</code> 
-  "php5.sh", +==== Edit the generated Vagrantfile by uncommenting the following lines ==== 
-  "php5-qa.sh", +To show window VM 
-  "php5-tools.sh"+<code> 
-  "drush.sh", +config.vm.provider "virtualbox" do |v| 
-  "cleanup-virtualbox.sh", +v.gui = true 
-  "cleanup.sh", +end 
-  "zerodisk.sh" +</code> 
-],</code> +==== Spin it up! ==== 
-Dica: coloque seus arquivos de pós-instalação após o arquivo base.sh e antes do arquivo cleanup.sh.+<code> 
 +$ vagrant up 
 +</code>
  
-Com tudo no lugar, cria seu box! Isto pode levar algum tempo já que será feito o download do Virtual Box Guest Additions e da imagem ISO do sistema operacional (mas apenas para primeira vez).+==== ERROR ==== 
 +<file sh ifup_eth1> 
 +ERROR: 
 +The following SSH command responded with non-zero exit status. 
 +Vagrant assumes that this means the command failed! 
 +/sbin/ip addr flush dev eth1 2> /dev/null 
 +Stdout from the command: 
 +Stderr from the command: 
 +stdin: is not a tty
  
-<code>$ vagrant basebox build squeeze64-lamp</code> +SOLUTION
-Após criar o box, valide-o+Ssh into the machine 
- +Delete the file /etc/udev/rules.d/70-persistent-net.rules 
-<code>$ vagrant basebox validate squeeze64-lamp</code> +Exit the machine 
-Com os testes ok, exporte seu box: +Do a "vagrant reload" 
- +I think that does the trick =] 
-<code>$ vagrant basebox export squeeze64-lamp</code> +</file>
-Agora você tem um box base Vagrant customizado ao qual pode distribuir para o seu time de TIApenas adicione-o no Vagrant e comece a usá-lo! +
- +
-<code>vagrant box add squeeze64-lamp squeeze64-lamp.box +
-$ vagrant init squeeze64-lamp +
-$ vagrant up +
-$ vagrant ssh</code>+
vagrant/create_box.1406319417.txt.gz · Última modificação: 2022/05/25 16:25 (edição externa)