Vagrant

Jamais été convaincu par vagrant en tant qu'adminsys. Mais aujourdhui, ça vient de changer. Je me demandais comment popper trés rapidement un petit ensemble de VMs pour tester mes scripts de déploiment Ansible. J'ai donc besoin de pouvoir spawner quelques VMs, et les resetter simplement.

Spawner une petite architecture

Voici un Vagrantfile pour faire tout ça avec la libvirt. Ça donne un bon point de départ et on a le provisionning des VM en mode automatique :-)
Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: "echo Hello"
  config.vm.provider "libvirt"

  # App1
  config.vm.define "awg-app1" do |srv|
    srv.vm.box = "dliappis/centos7minlibvirt"
    srv.vm.hostname = "awg-app1"
    config.vm.provider :libvirt do |libvirt|
      libvirt.memory = 128
      libvirt.cpus = 1
    end
  end

  # App2
  config.vm.define "awg-app2" do |srv|
    srv.vm.box = "dliappis/centos7minlibvirt"
    srv.vm.hostname = "awg-app2"
    config.vm.provider :libvirt do |libvirt|
      libvirt.memory = 128
      libvirt.cpus = 1
    end
  end

  # Bdd1
  config.vm.define "awg-db1" do |srv|
    srv.vm.box = "dliappis/centos7minlibvirt"
    srv.vm.hostname = "awg-db1"
    config.vm.provider :libvirt do |libvirt|
      libvirt.memory = 512
      libvirt.cpus = 1
    end
  end

  # Bdd2
  config.vm.define "awg-db2" do |srv|
    srv.vm.box = "dliappis/centos7minlibvirt"
    srv.vm.hostname = "awg-db2"
    config.vm.provider :libvirt do |libvirt|
      libvirt.memory = 512
      libvirt.cpus = 1
    end
  end

  # Admin
  config.vm.define "awg-admin" do |srv|
    srv.vm.box = "dliappis/centos7minlibvirt"
    srv.vm.hostname = "awg-admin"
    config.vm.provider :libvirt do |libvirt|
      libvirt.memory = 512
      libvirt.cpus = 1
    end
  end

end

Une fois crée, vagrant up fait popper toussa :-D Easy, voila qui remplacera tous mes scripts bash :D

Détails de la procédure

Voici une procédure étape par étape:
mkdir mon_archi
cd mon_archi
On crée le fichier Vagrantfile et on le customize (cf fichier du dessus):
vim Vagrantfile
On lance l'architecture
vagrant up
vagrant ssh-config > ssh_config
On peut se connecter dessus, sans oublier de charger le fichier de conf ssh:
ssh -F ssh_config <mon_host>
Pour tout supprimer et relancer l'architecture complete:
vagrant destroy && vagrant up

Après, on peut s'amuser avec Ansible ou Puppet ;-)

Page last modified on August 20, 2015, at 05:48 PM EST