Entonces, tú también te has decepcionado al ver que no hay una imagen prebuidada de Fedora de Google en Google Compute Engine (GCE)? La buena noticia es que, gracias a esta imagen que falta, construirá su propia imagen personalizada y, por lo tanto, aprenderá un aspecto importante de Google Cloud Platform (GCP). Esto significa una amplia personalización de sus máquinas virtuales si lo desea.
Antes para comenzar, algo breve que necesitas saber. Las máquinas virtuales son realmente muy parecidas a las computadoras, pero ya lo sabes, ¿verdad?? Lo que puede que no sepa es que, las imágenes, en GCE, son un sistema operativo previamente construido que la computadora virtual tendrá en su primer inicio. Es muy parecido a cuando compra una computadora, lo obtiene con (lamentablemente) una versión preinstalada de Windows instalada en el disco duro. Y cuando inicie la primera vez, arrancará esta versión preinstalada que es la misma para todas las computadoras de este modelo/fabricante.
En Google Compute Engine, es todo lo mismo. Cuando crea una instancia, debe comenzar en algún lugar, por lo que le permitirá elegir un Linux preinstalado para arrancar, también llamado "imagen". Tenga en cuenta que algunos usuarios de VM dirán "en las máquinas virtuales, por lo general, comenzamos a arrancar a través de un CD de ISO con un asistente de configuración", pero generalmente las máquinas virtuales del motor de Compute de Google están destinadas a ejecutar desatendidas, y una GUI de configuración básicamente evitaría que lo evitaría.
Entonces, en este artículo, vamos a:
Todo esto en Google Compute Engine.
Obtenga una imagen en la nube de Fedora para la personalización
Para comenzar, debe crear una VM donde vamos a construir y modificar la imagen oficial de Fedora Cloud. Entonces, cree una instancia con las siguientes opciones:
Dale 2 minutos para comenzar y luego, ssh en la VM usando el botón "ssh". Abrirá una ventana con SSH conectado a su nuevo Centos 7 VM.
Lo primero que necesitas es instalar wget. Puede instalar curl si lo prefiere, pero el artículo usará wget.
ps sudo beque instalar wget |
Luego, una vez instalado, vaya a https: // alt.federaproject.org/ nube/ y junto a "imagen sin procesar de la base de la base de la nube", haga clic derecho en "Descargar" y copiar el enlace de la dirección.
Vuelve a la VM y haz lo siguiente:
$ wget "Peque URL aquí" |
Esto descargará el archivo. Fedora servidores, sus espejos y Google tienen una gran infraestructura, por lo que la descarga durará solo unos segundos. Probablemente mi segundo momento favorito de administración de nubes!
Una vez hecho, ejecute este comando:
$ xz --decompress -mantenimiento "Fedora-Cloud-Base-XX-X.X.x86_64.crudo.xz " |
Tenga en cuenta que debe adaptar el nombre de archivo dependiendo de la versión que descargue. Esto va a extraer un archivo escaso de ~ 3 GB que luego podemos montar en bucle para el segundo paso. Va a tomar un minuto, así que toma un café y regresa cuando termine.
Preparación de Fedora para el viaje de Google Cloud Platform
Ok, entonces, ¿cómo llamamos preparación aquí?? Aproximadamente, está montando el disco en bruto, chroot dentro de él, agregue algún software para que pueda usar todas las funciones de GCP y luego finalmente limpiar varios archivos temporales.
Ok, vamos a montarlo:
ps mkdir bota |
ps sudo montar -o bucle, desplazamiento = 1048576 "$ PWD/Fedora-Cloud-Base-XX-X.X.x86_64.crudo" |
"$ PWD/BOOT" |
Una vez más, adapte el nombre del archivo.
De acuerdo, veo que realmente no entiendes esta línea de comando, así que es hora de una explicación. Este comando le dice a Linux: tome un archivo del disco, actúe como si fuera una partición de disco e intente montarlo. Este es el principio de la montura de bucle. Pero también notará el "offset = 1048576". Hay un desplazamiento porque este disco en bruto es un disco, No es una partición. Viene dividido, con un gestor de arranque, para que la VM sepa qué hacer en el inicio. Pero no podemos montar, o chroot en un gestor de arranque, a la derecha?
Entonces, al configurar el desplazamiento, Linux es de hecho, montando la primera partición del disco sin procesar almacenado en el archivo. Es una partición ext4 y para dejar suficiente espacio para los cargadores de arranque, las primeras particiones generalmente comienzan 1 MIB después del comienzo del disco. De ahí el desplazamiento. Próximo:
ps cd bota |
ps sudo montar --bind /dev dev && sudo montar --bind /sys sys && sudo montar --Bind /Proc Proc && sudo montar --Bind /etc /resolv.conf etc/resolv.confusión |
ps sudo croote .//usr/bin/ intento |
Y ahora, bienvenido a su chroot crudo montado en bucle de Fedora! Entonces, ¿por qué todo eso? Primero, montamos todo lo necesario para que cualquier aplicación decente funcione, /dev, /proc y /sys. Además, montamos BIND resolv.conf porque de lo contrario el chroot no tiene acceso a Internet (!). Finalmente, nos vamos a hacer. Tenga en cuenta que usamos /usr/bin/bash porque /papelera en Fedora es un enlace simbólico para /usr/bin.
Ahora, es hora de instalar el software Google Cloud Platform para que funcione bien.
Lo primero que quizás desee hacer es tener una imagen actualizada. Es mejor, no? Entonces:
# actualización dnf --sassumeyes - -nogpgcheck "*" |
Una vez más, una ocasión para tomar un sorbo de café, ya que va a tomar un tiempo. El "-nogpgCheck" se debe a que GPG Check y Chroot no actúan muy bien entre sí. Entonces, haz esto:
# gato> "/etc/yum.repositar.D/Google Cloud.repositorio " <<"EOR" |
[Google-Cloud-Compute] |
nombre = Google Cloud Compute |
BaseUrl = https: // paquetes.nube.Google.com/yum/repos/google-cloud-compute-el7-x86_64 |
habilitado = 1 |
gpgcheck = 1 |
repo_gpgcheck = 1 |
gpgkey = https: // paquetes.nube.Google.com/yum/doc/yum-key.gpg |
https: // paquetes.nube.Google.com/yum/doc/rpm-paquete-key.gpg |
Eor |
Y hacer:
# instalación dnf--nogpgcheck --suMeyes google-compute-ingenio python-google-compute-ingenio |
Esto instalará todo el software relacionado con Google para ser mejor compatible con Google Compute Engine. Por ejemplo, le permitirá verificar/desactivar el reenvío de IP desde la interfaz de la plataforma de Google Cloud, o usar SSH en el navegador en lugar de tener que crear explícitamente una tecla SSH para la VM para la VM. Próximo:
# tocar "/.Autorelabel " |
# dnf limpio todo |
Como saben, una de las mejores cosas de Fedora, son sus características de seguridad y su calidad de nivel empresarial, y Selinux es parte de ella. Entonces, para evitar dolores de cabeza, retrocede un relabelado de todo el disco en el primer inicio de la VM.
Lo hace porque las etiquetas en Selinux están equivocadas en un entorno de chroot y olvidar este pequeño paso hace que la VM sea innumerable e inalcanzable desde el exterior. La actualización de DNF anterior reescribe muchos de los archivos principales que no están etiquetados y luego Selinux evita que estos binarios se ejecuten. Tenga en cuenta que significa que la primera startup de VM puede tomar unos minutos antes de que esté lista.
La limpieza de DNF permite mantener la imagen lo más pequeña posible. Esto le ahorra el costo de almacenar repetidamente cosas que no necesita.
Hora de salir de Chroot:
# salida |
ps cd … / |
Ahora saliste del directorio montado en bucle, puedes desmontar cosas montadas en enlace:
ps sudo Umount Boot/dev Boot/Proc Boot/SYS Boot/etc/resolv.confusión |
Y luego, hagamos esto:
ps sudo FSTRIM -VERBOSE BOOT |
Esto te ayuda a mantener la imagen montada en bucle aún más pequeña. Básicamente, durante la actualización, la imagen sin procesar se llenará rápidamente con zonas de archivos temporales. A diferencia de los discos duros reales, cuando un archivo se elimina en una imagen sin procesar, se elimina en metadatos del sistema de archivos de la imagen sin procesar y todavía usa espacio en el disco duro alojando la imagen en bruto. FSTRIM le permite hacer que estas zonas no utilizadas sean "escasas" y, por lo tanto, este espacio de archivos eliminados se devuelve al disco.
Desmontaje el dispositivo montado en el bucle ahora:
ps sudo Umount bota |
ps MV "Fedora-Cloud-Base-XX-X.X.x86_64.crudo" "disco.crudo" |
ps alquitrán --Crear-Auto-Compress -- archivo = "Fedora-Cloud-Base-XX-X.X.x86_64.alquitrán.GZ " --disco escaso.crudo |
Ok, genial, ahora tienes tu imagen final, preenvasada! El tamaño para mí es alrededor de 350 MIB, Tiny Eh? Ahora, recuerdas cuando dije que tenías que tomar nota de la zona? Ahora lo necesitas!
Dirígete a Google Cloud Storage y crea un cubo. Supongo que aquí no tienes un cubo en la zona correcta, de lo contrario, está perfectamente bien usar uno preexistente. Así que crea un cubo con las siguientes opciones:
Espere a que se cree el cubo, y una vez hecho, vaya a la ventana SSH nuevamente y haga:
$ gsutil CP "Fedora-Cloud-Base-XX-X.X.x86_64.alquitrán.GZ " "GS: // [Nombre del balde]/" |
Esto copia la imagen envasada a Google Cloud Storage para que podamos decirle a GCP: Toma eso .alquitrán.gz y hazlo una imagen.
Ahora, puede cerrar la instancia en ese momento. No lo elimine todavía, ya que probaremos la instancia de Fedora antes de eliminar esta VM de compilación.
Ahora en Google Compute Engine, ingrese "Imágenes". Presione el botón "Crear imagen". Configurarlo así:
Y eso es toda la gente!
Fase de prueba
Ok, pero esa no sería una verdadera guía de instrucciones si no probáramos si funciona como se esperaba. Entonces, para ver si funcionó muy bien, llegue a "VM Instancias" y luego haga clic en "Crear instancia".
Configure la instancia de esta manera:
Ahora, tienes que esperar 5 minutos, suficiente tiempo para limpiar tu teclado! Y después de estos 5 minutos, ahora puede hacer clic en el botón "SSH".
Y ahora, con suerte, Hooray, estás conectado a tu Fedora VM, dirigida por Google Cloud! En ese momento, no olvide eliminar la prueba de VM y la VM de compilación.
Espero que hayas disfrutado el tutorial, y funcionará bien para ti. Eso es toda la gente (de verdad esta vez), y nos vemos en una VM Fedora!