\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Trash (1101trash)} \pdfinfo{ /Title (vagrant.pdf) /Creator (Cheatography) /Author (Trash (1101trash)) /Subject (Vagrant Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{3363A3} \definecolor{LightBackground}{HTML}{F2F5F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Vagrant Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Trash (1101trash)} via \textcolor{DarkBackground}{\uline{cheatography.com/168264/cs/35182/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Trash (1101trash) \\ \uline{cheatography.com/1101trash} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 3rd November, 2022.\\ Updated 3rd November, 2022.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Definiciones, preguntas y respuestas}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{¿Qué es Vagrant?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}{\bf{Gestor de virtualización}} que permite la {\bf{manipulación de máquinas virtuales}} (crearlas, configurarlas, modificarlas, borrarlas...).} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{¿Dónde puedo instalar Vagrant?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Desde la página oficial} \tn % Row Count 6 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{¿Requisitos?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Activar Hyper-V y TPM2.0 en el equipo (añadiendo Vagrand al PATH de Windows con el comando export en Ubuntu)} \tn % Row Count 10 (+ 4) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{} \tn % Row Count 10 (+ 0) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Boxes:}}} \tn % Row Count 11 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{¿Qué es una BOX?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Un paquete que contiene la imagen de una máquina virtual.} \tn % Row Count 14 (+ 3) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{¿Dónde puedo descargar Boxes?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}En la página oficial \seqsplit{(https://app.vagrantup.com/boxes/search?}} \tn % Row Count 17 (+ 3) % Row 7 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{¿Dónde se guardan las boxes?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}/home/usuario Unix por defecto} \tn % Row Count 19 (+ 2) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}C:\textbackslash{}Users\textbackslash{}usuario en Windows por defecto} \tn % Row Count 20 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{} \tn % Row Count 20 (+ 0) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Entornos/escenarios:}}} \tn % Row Count 21 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{¿Qué son?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Son {\bf{entornos de trabajo}} que nos permiten {\bf{crear una máquina virtual}} con sus respectivas {\bf{configuraciones}}.} \tn % Row Count 25 (+ 4) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{¿Cómo funcionan?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Cada uno tiene asociano una máquina por defecto y un archivo de configuración} \tn % Row Count 28 (+ 3) % Row 13 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{¿Cuál es el archivo de configuración?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Vagrantfile, archivo plano (sin extensión) con las configuraciones de la máquina virtual como:} \tn % Row Count 32 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Definiciones, preguntas y respuestas (cont)}} \tn % Row 14 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}El proveedor (virtualbox), la imagen sobre la que está realizada (como ubuntu), configuraciones de red... Se crea al usar vagrant init} \tn % Row Count 3 (+ 3) % Row 15 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{} \tn % Row Count 3 (+ 0) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Archivo de configuración:}}} \tn % Row Count 4 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{config.vm} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Espacio de nombres por los que vienen definidos los parámetros que definen la configuración de la máquina virtual} \tn % Row Count 8 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Carasterísticas de las máquinas}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Se crean con dos usuarios: root y vagrant} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Tiene una red NAT por defecto eth0 compartida con VirtualBox (aislada de las demás máquinas). SIempre está activa} \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Es recomendable configurar rsync (se instala automáticamente) para sincronizar el directorio de la máquina en el host con el correspondiente directiorio de la máquina virtual.} \tn % Row Count 8 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.76 cm} x{4.24 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Configuración Vagrantfile}} \tn % Row 0 \SetRowColor{LightBackground} Estructura inicial: & 1 \seqsplit{Vagrant.configure("2")} do | config | \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Imagen del SO (Box): & 2 config.vm.box = "ubuntu/trusty64" \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} Nombre de la máquina (hostname) & 3 config.vm.hostname = "Ubuntu" \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} Carpeta sincronizada (synced\_folder) & 4 \seqsplit{config.vm.synced\_folder} ".", "/vagrant", type: "virtualbox" \tn % Row Count 9 (+ 3) % Row 4 \SetRowColor{LightBackground} Tipo de red (network) & 5 config.vm.network "\textless{}private/public\textgreater{}\_network/bridge/hostonly", type="dhcp", ip:"192.168.33.10" \tn % Row Count 14 (+ 5) % Row 5 \SetRowColor{white} indicando la interfaz añadiriamos: & :bridge=\textgreater{} "eth0" \tn % Row Count 16 (+ 2) % Row 6 \SetRowColor{LightBackground} Redirección de puertos: & 6 config.vm.network "forwarded\_port", guest: 80, host: 8080 \tn % Row Count 19 (+ 3) % Row 7 \SetRowColor{white} {\bf{Configuración de proveedor:}} & 7 config.vm.provider "virtualbox" do |vb| \tn % Row Count 21 (+ 2) % Row 8 \SetRowColor{LightBackground} Memoria RAM (memory) (en MB): & 8 vb.memory = "1024" \tn % Row Count 23 (+ 2) % Row 9 \SetRowColor{white} Usar interfaz gráfica (gui): & 9 vb.gui = "\textless{}true/false\textgreater{}" \tn % Row Count 25 (+ 2) % Row 10 \SetRowColor{LightBackground} Número de nucleos de CPU (cpus): & 10 vb.cpus = "1" \tn % Row Count 27 (+ 2) % Row 11 \SetRowColor{white} {\bf{Importante finalizar los boques:}} & 11 end \tn % Row Count 29 (+ 2) % Row 12 \SetRowColor{LightBackground} & 12 end \tn % Row Count 30 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Configuración máquinas múltiples}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{1 Vagrant.configure("2") do |config| \newline 2 -{}-{}-{}-config.vm.define "ubuntu" do |ubuntu| \newline 3 -{}-{}-{}-{}-{}-{}--ubuntu.vm.box = "bento/ubuntu-16.04" \newline 4 -{}-{}-{}-{}-{}-{}--config.vm.network "private\_network", ip: "192.168.50.4" \newline 5 -{}-{}-{}-end` \newline 6 -{}-{}-{}-config.vm.define "debian" do |debian| \newline 7 -{}-{}-{}-{}-{}-{}--debian.vm.box = "debian/jessie64" \newline 8 -{}-{}-{}-{}-{}-{}--config.vm.network "private\_network", ip: "192.168.50.5" \newline 9 -{}-{}-{}-end \newline 10 end} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{5.04 cm} x{2.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Comandos de información y ayuda}} \tn % Row 0 \SetRowColor{LightBackground} Versión & vagrant -v \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Ayuda de sintaxis y comandos comunes & vagrant -h \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Ayuda de un comando específico & vagrant \textless{}comando\textgreater{} -h \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} Lista de comandos & vagrant list-commands \tn % Row Count 7 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Comandos generales}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Boxes:}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Añadir una box al entorno: & vagrant box add \textless{}usuario\textgreater{}/\textless{}nombreSO\textgreater{}\textasciicircum{}1\textasciicircum{} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Listar las boxes: & vagrant box list \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} Eliminar una box: & vagrant box remove \textless{}usuario\textgreater{}/\textless{}nombreSO\textgreater{} \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{} \tn % Row Count 6 (+ 0) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{Entornos - Iniciar}}} \tn % Row Count 7 (+ 1) % Row 6 \SetRowColor{LightBackground} Crear un directorio de trabajo (carpeta) & mkdir \textless{}nombreDirectorio\textgreater{} \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} Inicializar la box como por defecto en el entorno \& crear Vagrantfile (desplegar entorno): & vagrant init \tn % Row Count 14 (+ 5) % Row 8 \SetRowColor{LightBackground} Para hacerlo con una box específica & vagrant init \textless{}usuario/nombreSO\textgreater{} \tn % Row Count 16 (+ 2) % Row 9 \SetRowColor{white} Archivo de configuración sin comentarios: & vagrant init -m \tn % Row Count 19 (+ 3) % Row 10 \SetRowColor{LightBackground} Guardar cambios/actualizar o recargar el archivo de configuración del entorno: & vagrant reload \tn % Row Count 23 (+ 4) % Row 11 \SetRowColor{white} Arrancar escenarios/etornos (la/s máquina/s) & vagrant up \tn % Row Count 26 (+ 3) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Entornos - Acceso}}} \tn % Row Count 27 (+ 1) % Row 13 \SetRowColor{white} Acceder la máquina del entorno: & vagrant ssh \tn % Row Count 29 (+ 2) % Row 14 \SetRowColor{LightBackground} para ver la red a la que pertenece (dentro de la máquina): & ifconfig \tn % Row Count 32 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Comandos generales (cont)}} \tn % Row 15 \SetRowColor{LightBackground} si no estamos en el directorio del entorno: & vagrant ssh \textless{}nombreMaquina\textgreater{} \tn % Row Count 3 (+ 3) % Row 16 \SetRowColor{white} Acceder a la máquina con clave privada & ssh -i \seqsplit{.vagrant/machines/default/virtualbox/private\_key} vagrant@iphost (?) \tn % Row Count 7 (+ 4) % Row 17 \SetRowColor{LightBackground} Enviar un comando a la máquina & vagrant ssh -C '\textless{}comando\textgreater{}' \tn % Row Count 9 (+ 2) % Row 18 \SetRowColor{white} Ver configuración de SSH & vagrant ssh-config \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\textasciicircum{}1\textasciicircum{} (P.E.: ubuntu/xenial64)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{5.28 cm} x{2.72 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Comandos de gestión}} \tn % Row 0 \SetRowColor{LightBackground} Apagar la máquina: & vagrant halt \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Encender/levantar la máquina & vagrant up \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Suspender la máquina: & vagrant suspend \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} Destruir la máquina: & vagrant destroy \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} Ver el estado de la máquina: & vagrant status \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} Ver los puetos & vagrant port \tn % Row Count 10 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}