|
Vangrant
Es una herramienta que simplifica el trabajo para ejecutar y gestionar máquinas virtuales creada por Hashicorp
|
|
Vangrantfile
En este fichero está guardada la configuración de las MVs usadas
|
|
Atlas
Servicio usado por Vangrant para descargar 'base boxes'
|
|
Packer
Herramienta de línea de comandos que automatiza la creación de MVs con distintos sistemas y proveedores
|
|
Boxes
Vagrant utiliza imágenes preconstruidas de máquinas virtuales llamadas "cajas" (boxes)
|
|
$ vagrant --version
|
consultar la versión
|
|
$ export VAGRANT_HOME= /ruta/al/directorio
|
configuración
|
|
$ vagrant | $ vagrant -h
|
ayuda
|
|
$ vagrant init
|
crear Vagrantfile
|
|
Especificar la box a utilizar
config.vm.box = "ubuntu/bionic64"
|
|
Definir el nombre de la MV
config.vm.define "mi_vm"
|
|
Modificar RAM y nº de núcleos
config.vm.provider "virtualbox" do |vb| vb.memory = 1024 vb.cpus = 2 end
|
|
Configuración de red
config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "private_network", type: "dhcp"
|
|
Entorno gráfico
vb.gui = true
|
|
Configurar un disco
vb.customize ['createhd', '--filename', 'additional_disk.vdi', '--size', 500 * 1024] vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', 'additional_disk.vdi']
|
|
$ vagrant box add [nombre] [URL o ruta local]
|
agregar un nuevo box a Vagrant
|
|
$ vagrant box list
|
mostrar la lista de boxes instaladas
|
|
$ vagrant box remove [nombre]
|
eliminar un box específico
|
|
$ vagrant box update
|
actualizar las boxes si es necesario
|
|
$ vagrant box outdated
|
mostrar la lista de las actualizaciones requeridas
|
|
$ vagrant box repackage [nombre] [versión]
|
empaquetar una box existente en una nueva versión
|
/.vagrant.d/boxes/VirtualBox VMs/config.vm.synced_folder "." , "/vagrant" ,
type: "virtualbox"|
$ vagrant up
|
iniciar la máquina virtual
|
|
$ vagrant halt [ID]
|
detener la máquina virtual
|
|
$ vagrant destroy [ID]
|
eliminar la máquina virtual
|
Vagrant.configure( "2" ) do |config|
config.vm.define "ubuntu" do |ubuntu|
ubuntu.vm.box = "bento/ubuntu-16.04"
end
config.vm.define "ubuntu" do |debian|
debian.vm.box = "debian/jessie64"
end
endVagrant.configure( "2" ) do |config|
config.vm.define "nodo1" do |nodo1|
nodo1.vm.box = "centos/7"
nodo1.vm.hostname = 'nodo1'
nodo1.vm.network "public_network",
ip: "192.168.1.24"
end
end|
Creación de la imagen:
|
|
|
$ mkdir box-factory
$ cd box-factory |
creación del directorio
|
|
$ vagrant init -m ubuntu/trusty32
|
iniciar nuevo proyecto en una imagen existente
|
|
$ vagrant up
|
levantar máquina virtual
|
|
$ vagrant ssh
$ jeky11 --version $ vagant package --output box-jeky11.box |
iniciar sesión ssh
comprobar versión crear la imagen de la máquina virtual |
|
Gestión de imágenes:
|
|
|
$ vagrant box list
|
consultar la lista de boxes (imágenes)
|
|
$ vagrant box add [nombre] [Direccion]
|
añadir una nueva imagen al sistema
|
|
$ vagrant box remove [nombre]
|
eliminar una imagen del sistema
|
|
$ git clone https://github.com/chef/bento.git
$ cd bento |
|
|
$ packer build --only=virtualbox-iso ubuntu-14.04-i386.json
|
construir la imagen de Ubuntu para VirtualBox
|
|
Al descargar una imagen de una fuente no fiable para crear una máquina virtual
|
|
|
$ vagrant box add [nombre] [URL o ruta local]
|
agregar una box a Vagrant
|
|
$ vagrant box list
|
lista de boxes instaladas
|
|
$ vagrant box remove [nombre]
|
eliminar una box
|
|
Vagrant por defecto redirige solo un puerto, el SSH, desde el sistema invitado y no debe exponer otros servicios a la red
|
|
|
$ config.vm.network :forwarded_port, guest: [puerto_invitado], host: [puerto_anfitrión], host_ip: "127.0.0.1"
|
configurar la redirección de puertos para el sistema invitado en el archivo Vagrantfile
|
|
Las credenciales predeterminadas de Vagrant, como el usuario "vagrant" con permisos de sudo, pueden ser un riesgo de seguridad si no se cambian.
|
|
|
$ vagrant ssh
|
iniciar una sesión SSH en la máquina virtual utilizando las credenciales predeterminadas
|
|
$ passwd
|
modificar la contraseña del usuario "vagrant" en la máquina virtual
|
|
Todas las imágenes descargadas de Internet incluyen las mismas llaves RSA, lo que puede representar un riesgo si no se cambian.
|
|
|
$ vagrant ssh
|
iniciar una sesión SSH en la máquina virtual utilizando las llaves predeterminadas.
|
|
$ vagrant ssh
$ ruby app.rb -o 0.0.0.0 & $ logout |
iniciar el servidor HTTP
|
|
config.vm.network :forwarded_port, guest: 4567, host: 9090, host_ip: "127.0.0.1"
|
si el puerto está ocupado en nuestro sistema, hay que cambiarlo en el fichero Vagrantfile
|
|
$ vagrant reload
|
aplicar los cambios
|
|
Para acceder remotamente lo haremos mediante el SSH
|
|
cp -r /home/vagrant/.ssh/ /root/
chown -R root.root /root/.ssh/ |
|
Modificar el usuario SSH en Vagrantfile:
config.ssh.username = "root" |
|
Usar Ansible para ejecutar comandos en máquinas Vagrant habilitadas con sudo
|
|
ansible -vv all -m command -a "id" -u vagrant --private-key /ruta/a/la/clave/privada -b --become-method sudo -e "ansible_become_pass=contraseña"
|
|
ansible -vv all -m command -a "id" -u vagrant --private-key /ruta/a/la/clave/privada -b
|
No comments yet.
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.