Skip to content

Instantly share code, notes, and snippets.

@andreztz
Forked from guilhermewop/vagrant.md
Created September 6, 2016 21:33
Show Gist options
  • Select an option

  • Save andreztz/91c85edabdb0d5a087e52eceacb4db22 to your computer and use it in GitHub Desktop.

Select an option

Save andreztz/91c85edabdb0d5a087e52eceacb4db22 to your computer and use it in GitHub Desktop.
vagrant instructions

Vagrant

Instalação do Vagrant

http://files.vagrantup.com/packages/7ec0ee1d00a916f80b109a298bab08e391945243/vagrant_1.2.7_i686.deb

Instalação do VirtualBox

http://download.virtualbox.org/virtualbox/4.2.16/virtualbox-4.2_4.2.16-86992~Ubuntu~precise_amd64.deb

Base box padrão

A base box padrão do vagrant é uma distribuição Linux Ubuntu 12.04 LTS 32-bit:

vagrant box add precise32 http://files.vagrantup.com/precise32.box
vagrant init precise32
vagrant up

Para atualizar a distribuição:

vagrant ssh
do-release-upgrade

Após a atualização, é necessário recompilar o Guest Additions:

sudo apt-get install build-essential linux-headers-$(uname -r)
sudo /etc/init.d/vboxadd setup
sudo reboot

Para acesso à máquina virtual a partir de um host Windows, utiliza-se o PuTTY como cliente de SSH. Porém, é necessário converter a chave privada `` SSH para o formato .ppk com o PuTTY Key Generator:

  • Executar o puttygen.exe
  • Conversions > Import key
  • Selecionar o arquivo C:/Users/nsobrenome/.vagrant.d/insecure_private_key
  • Save private key > Yes
  • Gravar o arquivo C:/Users/nsobrenome/.vagrant.d/insecure_private_key.ppk

Atualizando o Guest Additions

vagrant ssh
wget http://download.virtualbox.org/virtualbox/4.2.16/VBoxGuestAdditions_4.2.16.iso
sudo mount VBoxGuestAdditions_4.2.16.iso -o loop /mnt

sudo apt-get install build-essential linux-headers-$(uname -r)

cd /mnt
sudo sh VBoxLinuxAdditions.run --nox11

Criação de uma base box

mkdir myubuntubox
cd myubuntubox

git clone https://github.com/jedi4ever/veewee.git
cd veewee
gem install bundler
bundle install

vagrant basebox define myubuntubox ubuntu-12.04.1-server-amd64

mkdir iso
cd iso
wget http://mirror.globo.com/ubuntu/releases//precise/ubuntu-12.04.1-server-amd64.iso
wget http://download.virtualbox.org/virtualbox/4.2.16/VBoxGuestAdditions_4.2.16.iso
cd ..

vagrant basebox build myubuntubox
vagrant basebox validate myubuntubox
vagrant basebox export myubuntubox

unalias vagrant

Instalação da base box

vagrant box add development myubuntubox.box

mkdir myproject
cd myproject

vagrant init development
vagrant up

Na versão atual do veewee existe um bug no postinstall.sh durante a configuração do arquivo /etc/sudoers. Para corrigir:

vagrant ssh
sudo sed -ri -e 's/(%sudo\s+ALL=\(ALL:ALL\))\s+ALL/\1 NOPASSWD: ALL/' /etc/sudoers
reboot

Empacotamento

cp Vagrantfile Vagrantfile.pkg
vagrant package --vagrantfile Vagrantfile.pkg

Apache

sudo echo "ServerName localhost" >> /etc/apache2/httpd.conf
sudo sed -ri -e 's/(export\s+APACHE_RUN_(USER|GROUP))=www-data/\1=vagrant/' /etc/apache2/envvars
# /etc/apache2/sites-available/vagrant

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /vagrant/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /vagrant/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /vagrant/log/error.log
    LogLevel warn
    CustomLog /vagrant/log/access.log combined
</VirtualHost>
sudo a2dissite default
sudo a2ensite vagrant
sudo service apache2 restart

MySQL

sudo sed -ri -e 's/(bind-address.*)/;\1/' /etc/mysql/my.cnf
sudo sed -ri -e 's/(skip-external-locking.*)/;\1/' /etc/mysql/my.cnf

sudo service mysql restart

Para garantir acesso a partir da máquina hospedeira:

hostaddr=$(route -v | grep default | sed -e 's/default\s\+\([^[:space:]]\+\).*/\1/g')
mysql -uroot -hlocalhost -e "GRANT ALL PRIVILEGES ON *.* TO 'development'@'$hostaddr'"

Para conectar a partir da máquina hospedeira:

mysql -udevelopment -hlocalhost --protocol=tcp

Em determinados casos não é possível definir o protocolo de conexão para scripts na máquina hospedeira, portanto estes deverão ser executados diretamente na máquina virtual.

Referências

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment