Donc, vous aussi, vous avez été déçu de voir qu'il n'y a pas d'image prédéfinie de Fedora de Google dans Google Compute Engine (GCE)? La bonne nouvelle est que, grâce à cette image manquante, vous construirez votre propre image personnalisée et apprenez donc un aspect important de Google Cloud Platform (GCP). Cela signifie une personnalisation approfondie de vos machines virtuelles si vous le souhaitez.
Avant de commencer, une brève chose que vous devez savoir. Les machines virtuelles ressemblent vraiment aux ordinateurs, mais vous le savez déjà,? Ce que vous ne savez peut-être pas, c'est que les images, en GCE, sont un système d'exploitation prédéfini que l'ordinateur virtuel aura lors de son premier démarrage. C'est un peu comme lorsque vous achetez un ordinateur, vous l'obtenez avec (malheureusement) une version préinstallée de Windows installée sur le disque dur. Et lorsque vous démarrez la première fois, il démarrera cette version préinstallée qui est la même pour tous les ordinateurs de ce modèle / fabricant.
Dans Google Compute Engine, c'est la même chose. Lorsque vous créez une instance, vous devez commencer quelque part, il vous permet de vous choisir un Linux préinstallé pour démarrer, également appelé «image». Notez que certains utilisateurs de machines virtuelles diront «dans les machines virtuelles, généralement, nous commençons à démarrer via un CD ISO avec un assistant de configuration», mais généralement des machines virtuelles sur le moteur Google sont destinées à s'exécuter sans surveillance, et une interface graphique de configuration empêcherait essentiellement cela.
Donc, dans cet article, nous allons:
Tout dans le moteur Google Compute.
Obtenez l'image du cloud Fedora pour la personnalisation
Pour commencer, vous devez créer une machine virtuelle où nous allons construire et modifier l'image officielle du cloud Fedora. Donc, créez une instance avec les options suivantes:
Donnez-lui 2 minutes pour démarrer, puis SSH dans la machine virtuelle en utilisant le bouton "SSH". Il ouvrira une fenêtre avec SSH connecté à votre toute nouvelle VM CentOS 7.
La première chose dont vous avez besoin est d'installer WGET. Vous pouvez installer Curl si vous préférez, mais l'article utilisera WGET.
$ Sudo Miam installer wget |
Ensuite, une fois installé, allez sur https: // alt.fedoraproject.org / cloud / et à côté de «Image brute compressée de base cloud», cliquez avec le bouton droit sur «Télécharger» et copiez le lien d'adresse.
Revenez à la machine virtuelle et procédez comme suit:
$ wget "URL coller ici" |
Cela téléchargera le fichier. Les serveurs Fedora, leurs miroirs et Google ont une grande infrastructure, donc le téléchargement ne durera que quelques secondes. Probablement mon deuxième moment préféré de l'administration du cloud!
Une fois terminé, exécutez cette commande:
$ xz --décompress --keept "Fedora-Cloud-Base-XX-X.X.x86_64.brut.xz " |
Notez que vous devez adapter le nom de fichier en fonction de la version que vous téléchargez. Cela va extraire un fichier clairsemé de ~ 3 Go que nous pouvons ensuite faire boucle. Ça va prendre une minute, alors prenez une pause-café et revenez une fois.
Préparer Fedora pour la conduite de la plate-forme Google Cloud
Ok, alors comment appelons-nous la préparation ici? En gros, il s'agit de monter en boucle le disque brut, de chroot à l'intérieur, d'ajouter un logiciel afin qu'il puisse utiliser toutes les fonctionnalités GCP, puis nettoyer enfin divers fichiers temporaires.
Ok, montons-le:
$ mkdir botte |
$ Sudo monter -O Boucle, décalage = 1048576 "$ PWD / Fedora-Cloud-Base-XX-X.X.x86_64.brut" |
"$ PWD / BOOT" |
Encore une fois, adaptez le nom du fichier.
D'accord, je vois que vous ne comprenez pas vraiment cette ligne de commande, donc il est temps pour une explication. Cette commande dit à Linux: prenez un fichier du disque, agissez comme s'il s'agissait d'une partition de disque et essayez de le monter. Ceci est le principe du support de boucle. Mais vous remarquerez également le «Offset = 1048576». Il y a un décalage car ce disque brut est un disque, pas une partition. Il est partitionné, avec un chargeur de démarrage dessus, donc la machine virtuelle sait quoi faire au démarrage. Mais nous ne pouvons pas monter ou chroot dans un chargeur de démarrage, à droite?
Ainsi, en définissant le décalage, Linux est en fait, le montage de la première partition du disque brut stocké dans le fichier. Il s'agit d'une partition EXT4 et de laisser suffisamment d'espace pour les chargeurs de démarrage, les premières partitions commencent généralement 1 MIB après le début du disque. D'où le décalage. Suivant:
$ CD botte |
$ Sudo monter --bind / dev && Sudo monter --bind / sys sys && Sudo monter --lier / proc proc && Sudo monter --lier / etc / résoudre.conf etc.confli |
$ Sudo chroot ./ / usr / bin / frapper |
Et maintenant, bienvenue dans votre chroot brut monté sur la boucle Fedora! Alors, pourquoi tout ça? Tout d'abord, nous montons tout ce qui est nécessaire pour que toute application décente fonctionne, / dev, / proc et / sys. Aussi, nous montons Bind Resolv.confr car sinon le chroot n'a pas d'accès Internet (!). Enfin, nous y chroot. Notez que nous utilisons / usr / bin / bash parce que /poubelle dans Fedora est un lien symbolique pour / usr / bin.
Maintenant, il est temps d'installer le logiciel Google Cloud Platform pour le faire fonctionner bien.
La première chose que vous voudrez peut-être faire est d'avoir une image à jour. C'est mieux, non? Donc:
# mise à niveau DNF - Assumeyes --nogpgCheck "*" |
Encore une fois une occasion de prendre une gorgée de café, car cela va prendre un certain temps. Le «-nogpgcheck» est parce que le contrôle et le chroot GPG n'agissent pas très bien les uns aux autres. Ensuite, faites ceci:
# chat> "/ etc / yum.se soustraire.d / google-cloud.repo " <<"EOR" |
[Google-Cloud-Compute] |
name = Google Cloud Compute |
BUSURL = https: // packages.nuage.Google.com / yum / repos / google-cloud-compute-el7-x86_64 |
activé = 1 |
gpgcheck = 1 |
repo_gpgcheck = 1 |
gpgkey = https: // packages.nuage.Google.com / yum / doc / yum-key.GPG |
https: // packages.nuage.Google.com / yum / doc / rpm-package-key.GPG |
Eor |
Et fait:
# DNF Install --nogpgCheck --Assumeyes google-compute-mo dans le moteur Python-Google-Compute-Engine |
Cela va installer tous les logiciels liés à Google afin d'être mieux compatibles avec Google Compute Engine. Par exemple, il vous permettra de vérifier / décocher le transfert IP à partir de l'interface de plate-forme Google Cloud, ou d'utiliser SSH dans le navigateur au lieu d'avoir à créer explicitement une clé SSH pour la machine virtuelle. Suivant:
# touche "/.AutoreLabel " |
# DNF Clean All |
Comme vous le savez, l'une des meilleures choses à propos de Fedora, ce sont ses fonctionnalités de sécurité et sa qualité de niveau d'entreprise, et Selinux en fait partie. Ainsi, afin d'éviter les maux de tête, il remonte un realable de l'ensemble du disque lors du premier démarrage de VM.
Il le fait parce que les étiquettes de Selinux sont erronées dans un environnement de chroot et l'oubli de cette petite étape rend la machine virtuelle unpootable et inaccessible de l'extérieur. La mise à niveau DNF ci-dessus réécrit une grande partie des fichiers de base qui ne sont pas étiquetés, puis Selinux empêche ces binaires d'exécuter. Notez que cela signifie que la première startup VM peut prendre quelques minutes avant qu'elle ne soit prête.
Le nettoyage DNF permet de garder l'image aussi petite que possible. Cela vous permet d'économiser le coût du stockage à plusieurs reprises des choses dont vous n'avez pas besoin.
Il est temps de quitter le chroot:
# sortie |
$ CD … / |
Maintenant, vous êtes sorti du répertoire monté sur la boucle, vous pouvez non-résumer des choses montées sur Bind:
$ Sudo umount boot / dev boot / proc boot / sys boot / etc / résolv.confli |
Et puis, faisons ceci:
$ Sudo FSTRIM - BOOT VERBOSE |
Cela vous aide à garder l'image montée sur la boucle encore plus petite. Fondamentalement, pendant la mise à niveau, l'image brute sera rapidement remplie de zones de fichiers temporaires. Contrairement à de vrais disques durs, lorsqu'un fichier est supprimé dans une image brute, il est simplement supprimé dans les métadonnées du système de fichiers de l'image brute et utilise toujours l'espace sur le disque dur hébergeant l'image brute. FSTRIM vous permet de rendre ces zones inutilisées «clairsemées» et donc cet espace de fichiers supprimés est rendu au disque.
Déconsiez maintenant l'appareil monté sur la boucle:
$ Sudo umount botte |
$ mv "Fedora-Cloud-Base-XX-X.X.x86_64.brut" "disque.brut" |
$ le goudron --Créer - Auto-Compress -- déposer = "Fedora-Cloud-Base-XX-X.X.x86_64.le goudron.gz " --disque clairsemé.brut |
OK, cool, vous avez maintenant votre image finale, préemballé! La taille pour moi est d'environ 350 MIB, minuscule hein? Maintenant, tu te souviens quand j'ai dit que tu devais prendre note de la zone? C'est maintenant tu en as besoin!
Dirigez-vous vers Google Cloud Storage et créez un seau. Je suppose ici que vous n'avez pas déjà de seau dans la bonne zone, sinon c'est parfaitement bien pour en utiliser un préexistant. Créez donc un seau avec les options suivantes:
Attendez que le seau soit créé, et une fois terminé, allez à nouveau dans la fenêtre SSH et faites:
$ gsutil CP "Fedora-Cloud-Base-XX-X.X.x86_64.le goudron.gz " "gs: // [nom du seau] /" |
Cela copie l'image emballée sur Google Cloud Storage afin que nous puissions dire à GCP: prenez cela .le goudron.gz et faites-en une image.
Maintenant, vous pouvez fermer l'instance à ce moment. Ne le supprimez pas encore car nous testerons l'instance de Fedora avant de supprimer cette construction VM.
Maintenant dans Google Compute Engine, entrez à l'intérieur des «images». Appuyez sur le bouton «Créer l'image». Configurez-le comme ceci:
Et c'est tout le monde!
Phase de test
Ok mais ce ne serait pas un vrai guide pratiques si nous n'avons pas testé si cela fonctionne comme prévu. Donc, pour voir si cela a très bien fonctionné, accédez à «Instances VM», puis cliquez sur «Créer une instance».
Configurez l'instance de cette façon:
Maintenant, vous devez attendre 5 minutes, assez de temps pour nettoyer votre clavier! Et après ces 5 minutes, vous pouvez maintenant cliquer sur le bouton «SSH».
Et maintenant, j'espère que Hourra, vous êtes connecté à votre VM Fedora, géré par Google Cloud! À ce stade, n'oubliez pas de supprimer la machine virtuelle de test et la VM Build.
J'espère que vous avez apprécié le tutoriel, et cela fonctionnera bien pour vous. C'est tout le monde (pour de vrai cette fois), et à vous voir dans une VM Fedora!