Nächste: , Vorige: , Nach oben: Systemkonfiguration   [Inhalt][Index]


3.8 Guix auf einem Linode-Server nutzen

Um Guix auf einem durch Linode bereitgestellten, „gehosteten“ Server zu benutzen, richten Sie zunächst einen dort empfohlenen Debian-Server ein. Unsere Empfehlung ist, zum Wechsel auf Guix mit der voreingestellten Distribution anzufangen. Erzeugen Sie Ihre SSH-Schlüssel.

ssh-keygen

Stellen Sie sicher, dass Ihr SSH-Schlüssel zur leichten Anmeldung auf dem entfernten Server eingerichtet ist. Das können Sie leicht mit Linodes grafischer Oberfläche zum Hinzufügen von SSH-Schlüsseln bewerkstelligen. Gehen Sie dazu in Ihr Profil und klicken Sie auf die Funktion zum Hinzufügen eines SSH-Schlüssels. Kopieren Sie dort hinein die Ausgabe von:

cat ~/.ssh/<benutzername>_rsa.pub

Fahren Sie den Linode-Knoten herunter.

Im Karteireiter für „Storage“ bei Linode verkleinern Sie das Laufwerk für Debian. Empfohlen werden 30 GB freier Speicher. Klicken Sie anschließend auf „Add a disk“ und tragen Sie Folgendes in das Formular ein:

Drücken Sie im Karteireiter „Configurations“ auf „Edit“. Unter „Block Device Assignment“ klicken Sie auf „Add a Device“. Dort müsste /dev/sdc stehen; wählen Sie das Laufwerk „Guix“. Speichern Sie die Änderungen.

Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:

Starten Sie den Knoten jetzt wieder mit der Debian-Konfiguration. Sobald er wieder läuft, verbinden Sie sich mittels SSH zu Ihrem Server über ssh root@<IP-Adresse-Ihres-Servers>. (Die IP-Adresse Ihres Servers finden Sie in Linodes Übersichtsseite bei „Summary“.) Nun können Sie mit den Schritten aus dem Aus Binärdatei installieren in Referenzhandbuch zu GNU Guix weitermachen:

sudo apt-get install gpg
wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | gpg --import -
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh
guix pull

Nun wird es Zeit, eine Konfiguration für den Server anzulegen. Die wichtigsten Informationen finden Sie hierunter. Speichern Sie die Konfiguration als guix-config.scm.

(use-modules (gnu)
             (guix modules))
(use-service-modules networking
                     ssh)
(use-package-modules admin
                     package-management
                     ssh
                     tls)

(operating-system
  (host-name "my-server")
  (timezone "America/New_York")
  (locale "en_US.UTF-8")
  ;; Dieser komisch aussehende Code wird eine grub.cfg
  ;; anlegen ohne den GRUB-Bootloader auf die
  ;; Platte zu installieren.
  (bootloader (bootloader-configuration
               (bootloader
                (bootloader
                 (inherit grub-bootloader)
                 (installer #~(const #true))))))
  (file-systems (cons (file-system
                        (device "/dev/sda")
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))


  (swap-devices (list "/dev/sdb"))


  (initrd-modules (cons "virtio_scsi"    ; Um die Platte zu finden
                        %base-initrd-modules))

  (users (cons (user-account
                (name "janedoe")
                (group "users")
                ;; Durch Hinzufügen zur "wheel"-Gruppe
                ;; wird das Konto zum Sudoer.
                (supplementary-groups '("wheel"))
                (home-directory "/home/janedoe"))
               %base-user-accounts))

  (packages (cons* openssh-sans-x
                   %base-packages))

  (services (cons*
             (service dhcp-client-service-type)
             (service openssh-service-type
                      (openssh-configuration
                       (openssh openssh-sans-x)
                       (password-authentication? #false)
                       (authorized-keys
                        `(("janedoe" ,(local-file "janedoe_rsa.pub"))
                          ("root" ,(local-file "janedoe_rsa.pub"))))))
             %base-services)))

Ersetzen Sie in der obigen Konfiguration aber folgende Felder:

(host-name "my-server")       ; hier sollte Ihr Servername stehen
; Wenn Sie sich einen Linode-Server außerhalb der USA ausgesucht
; haben, finden Sie mit tzselect die richtige Zeitzonenangabe.
(timezone "America/New_York") ; Zeitzone ersetzen wenn nötig
(name "janedoe")              ; Ersetzen durch Ihren Benutzernamen
("janedoe" ,(local-file "janedoe_rsa.pub")) ; Ersetzen durch Ihren SSH-Schlüssel
("root" ,(local-file "janedoe_rsa.pub")) ; Ersetzen durch Ihren SSH-Schlüssel

Durch die letzte Zeile im obigen Beispiel können Sie sich als Administratornutzer root auf dem Server anmelden und das anfängliche Passwort für root festlegen (lesen Sie den Hinweis zur Anmeldung als root am Ende dieses Rezepts). Nachdem das erledigt ist, können Sie die Zeile aus Ihrer Konfiguration löschen und Ihr System rekonfigurieren, damit eine Anmeldung als root nicht mehr möglich ist.

Kopieren Sie Ihren öffentlichen SSH-Schlüssel (z.B. ~/.ssh/id_rsa.pub) in die Datei <Ihr-Benutzername>_rsa.pub und Ihre guix-config.scm ins selbe Verzeichnis. Führen Sie dann diese Befehle in einem neuen Terminal aus:

sftp root@<IP-Adresse-des-entfernten-Servers>
put /pfad/mit/dateien/<Benutzername>_rsa.pub .
put /pfad/mit/dateien/guix-config.scm .

Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:

mkdir /mnt/guix
mount /dev/sdc /mnt/guix

Aufgrund der Art und Weise, wie wir den Bootloader-Abschnitt von guix-config.scm oben festgelegt haben, installieren wir GRUB nicht vollständig. Stattdessen installieren wir nur unsere GRUB-Konfigurationsdatei. Daher müssen wir ein bisschen von den anderen GRUB-Einstellungen vom Debian-System kopieren:

mkdir -p /mnt/guix/boot/grub
cp -r /boot/grub/* /mnt/guix/boot/grub/

Initialisieren Sie nun die Guix-Installation:

guix system init guix-config.scm /mnt/guix

OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“.

Sobald es gestartet ist, sollten Sie sich über SSH anmelden können! (Allerdings wird sich die Serverkonfiguration geändert haben.) Ihnen könnte eine Fehlermeldung wie diese hier gezeigt werden:

$ ssh root@<server ip address>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:0B+wp33w57AnKQuHCvQP0+ZdKaqYrI/kyU7CfVbS7R4.
Please contact your system administrator.
Add correct host key in /home/joshua/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/joshua/.ssh/known_hosts:3
ECDSA host key for 198.58.98.76 has changed and you have requested strict checking.
Host key verification failed.

Löschen Sie entweder die ganze Datei ~/.ssh/known_hosts oder nur die ungültig gewordene Zeile, die mit der IP-Adresse Ihres Servers beginnt.

Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen.

ssh root@<IP-Adresse-des-entfernten-Servers>
passwd  ; für das root-Passswort
passwd <benutzername> ; für das Passwort des normalen Benutzers

Es kann sein, dass die obigen Befehle noch nicht funktionieren. Wenn Sie Probleme haben, sich aus der Ferne über SSH bei Ihrer Linode-Kiste anzumelden, dann müssen Sie vielleicht Ihr anfängliches Passwort für root und das normale Benutzerkonto festlegen, indem Sie auf die „Launch Console“-Option in Ihrer Linode klicken. Wählen Sie „Glish“ statt „Weblish“. Jetzt sollten Sie über SSH in Ihre Maschine ’reinkommen.

Hurra! Nun können Sie den Server herunterfahren, die Debian-Platte löschen und Guix auf den gesamten verfügbaren Speicher erweitern. Herzlichen Glückwunsch!

Übrigens, wenn Sie das Ergebnis jetzt als „Disk Image“ speichern, können Sie neue Guix-Abbilder von da an leicht einrichten! Vielleicht müssen Sie die Größe des Guix-Abbilds auf 6144MB verkleinern, um es als Abbild speichern zu können. Danach können Sie es wieder auf die Maximalgröße vergrößern.


Nächste: Guix auf einem Kimsufi-Server nutzen, Vorige: Fensterverwalter (Window Manager) anpassen, Nach oben: Systemkonfiguration   [Inhalt][Index]