Deployment FreeBSD na Amazon AWS EC2.

Sekcia: Ostatné 12.09.2016 | 23:11
Avatar samalama-mate-to-pokazene   Návštevník

Preco FreeBSD
Pretoze linux ide so systemd a vsetkym moznym do sraciek (a devuan ma k produkcnemu nasadeniu este daleko). Pretoze mam rad FreeBSD, je to rychly a (zatial celkom) cisty system.

Preco Amazon AWS
Pretoze je to jedina cloudova sluzba, s ktorou mam skusenosti. Pretoze ma neskutocne vlastnosti umoznujuce prakticky cokolvek. A staci mat funkcnu (bankomatovu) kartu. Dokonca prvy rok mate k dispozitie nejake tie zdroje zadarmo na vyskusanie.

Preco vlastna instalaci FreeBSD
Samozrejme k dispozicii je mnozstvo roznych hotovych FreeBSD AMI, ale radsej mam veci, ktorych historiu poznam. Dalej plati prvy bod.

Predpoklady
Ohladom prace s EC2 tu nebudem pisat podrobny navod, len zhrniem, co treba vediet, resp. mat rozbehane. Samotnej instalacii FreeBSD sa budem venovat trochu podrobnejsie.

- funkcne AWS konto
- zakladne znalosti Amazon EC2 Console alebo ec2-api-tools
- zakladne znalosti cmd vo FreeBSD

Teoria

Teoria je velmi jednoducha. K beziacej FreeBSD instancii si pripojime EBS volume (akoze disk). Na nom vytvorime particie, naformatujeme a pripojime do systemu. Z instalacneho CD na nho rozbalime zakladny system, nakonfigurujeme ho a nainstalujeme bootloader. Volume odpojime, vytvorime snapshot a zaregistrujeme AMI. Eto vsjo.

Prax

Startneme si "nejaku" FreeBSD instanciu. Ja som pouzil AMI FreeBSD-10.3 priamo od Amazonu. Vytvorime si EBS volume s velkostou 10GB (ale to je v podstate jedno, hlavne aby tam vosiel system) a pripojime ho k instancii. V dmesg uvidime nieco ako

xbd5: 10240MB <Virtual Block Device> at device/vbd/51792 on xenbusb_front0

To znamena, ze nam pribudlo blokove zariadenie /dev/xbd5

Na disku vytvorime GPT tabulku

# gpart create -s GPT xbd5

Potom vytvorime particiu pre bootloader (obdoba linuxovej grub bios boot partition - EF02)

# gpart add -t freebsd-boot -s 16K -l boot -i 1 xbd5

A nakoniec particiu pre system (swap a particie pre jemnejsie rozdelenie systemu vynecham)

# gpart add -t freebsd-ufs -l root -i 2 xbd5

Jednotlive parametre

-t - typ particie (obdoba linuxovych Linux RAID, BIOS boot partition, LVM...)
-s - velkost particie (ak nie je zadane, pouzije sa najvacia mozna cast)
-l - label
-i - index - poradie partici (obdoba linuxovych sda1, sda2, sda3...)

Takze by sme mali mat take nieco

# gpart show /dev/xbd5
=>      34  20971453  xbd5  GPT  (10G)
        34        32     1  freebsd-boot  (16K)
        66  20971421     2  freebsd-ufs  (10G)

a taketo

# ll /dev/xbd5*
crw-r-----  1 root  operator  0x57 Sep 12 20:22 /dev/xbd5
crw-r-----  1 root  operator  0x5a Sep 12 20:22 /dev/xbd5p1
crw-r-----  1 root  operator  0x5c Sep 12 20:22 /dev/xbd5p2
    • RE: Deployment FreeBSD na Amazon AWS EC2. 12.09.2016 | 23:18
      Avatar bedňa LegacyIce-antiX  Administrátor

      Aký je rozdiel medzi BSD a MS Windows? Nula, nula nič. BSD kód je možné podľa licencie uzavrieť a MS je uzavretý od začiatku.

      Komunita Hipsterov je ďalší bonus.

      Určite si BSD nainštalujem keď mi niekto bude držať hlaveň pri hlave.

      S pozdravom Bedňa.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Deployment FreeBSD na Amazon AWS EC2. 12.09.2016 | 23:41
        Avatar samalama-vraj-uz-existuje   Návštevník

        Aký je rozdiel medzi BSD a MS Windows? Nula, nula nič.
        :D :D :D

        BSD kód je možné podľa licencie uzavrieť
        a? zrejme vobec nechapes zmysel BSD licencie (a inych licencii)

        Komunita Hipsterov je ďalší bonus.
        freebsd tu bolo, ked vacsina dnesnych hipsterov este ani kacura za sebou netahali

        myslim, ze ti uz ten gnu|free|opensource svet (a mozno aj chlast) trosku tlaci na mozog...

        • RE: Deployment FreeBSD na Amazon AWS EC2. 12.09.2016 | 23:57
          Avatar bedňa LegacyIce-antiX  Administrátor

          Povedz mi jediný problém čo mi bráni u BSD uzavrieť softvér? Fakt by som si ho rád prečítal. Ja viem že neexistuje, ale skús ho napísať.

          Jaj, fakt sa na to teším, ale že fakt moc.

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Deployment FreeBSD na Amazon AWS EC2. 13.09.2016 | 00:08
            Avatar samalama...   Návštevník

            ale ved si kludne uzavri bsd soft. len neviem, co to ma spolocne s freebsd...

            • RE: Deployment FreeBSD na Amazon AWS EC2. 13.09.2016 | 00:11
              Avatar bedňa LegacyIce-antiX  Administrátor

              Nemám rád ten prístup, je to sloboda, ktorá sa tvári ako sloboda a vlastne to sloboda nieje.

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • RE: Deployment FreeBSD na Amazon AWS EC2. 13.09.2016 | 01:03
                Avatar samalama.   Návštevník

                paradoxne gpl ta obmedzuje uplne, zatial co bsd ti dava totalnu slobodu. uz len to pochopit, ze...?

                • RE: Deployment FreeBSD na Amazon AWS EC2. 13.09.2016 | 23:09
                  Avatar bedňa LegacyIce-antiX  Administrátor

                  Som vlastne rád, že si to začal písať zmysluplné veci.

                  Ale vrátim sa k téme. Proste jedného dňa mi došlo, prečo by som mal pred kamarátmi tajiť veci ktoré viem. Takže začneš svoje vedomosti vydávať voľne. No svet nieje úplne ideálny a vždy sa nájde chytrák, ktorý to všetko čo si mu dal, sa snaží uzavrieť pre seba a svoju nenažranosť. Takže on vysal tvoje vedomosti, ale ďalej ich už len predáva vo svoj prospech.

                  Takýto ľudia majú aj konkrétne pomenovanie ako hajzlík, vyčúranec a ďalšie. Takže tu máme GPL ktorá práve toto rieši.

                  Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
                  • RE: Deployment FreeBSD na Amazon AWS EC2. 16.09.2016 | 11:27
                    Avatar samalama.   Návštevník

                    takze zoberiem freebsd, doprogramujem do nho hypervizor, cele to uzavriem a budem predavat ako komercny produkt? kde je problem? komu som co ukradol...?

    • RE: Deployment FreeBSD na Amazon AWS EC2. 12.09.2016 | 23:23
      Avatar samalama-mate-to-pokazene   Návštevník

      Nainstalujeme este bootloader na prvu particiu

      # gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 xbd5

      Vytvorime filesystem na root particii

      # newfs -U /dev/xbd5p2

      a pripojime do /mnt/root

      # mount /dev/xbd5p2 /mnt/root

      Dalej budeme potrebovat obraz instalacneho CD FreeBSD 10.3, ktore si stiahneme z netu a ulozime na beziacu instanciu , rozbalime a pripojime do /mnt/cdrom.

      # wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-disc1.iso.xz
      # xz -d FreeBSD-10.3-RELEASE-amd64-disc1.iso.xz
      # mdconfig -a -t vnode -f FreeBSD-10.3-RELEASE-amd64-disc1.iso
      # mount -t cd9660 /dev/md0 /mnt/cdrom
      

      Nebudem to rozpisovat podrobnejsie, vsetko sa da vyguglit. Vysledom je pripojene CD do /mnt/cdrom.

      Instalacia systemu

      Ono to ani nie je instalacia ako skor kopirovanie. Z pripojeneho instalacneho CD z adresara /mnt/cdrom/usr/freebsd-dist rozbalime zakladny system na (buducu) systemovu particiu

      # cd /mnt/cdrom/usr/freebsd-dist
      # tar -xJf base.txz -C /mnt/root/
      # tar -xJf kernel.txz -C /mnt/root/
      

      Tymto je instalacia hotova 8-), zostava uz len konfiguracia.

      Konfiguracia

      fstab

      Vytvorime subor /mnt/root/etc/fstab

      /dev/ada0p2     /       ufs     rw      1       1


      Siet

      Vytvorime subor /mnt/root/etc/rc.conf

      ifconfig_DEFAULT="SYNCDHCP"

      Instancie v EC2 ziskavaju IP adresu z DHCP servera

      SSH

      Povolime start SSH pri bootovani. Pridame do /mnt/root/etc/rc.conf

      sshd_enable="YES"

      Vytvorime adresar /mnt/root/root/.ssh s pravami zapisu a citania len pre vlastnika

      # mkdir -m 700 /mnt/root/root/.ssh

      Nakopirujem do nho svoj verejny SSH kluc a nazveme ho authorized_keys.

      Nakoniec povolime SSH pre root-a

      # sed -i 's/^#PermitRootLogin .*/PermitRootLogin yes/' /mnt/root/etc/ssh/sshd_config


      Koniec
      To je vsetko. Umountneme rootfs

      # umount /mnt/root


      Teraz staci uz len vytvorit z daneho volumu snapshot a z neho zaregistrovat nove AMI.

      Este by sa to vsetko patrilo prepisat do automatizacneho enginu (napr. ansible) a mame vystarane...