From Mageia wiki
Jump to: navigation, search


Synopsis:
Vagrant is a tool using virtual machine as box image.

You can install Vagrant on Windows, Mac or Linux.

Installation

Based on your preferences you can install vagrant either with urpmi or dnf from Mageia repositories.

For installation with urpmi:

# urpmi vagrant

For installation with dnf:

# dnf install vagrant

Current Mageia version of Vagrant is 2.3.7 and latest upstream version available is 2.4.1

An image has been created named defwxyz/mageia8, there.

Basic usage

You can start a VirtualBox machine with the following Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "defwxyz/mageia8"
  #config.vm.box_version = "0.1.1"
  config.vm.provider "virtualbox" do |v|
    v.name = "merlin"
    v.memory = 1024
    v.cpus = 1
  end
end

Then inside the folder where Vagrantfile is located, say:

vagrant up

And it starts to construct your virtual machine.

Then you type

vagrant ssh

Ansible provisioning

In order to use ansible_local provisioning, we need to first install Ansible. (This is usually done by Vagrant but this is a missing brick for Mageia.)

So here is an example to do it:

$ cat Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "defwxyz/mageia8"
  #config.vm.box_version = "0.1.1"
  config.vm.provision "shell", inline: "urpmi --auto ansible"
  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "playbook.yml"
  end
end

$ cat playbook.yml
- hosts: all
  connection: local
  tasks:
    - name: "display facts"
      debug:
        var: ansible_facts

Docker provisioning

To use Docker provisioning, we need a supplementary step. (the capability is not yet available for Mageia in Vagrant)

For instance you can use the following Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "defwxyz/mageia8"
  #config.vm.box_version = "0.1.1"
  config.vm.provision "shell", inline: "sudo dnf -y install docker; sudo systemctl enable --now docker"
  config.vm.provision "docker" do |d|
    d.run "redis"
  end
end

It will start a Redis Docker image inside the newly created Mageia vm.

Notes on vagrant image

VagrantImageBox