Quindi, anche tu sei rimasto deluso nel vedere che non esiste un'immagine predefinita di Fedora da Google in Google Calcolo (GCE)? La buona notizia è che, grazie a questa immagine mancante, costruirai la tua immagine personalizzata e imparerai così un aspetto importante di Google Cloud Platform (GCP). Ciò significa una vasta personalizzazione delle VM se lo desideri.
Prima di iniziare, una breve cosa che devi sapere. Le VM sono davvero molto simili ai computer, ma lo sai già, giusto? Quello che potresti non sapere è che, le immagini, in GCE, sono un sistema operativo predefinito che il computer virtuale avrà al primo avvio. È molto come quando acquisti un computer, lo ottieni con (purtroppo) una versione preinstallata di Windows installata sul disco rigido. E quando si avvia la prima volta, avvia questa versione preinstallata che è la stessa per tutti i computer di questo modello/produttore.
In Google Compute Engine, è lo stesso. Quando crei un'istanza, devi iniziare da qualche parte, quindi ti lascerà scegliere un Linux preinstallato da cui l'avvio, chiamato anche "immagine". Si noti che alcuni utenti di VM diranno "Nelle macchine virtuali, di solito, iniziamo ad avvio tramite un CD ISO con un assistente di configurazione", ma di solito le macchine virtuali di Google Calco.
Quindi in questo articolo, andremo a:
Tutto questo in Google Compute Engine.
Ottieni l'immagine di Fedora Cloud per la personalizzazione
Per iniziare, è necessario creare una VM in cui creeremo e modificare l'immagine ufficiale di Fedora Cloud. Quindi, crea un'istanza con le seguenti opzioni:
Dagli 2 minuti per iniziare e poi, SSH nella VM usando il pulsante "SSH". Aprirà una finestra con SSH collegato alla tua nuova VM CentOS 7.
La prima cosa di cui hai bisogno è installare Wget. Puoi installare Curl se preferisci, ma l'articolo utilizzerà Wget.
$ sudo Yum installare Wget |
Quindi, una volta installato, vai su https: // alt.Fedoraproject.org/ cloud/ e accanto a "Cloud Base Compressed RAW Immagine", fare clic con il tasto destro su "Scarica" e copiare il collegamento dell'indirizzo.
Torna alla VM e fai quanto segue:
$ wget "Paste URL qui" |
Questo scaricherà il file. Server Fedora, i loro specchi e Google hanno un'ottima infrastruttura, quindi il download durerà solo pochi secondi. Probabilmente il mio secondo momento preferito di amministrazione cloud!
Una volta fatto, eseguire questo comando:
$ xz -DeCompress --keep "Fedora-Cloud-Base-XX-X.X.x86_64.crudo.xz " |
Si noti che devi adattare il nome file a seconda della versione che scarica. Questo estraggerà un file sparso di ~ 3 GB che possiamo quindi montare per il secondo passaggio. Ci vorrà un minuto, quindi fai una pausa caffè e torna quando è finito.
Preparazione di Fedora per la corsa della piattaforma cloud di Google
Ok, quindi come chiamiamo preparazione qui? Principalmente, sta montando il disco del disco grezzo, Chroot al suo interno, aggiungi un po 'di software in modo che possa utilizzare tutte le funzionalità GCP e infine pulire vari file temporanei.
OK, montiamolo:
$ mkdir stivale |
$ sudo montare -O loop, offset = 1048576 "$ PWD/Fedora-Cloud-Base-X-X.X.x86_64.crudo" |
"$ Pwd/boot" |
Ancora una volta, adatta il nome del file.
Ok, vedo che non capisci davvero questa riga di comando, quindi è tempo per una spiegazione. Questo comando dice a Linux: prendi un file dal disco, agisci come se fosse una partizione del disco e prova a montarlo. Questo è il principio del supporto. Ma noterai anche "Offset = 1048576". C'è un offset perché questo disco grezzo è un disco, non una partizione. Viene partito, con un bootloader su di esso, quindi la VM sa cosa fare all'avvio. Ma non possiamo montare, o Chroot in un bootloader, a destra?
Quindi, impostando l'offset, Linux sta in effetti, montando la prima partizione del disco grezzo memorizzato nel file. È una partizione EXT4 e per lasciare abbastanza spazio per i bootloader, le prime partizioni iniziano generalmente 1 mib dopo l'inizio del disco. Da qui l'offset. Prossimo:
$ CD stivale |
$ sudo montare --bind /dev dev && sudo montare --bind /sys sys && sudo montare --bind /proc pr && sudo montare --Bind /etc /resolv.conf etc/resolv.conf |
$ sudo Chroot .//usr/bin/ Bash |
E ora, benvenuto nel tuo chroot grezzo montato su loop di Fedora! Quindi, perché tutto questo? Innanzitutto, montiamo tutto ciò che è necessario per qualsiasi applicazione decente per lavorare, /dev, /proc e /sys. Inoltre, montiamo Bind Resolv.conf perché altrimenti Chroot non ha accesso a Internet (!). Infine, ci siamo fatti in giro. Nota che usiamo /usr/bin/bash Perché /bidone In Fedora è un collegamento simbolico /usr/cestino.
Ora, è tempo di installare il software di Google Cloud Platform per farlo funzionare bene.
La prima cosa che potresti voler fare è avere un'immagine aggiornata. È meglio, no? COSÌ:
# dnf upgrade --assumeyes --nogpgcheck "*" |
Ancora una volta un'occasione per prendere un sorso di caffè, dal momento che ci vorrà del tempo. Il "-nogpgcheck" è perché il controllo GPG e Chroot non si comportano molto bene l'uno con l'altro. Quindi, fai questo:
# cat> "/etc/yum.repository.D/Google-Cloud.Repo " <<"EOR" |
[Google-cloud-compute] |
Nome = Google Cloud Calco |
baseurl = https: // pacchetti.nuvola.Google.com/yum/repos/google-cloud-compute-el7-x86_64 |
abilitato = 1 |
gpgcheck = 1 |
repo_gpgcheck = 1 |
gpgkey = https: // pacchetti.nuvola.Google.com/yum/doc/yum-key.gpg |
pacchetti https: //.nuvola.Google.com/yum/doc/rpm-package-key.gpg |
Eor |
E fai:
# DNF Installa |
Questo installerà tutto il software relativo a Google per essere più compatibile con Google Compute Engine. Ad esempio, ti permetterà di controllare/deselezionare l'inoltro IP dall'interfaccia della piattaforma cloud di Google o utilizzare SSH nel browser invece di dover creare esplicitamente una chiave SSH per la VM. Prossimo:
# tocco "/.autorelabel " |
# dnf pulisci tutto |
Come sapete, una delle cose migliori di Fedora, sono le sue caratteristiche di sicurezza e la qualità a livello aziendale, e Selinux fa parte di esso. Quindi, al fine di evitare il mal di testa, revoca una rielaborazione dell'intero disco al primo avvio della VM.
Lo fa perché le etichette di Selinux sono sbagliate in un ambiente Chroot e dimenticare questo piccolo passo rende la VM non bootabile e irraggiungibile dall'esterno. L'aggiornamento DNF sopra riscrive molti file di base che non etichettano e quindi Selinux impedisce l'esecuzione di questi binari. Si noti che significa che la prima avvio VM può richiedere qualche minuto prima che sia pronto.
La pulizia DNF consente di mantenere l'immagine il più piccola possibile. Questo ti consente di risparmiare il costo di archiviare ripetutamente le cose di cui non hai bisogno.
È ora di uscire da Chroot:
# Uscita |
$ CD ... / |
Ora sei uscito dalla directory montata su loop, puoi non montare le cose montate su legame:
$ sudo umount boot/dev boot/proc boot/sys boot/etc/resolv.conf |
E poi, facciamo questo:
$ sudo FSTRIM -Verbose Boot |
Questo ti aiuta a mantenere l'immagine montata su loop ancora più piccola. Fondamentalmente, durante l'aggiornamento, l'immagine grezza verrà rapidamente riempita con zone di file temporanei. A differenza dei veri dischi rigidi, quando un file viene eliminato in un'immagine grezza, viene semplicemente eliminato nei metadati del filesystem dell'immagine grezza e IT usa ancora lo spazio sul disco rigido che ospita l'immagine grezza. FSTRIM ti consente di rendere queste zone inutilizzate "sparse" e quindi questo spazio di file eliminati viene restituito al disco.
Sbottona il dispositivo montato su loop ora:
$ sudo umount stivale |
$ MV "Fedora-Cloud-Base-XX-X.X.x86_64.crudo" "disco.crudo" |
$ catrame --Crea-Auto-Compress -- file = "Fedora-Cloud-Base-XX-X.X.x86_64.catrame.GZ " --disco sparso.crudo |
Ok, bello, ora hai la tua immagine finale, preconfezionata! La dimensione per me è di circa 350 mib, minuscole eh? Ora, ricordi quando ho detto che dovevi prendere nota della zona? Ora è necessario!
Vai a Google Cloud Storage e crea un secchio. Suppongo che qui non abbia già un secchio nella zona giusta, altrimenti è perfettamente bello usarne uno preesistente. Quindi crea un secchio con le seguenti opzioni:
Attendi la creazione del secchio e una volta fatto, vai di nuovo nella finestra SSH e fai:
$ gsutil cp "Fedora-Cloud-Base-XX-X.X.x86_64.catrame.GZ " "GS: // [nome del secchio]/" |
Questo copia l'immagine confezionata su Google Cloud Storage in modo che possiamo dire a GCP: prendilo .catrame.gz e rendilo un'immagine.
Ora puoi bloccare l'istanza a quel punto. Non eliminarlo ancora mentre testeremo l'istanza di Fedora prima di eliminare questa VM di build.
Ora in Google Compute Engine, inserisci "Immagini". Premi il pulsante "Crea immagine". Configuralo in questo modo:
E questa è tutta gente!
Fase di test
Ok ma non sarebbe una vera guida how-to se non avessimo testato se funziona come previsto. Quindi, per vedere se ha funzionato alla grande, vai su "VM istanze" e quindi fai clic su "Crea istanza".
Configurare l'istanza in questo modo:
Ora, devi aspettare 5 minuti, abbastanza tempo per ripulire la tastiera! E dopo questi 5 minuti, ora puoi fare clic sul pulsante "SSH".
E ora, si spera, evvii, sei effettuato l'accesso alla tua VM Fedora, gestito da Google Cloud! A quel punto, non dimenticare di eliminare la VM di prova e la VM di build.
Spero ti sia piaciuto il tutorial e funzionerà bene per te. Sono tutte persone (per davvero questa volta) e ci vediamo in una VM Fedora!