cloud-init இன்றி DigitalOcean யில் Guix அமைத்தல்

cloud-init இன்றி DigitalOcean யில் Guix அமைத்தல்

Published by Arun Isaac on

In other languages: English

Tags: guix, software

Guix cloud-init பணி இன்னும் எழுதப்பட்டுக்கொண்டிருக்கிறது. அது வரை, எவ்வாறு DigitalOcean யில் Guix அமைக்கலாம் எனக் காண்போம்.

Guix cloud-init பணி இன்னும் எழுதப்பட்டுக்கொண்டிருக்கிறது. அது வரை காத்திருக்கவேண்டியில்லை. உடனே எவ்வாறு DigitalOcean யில் Guix அமைக்கலாம் எனக் காண்போம்.

VPS வழங்கியைத் துவக்க Guix அமைப்பு உரு (Guix system image)

முதலில் எளிய உரு அமைப்புடன் துவங்கலாம்:

;; starter.scm
(use-modules (gnu)
             (gnu image)
             (gnu system image))

(use-service-modules base networking ssh)

(define %starter-os
  (operating-system
    (host-name "my-vps")
    (timezone "Europe/London")
    (bootloader (bootloader-configuration
                  (bootloader grub-bootloader)
                  (targets '("/dev/vda"))
                  (terminal-outputs '(console))))
    (file-systems (cons (file-system
                          (mount-point "/")
                          (device "/dev/vda1")
                          (type "ext4"))
                        %base-file-systems))
    (services
     (cons* (service dhcpcd-service-type)
            (service openssh-service-type
                     (openssh-configuration
                       (permit-root-login 'prohibit-password)
                       (authorized-keys
                        `(("root" ,(local-file "/path/to/ssh/public/key"))))))
            (modify-services %base-services
              (guix-service-type
               config => (guix-configuration
                           (inherit config)
                           (authorized-keys
                            (cons (local-file "/etc/guix/signing-key.pub")
                                  (guix-configuration-authorized-keys config))))))))))

(define GiB (* 1024 1024 1024))

(image
  (inherit mbr-disk-image)
  (name 'starter-image)
  (format 'compressed-qcow2)
  (operating-system %starter-os)
  (partitions
   (list (partition
           (inherit root-partition)
           (offset root-offset)
           (size (* 9 GiB)))))
  (volatile-root? #false))

இவ்வெடுத்துக்காட்டில், 10 GiB வட்டளவே உடைய மிகச் சிறிய DigitalOcean VPS வழங்கியைப் பயன்படுத்துகிறோம். ஆனால் துல்லியமாக பார்த்தால் அதன் அளவு 10 GiB க்குச் சற்று குறைவாகவே இருக்கும். அதனால் எதற்கும் வகிர்வை (partition) 9 GiB ஆக்கிப் பின் முழு வட்டை ஆட்கொள்ளுமாறு பெரிதாக்கலாம்.

மேலும் நமது கணினியின் கையொப்ப திறவியை உருவின் Guix யில் ஏற்றுக்கொள்கிறோம். பின்னர் guix deploy செய்ய இது பயன்படும்.

உருவை ஆக்கிப் பதிவேற்று

உருவை guix system image கொண்டு ஆக்கலாம்.

guix system image starter.scm

பின், அதை DigitalOcean custom image ஆகப் பதிவேற்றி அதைக் கொண்டு வழங்கியொன்றைத் துவக்கலாம். இப்போது SSH மூலம் உட்நுழையலாம். அது வேலை செய்யாவிட்டால் வலைசார் droplet console கொண்டு பழுதுப்பார்க்க.

DigitalOcean custom image பதிவேற்றம் சற்று கடுப்பு பிடித்தது; அடிக்கடி Internal Server Error அடைவது. அப்படியானால், உருவை compressed-qcow2 வடிவில்லாது disk-image வடிவில் அமைத்து, gzip கொண்டு அமுக்கி பதிவேற்றிப் பார்க்க; அது எனக்கு வேலை செய்தது.

வகிர்வு பெரிதாக்கல்

உட்நுழைந்த பின், வகிர்வையும் மூலக் கோப்பமைப்பையும் (root filesystem) பெரிதாக்கினால் வேலை முடிந்தது!

guix shell cloud-utils -- growpart /dev/vda 1
resize2fs /dev/vda1

இப்போது இது வழக்கமான Guix கணினி. இதை எப்போதும் போல் SSH மூலம் guix deploy managed-host-environment-type கொண்டு மாற்றியமைக்கலாம்.

சிறிய மலிவான வழங்கிகளைப் பயன்படுத்தி மகிழ்க!

உங்கள் VPS வழங்கிகளுக்கு Guix நிரல்தொகுப்புகளை மூலத்திலிருந்து ஆக்குமளவு நினைவகம் இல்லாவிடினும் தேய்வில்லை. guix deploy பயன்படுத்தினால் அனைத்துமே உங்கள் கணினியில் அமைக்கப்பட்டு VPS வழங்கிக்கு அனுப்பிவைக்கப்படும். இதனால் எவ்வளவு சிறிய மலிவான VPS வழங்கியாக இருப்பினும் அதில் Guix பயன்படுத்தி மகிழலாம்.

VPS வழங்கி வெறும் அமர்த்தல் தளம் (deploy target) மட்டுமே. உங்கள் வழிச்செயலிக்கு (router) உரு அமைத்தால், வழிச்செயலியிலேயே மூலம் தொடங்கி அத்தனை மென்பொருளையும் அதிலேயே தொகுத்தமைக்க வேண்டுமென நினைக்கமாட்டீர், அல்லவா? அதைப் போன்றே இதுவும்.