Aquesta és una revisió antiga del document
Sesión 5
Vagrant
vagrant init
vagrant init hashicorp/precise64
vagrant up
vagrant ssh
- ubicación imágenes vagrant: $HOME/.vagrand.d/boxes
vagrant box list
ejemplos
apache+php
- Vagrantfile
Vagrant.configure(2) do |config| # config.vm.box = "debian/jessie64" config.vm.box = "hashicorp/precise64" config.vm.hostname = "apachephp" config.vm.provision "shell", path: "install.sh" # config.vm.network :private_network, ip: "192.168.100.10" # only host # config.vm.network :public_network, ip: "192.168.100.20" # config.vm.network :public_network,:bridge=>"eth0" config.vm.network :forwarded_port, guest: 80, host: 8080 config.vm.synced_folder ".","/var/www" # config.vm.provider "virtualbox" do |vb| # vb.name = "apachephp" # vb.memory = 1024 # vb.cpus = 1 # vb.linked_clone = true # vb.gui = true # end end
- install.sh
sudo apt-get update sudo apt-get -y install apache2 libapache2-mod-php5 #rm /var/www/index.html
apache+mysql
habría que configurar el MYSQL para permitir conexiones y configurar user/pass, no era el objetivo de la práctica
- Vagrantfile
$mi_script=<<SCRIPT apt-get -y update apt-get -y install apache2 mysql-client SCRIPT $otro_script=<<SCRIPT apt-get -y update apt-get -y install default-mysql-server SCRIPT $otro_script=<<SCRIPT apt-get -y install php7.0 SCRIPT Vagrant.configure(2) do |config| config.vm.define "apache" do |config| config.vm.box = "debian/stretch64" config.vm.hostname = "apachefrontal" config.vm.network "private_network", ip: "10.0.7.11" config.vm.provision "shell", inline: $mi_script config.vm.synced_folder ".", "/vagrant", disabled: true end config.vm.define "mysql" do |config| config.vm.box = "debian/stretch64" config.vm.hostname = "mysqlbackend" config.vm.network "private_network", ip: "10.0.7.12" config.vm.provision "shell", inline: $otro_script config.vm.provision "shell", inline: $tercero config.vm.synced_folder ".", "/vagrant", disabled: true end end
swarm 3 nodos docker
hay que buscar una imagen que permita compartir de manera sincronizada una carpeta entre los 3 nodos para compartir la información de unirse al swarm (o NFS)
- Vagrantfile
$docker = <<SCRIPT apt-get -y update apt-get -y install curl apt-transport-https curl -s https://get.docker.com | bash usermod -aG docker vagrant SCRIPT $swarminit = <<SCRIPT docker swarm init --advertise-addr 10.0.7.11 docker swarm join-token manager | grep swarm | tail -1 > /vagrant/jointoken.txt SCRIPT $swarmjoin = <<SCRIPT bash /vagrant/jointoken.txt SCRIPT Vagrant.configure(2) do |config| config.vm.define "swarm1" do |config| config.vm.box = "debian/stretch64" config.vm.hostname = "swarm1" config.vm.network "private_network", ip: "10.0.7.11" config.vm.provision "shell", inline: $docker config.vm.provision "shell", inline: $swarminit # config.vm.synced_folder ".", "/vagrant", disabled: true end config.vm.define "swarm2" do |config| config.vm.box = "debian/stretch64" config.vm.hostname = "swarm2" config.vm.network "private_network", ip: "10.0.7.12" config.vm.provision "shell", inline: $docker config.vm.provision "shell", inline: $swarmjoin # config.vm.synced_folder ".", "/vagrant", disabled: true end config.vm.define "swarm3" do |config| config.vm.box = "debian/stretch64" config.vm.hostname = "swarm3" config.vm.network "private_network", ip: "10.0.7.13" config.vm.provision "shell", inline: $docker config.vm.provision "shell", inline: $swarmjoin # config.vm.synced_folder ".", "/vagrant", disabled: true end end