Vagrant es una herramienta increíble desarrollada por HashiCorp para crear y configurar entornos de desarrollo ligeros, reproducibles y portátiles basados en tecnología estándar de la industria y controlados por un único flujo de trabajo coherente para ayudar a maximizar la productividad y la flexibilidad.
Es como un envoltorio de nivel superior alrededor del software de virtualización como VirtualBox, VMware, KVM y Linux Containers (LXC), y alrededor del software de administración de configuración como Ansible, Chef, Salt y Puppet. Vagrant hace que sea muy fácil hacer girar máquinas virtuales locales usando VirtualBox. Utiliza el entorno de virtualización e implementa las máquinas virtuales de su elección y administra al usuario para que tenga acceso directo y administre varias máquinas virtuales encima.
En este tutorial, aprenderemos cómo crear una caja base vagabunda de CentOS 7 desde cero usando VirtualBox.
1. Instalando VirtualBox
En primer lugar, descargaremos la última versión, es decir, la caja virtual 4.3.28 para la virtualización de vagabundos. Lo descargaremos desde la página de descarga oficial de VirtualBox usando nuestro navegador web o podemos usar wget usando la terminal. Aquí, estamos ejecutando Ubuntu 14.04 en nuestra máquina host, así que vamos a descargar el paquete debian para Ubuntu.
# wget http://download.virtualbox.org/virtualbox/4.3.28/virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb
--2015-06-16 17:49:13-- http://download.virtualbox.org/virtualbox/4.3.28/virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb
Resolving download.virtualbox.org (download.virtualbox.org)... 137.254.120.26
Connecting to download.virtualbox.org (download.virtualbox.org)|137.254.120.26|:80... connected.
...
HTTP request sent, awaiting response... 200 OK
Length: 65115674 (62M) [application/x-debian-package]
Saving to: ‘virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb’
100%[===============================>] 65,115,674 36.8MB/s in 1.7s
2015-06-16 17:49:15 (36.8 MB/s) - ‘virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb’ saved
Después de descargar el archivo debian, lo instalaremos usando el administrador de paquetes dpkg.
# dpkg -i virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb
Luego, para corregir las dependencias requeridas, ejecutaremos el siguiente comando.
# apt-get -f install
2. Instalando Vagrant
Como estamos ejecutando Ubuntu 14.04 en nuestra máquina host, ahora vamos a descargar la última versión de vagrant ie 1.7.2 desde nuestra página oficial de descarga de Vagrant usando wget o usando nuestro navegador web favorito.
# wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.deb
Después de descargarlo, ahora lo instalaremos usando el administrador de paquetes dpkg.
# dpkg -i vagrant_1.7.2_x86_64.deb
Selecting previously unselected package vagrant.
(Reading database ... 117170 files and directories currently installed.)
Preparing to unpack vagrant_1.7.2_x86_64.deb ...
Unpacking vagrant (1:1.7.2) ...
Setting up vagrant (1:1.7.2) ...
3. Preparando Máquina Virtual
Descargando archivo de imagen de CentOS
Como estamos haciendo todo desde cero en este tutorial, crearemos nuestra máquina virtual mediante nuestra propia instalación y configuración en Virtual Box. Entonces, antes de comenzar a configurar la VM, necesitaremos descargar nuestro propio archivo iso de centos 7. Podemos descargarlo desde http://mirror.centos.org/centos/7/isos/x86_64/ seleccionando el espejo cercano a nuestro lugar y el archivo de imagen requerido. Aquí, descargaremos la iso mínima de CentOS 7. Ahora que nuestro archivo de imagen iso está listo, continuaremos con la creación de la máquina virtual en la caja virtual.
Creación de una máquina virtual
Ahora, lanzaremos la caja virtual que acabamos de instalar en nuestro sistema operativo host. Luego, haremos clic en Nuevo Botón. Luego le daremos a la máquina virtual un nombre como centos-7 entonces elegiremos Linux en Tipo.
Y elija Red Hat (64 bits) como versión. En Tamaño de la memoria , dejaremos RAM en 512 MB como vagabundo tiene la capacidad de cambiarlo.
Ahora, seleccionaremos Crear un disco duro virtual ahora y haz clic en Crear . Dejaremos el nombre predeterminado en Ubicación del archivo . A continuación, establezca el tamaño del archivo del disco duro en 40,00 GB. y seleccione VDI (Imagen de disco de VirtualBox) como Tipo de archivo de disco duro .
Luego seleccionaremos Asignado dinámicamente y haz clic en Crear . Viva. hemos creado con éxito la máquina virtual en nuestro Virtual Box.
Configuración adicional de la máquina virtual
Luego, para una mayor configuración, haremos clic en el nombre de la máquina virtual y luego en Configuración. . Luego ve al Almacenamiento pestaña y haga clic en Vacío justo debajo del IDE del controlador , luego, en el lado derecho de la ventana, haga clic en el icono de CD y seleccione elegir un archivo de disco de CD/DVD virtual .
4. Instalando CentOS 7 en Máquina Virtual
Finalmente, estamos listos para instalar nuestro CentOS 7 en la máquina virtual que acabamos de crear. El proceso de instalación es bastante simple y fácil como la instalación habitual y se pueden usar la mayoría de las opciones predeterminadas. También puede seguir http://linoxide.com/how-tos/centos-7-step-by-step-screenshots/ para la parte de instalación del sistema operativo.
Ahora, después de que se haya instalado el sistema operativo, configuraremos el sistema operativo para que funcione con Vagrant.
Ahora, abriremos una consola dentro de la máquina virtual e iniciaremos sesión como root.
Como eth0 está deshabilitado de manera predeterminada, tendremos que recuperarlo.
# ifup eth0
Ahora, instalaremos algunos paquetes adicionales como openssh, nano, ntp, curl desde el repositorio usando el administrador de paquetes yum.
# yum install -y openssh-clients nano wget ntp curl
Luego, habilitaremos el servicio ntpd para que se inicie en cada arranque.
# chkconfig ntpd on
Después de eso, estableceremos la hora desde el servidor time.nist.gov.
# service ntpd stop
# ntpdate time.nist.gov
# service ntpd start
Ahora, habilitaremos el servicio ssh para que se inicie en el arranque para que podamos acceder a la máquina tan pronto como se inicie.
chkconfig sshd on
Deshabilitaremos los servicios iptables e ip45.55.88.66tables para que no se inicien en el arranque.
# chkconfig iptables off
# chkconfig ip6tables off
Luego configuraremos SELinux como permisivo.
# sed -i -e 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
Después de eso, agregaremos un nuevo usuario llamado vagabundo para que podamos usarlo usando vagabundo.
# useradd vagrant
Ahora, crearemos la carpeta .ssh del usuario vagabundo para que las claves ssh y la información se almacenen allí.
# mkdir -m 0700 -p /home/vagrant/.ssh
Si queremos usar nuestra propia clave pública/privada SSH, crearemos una clave pública/privada SSH en nuestra estación de trabajo y copiaremos la clave pública en /home/vagrant/.ssh/authorized_keys en la máquina virtual.
De lo contrario, si queremos usar la clave pública/privada SSH proporcionada por Vagrant, simplemente podemos ejecutar el siguiente comando:
# curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
Ahora, querremos cambiar los permisos en los archivos authorized_keys para que sean más restrictivos con chmod
# chmod 600 /home/vagrant/.ssh/authorized_keys
Luego, arreglaremos la propiedad de la carpeta .ssh para el usuario y grupo vagabundo usando chown.
# chown -R vagrant:vagrant /home/vagrant/.ssh
Ahora, aquí está el principal cambio importante que debemos hacer, necesitaremos comentar requiretty en /etc/sudoers. Este cambio es importante porque permite que ssh envíe comandos remotos usando sudo. Si esto no se hace, Vagrant no podrá aplicar los cambios al inicio. Esto se puede hacer ejecutando el siguiente comando.
# sed -i 's/^\(Defaults.*requiretty\)/#\1/' /etc/sudoers
Permitiremos que el usuario vagabundo use sudo sin ingresar una contraseña ejecutando el siguiente comando.
# echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Luego abriremos /etc/sysconfig/network-scripts/ifcfg-eth0 y haz que se vea exactamente como el siguiente
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
Ahora, elimine las reglas de red persistentes de udev archivo usando el comando rm.
# rm -f /etc/udev/rules.d/70-persistent-net.rules
Ahora vamos a limpiar yum usando el siguiente comando.
# yum clean all
Ahora, eliminaremos el tmp directorio y límpielo.
# rm -rf /tmp/*
Luego limpie los registros de los últimos usuarios conectados.
# rm -f /var/log/wtmp /var/log/btmp
Limpiaremos el historial.
# history -c
Después de eso, apagaremos la máquina virtual.
# shutdown -h now
Una vez que la máquina virtual se apague, haremos clic en Configuración para la máquina virtual. Luego ve al Almacenamiento luego seleccione Controlador IDE y haga clic en el cuadrado verde con el ícono menos rojo en la esquina inferior derecha de la sección Árbol de almacenamiento de la pestaña Almacenamiento. Luego haga clic en Aceptar para cerrar el menú Configuración. Después de eso, iremos a crear el Vagrant Box.
5. Creando Caja Vagrant
Asegúrese de que el valor de la base el interruptor de línea de comando coincide con el nombre de la máquina virtual en VirtualBox:
# vagrant package --output centos-7.box --base centos-7
6. Agregando la Caja Vagrant
Agregue el Vagrant Box recién creado a Vagrant (esto copiará el Vagrant Box a otra ubicación):
# vagrant box add centos-7 centos-7.box
Además, la máquina virtual VirtualBox se puede eliminar.
7. Creación de un proyecto de Vagrant y configuración de Vagrantfile
Se pueden crear tantos Proyectos Vagrant como queramos. Cada uno contendrá diferentes Vagrantfiles que contienen la definición del Proyecto Vagrant y diferentes máquinas virtuales. Para hacerlo, crearemos un directorio llamado vagabundo en el directorio linoxide para almacenar el Vagrantfile y las máquinas virtuales asociativas.
# mkdir -p ~/linoxide/vagrant
# cd ~/linoxide/vagrant
Ahora, crearemos el Vagrantfile de la siguiente manera.
# vagrant init centos-7
Ahora tenemos un archivo Vagrant que apunta al cuadro base centos-7 que acabamos de crear arriba. Si usamos nuestra propia clave pública/privada SSH, y no la clave pública/privada SSH proporcionada por Vagrant, debemos decirle a Vagrantfile dónde encontrar la clave privada SSH. Para hacerlo, necesitaremos agregar lo siguiente dentro del Vagrantfile que acabamos de crear.
# nano Vagrantfile
config.ssh.private_key_path = "~/.ssh/id_rsa"
Si no desea compartir carpetas entre su máquina virtual y el sistema operativo host, simplemente desactívelo agregando lo siguiente a su Vagrantfile.
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
8. Comenzando vagabundo
Ahora, como hemos realizado todos los pasos anteriores por completo, finalmente querremos ejecutar nuestra primera máquina virtual vagabunda lista para usar. Para ejecutar nuestra máquina virtual vagabunda con sistema operativo centos 7, solo necesitaremos ejecutar el siguiente comando.
# vagrant up
Si todo fue increíble como se esperaba, deberíamos poder ver nuestro cuadro vagabundo en ejecución mientras ejecutamos el comando de estado vagabundo.
# vagrant status
Si queremos entrar en el cuadro vagabundo y queremos controlar la máquina virtual, simplemente ejecutaremos vagrant ssh
# vagrant ssh
Una vez que hayamos terminado con nuestro trabajo y queramos eliminar o destruir nuestro cuadro virtual vagabundo en ejecución, simplemente podemos ejecutar vagabundo destruir que destruirá eso.
# vagrant destroy
Conclusión
Finalmente, hemos creado nuestra caja Vagrant con CentOS 7 desde cero usando Virtual Box. Este artículo nos facilita la creación de una caja de Vagrant si ya tiene un archivo de imagen de centos 7, un DVD o una máquina virtual y no quiere descargar la imagen de la caja de centos 7 para vagrant. Este método también lo ayuda a crear el cuadro Vagrant si no tiene una conexión a Internet disponible en ese momento pero tiene una imagen o DVD de CentOS 7.
El tutorial anterior es realmente una guía simple y fácil de hacer para crear nuestro cuadro base vagabundo de Centos 7 desde cero, incluso podemos crear un cuadro vagabundo de cualquier distribución de Linux con pasos similares a los anteriores. Por lo tanto, si tiene alguna pregunta, comentario, comentario, escriba en el cuadro de comentarios a continuación y háganos saber qué cosas deben agregarse o mejorarse.