Para provisionar una máquina virtual usaré la herramienta Vagrant.
Una vez instalada, para crear una máquina con una configuración sencilla, solo hay que indicar vagrant init <imagen_box>
. En mi caso usaré una
imagen minimal de Ubuntu server.
vagrant init aspyatkin/ubuntu-18.04-server
Esto creará el siguiente Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
end
Con el que podemos levantar la máquina con:
vagrant up
una vez creada se podrá conectar a ella a través de:
vagrant ssh
Para descargar el repositorio del proyecto de la asignatura he creado un playbook.yml con el que instalo git y clono el repositorio de la asignatura:
---
- hosts: ejerbox
become: yes
tasks:
- name: Instalar git
apt:
name: git
- name: Clonar repositorio
git:
repo: https://github.com/toniMR/CC-GestionPedidos.git
dest: CC-GestionPedidos.git
Además he tenido que modificar el Vagrantifle:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.define "ejerciciosbox" do |gestionpedidos|
config.vm.provision "ansible" do |ansible|
ansible.inventory_path = "ansible_hosts.ini"
ansible.playbook = "playbook.yml"
end
end
end
Y también he tenido que añadir el archivo ansible_host.ini
# Máquina virtual
[ejerbox]
ejerciciosbox ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
Si la máquina ya está creada solo tendremos que indicar para provisionar la máquina:
vagrant provision
Si no, realizando vagrant up
levantará la máquina y la provisionará automáticamente automáticamente.
Como se puede observar, accediendo a la máquina con ssh, el repositorio está clonado en la máquina: