luktom.net
  • blog
  • kontakt
  • english





Instalacja RancherOS

28 lis, 2015
Docker
Brak komentarzy
Odsłony : 8188

RancherOS to bardzo ciekawa dystrybucja linuxa zaprojektowania do uruchamiania kontenerów dockerowych. W RancherOS wszystko jest kontenerem, nawet podstawowe demony typu syslogd. Więcej o samej idei RancherOS przeczytacie tutaj, ja natomiast w niniejszym wpisie przedstawię jak szybko i skuteczenie zainstalować system RancherOS.

  • Tworzymy wirtualną maszynę na której będziemy instalować Ranchera.
  • Pobieramy obraz ISO (tylko 22 MB!) z instalatorem oraz podmontowujemy go do maszyny wirtualnej.
  • Uruchamiamy maszynę i bootujemy płytę intalacyjną.
  • Plik konfiguracyjny cloud-config wygodnie jest stworzyć na zewnętrznym komputerze, gdyż niekoniecznie będziemy w stanie wkleić klucze SSH do konsoli maszyny wirtualnej. Jeśli w naszej sieci nie mamy aktywnego serwera DHCP, konfiguracji sieci dokonujemy poniższymi poleceniami:
sudo ip addr add 192.168.0.100/24 dev eth0
sudo ip route add default via 192.168.0.1
  • Po skonfigurowaniu sieci logujemy się zdalnie do systemu uruchomionego z płyty instalacyjnej. Logowanie przez SSH wymaga podania domyśle użytkownika rancher z hasłem rancher.
  • Tworzymy plik cloud-config, jak poniżej, i kopiujemy go do systemu uruchomionego z płyty instalacyjnej.

UWAGA: do zainstalowanego systemu RancherOS można zalogować się wyłącznie kluczami SSH, hasło NIE JEST OBSŁUGIWANE!

  • Jeśli chcemy utworzyć dedykowany klucz pod instalację RancherOSa, możemy to łatwo zrobić poleceniem jak poniżej, gdzie rancher jest nazwą dla pliku z kluczem prywatnym (utworzony zostanie także plik rancher.pub, w którym znajdziemy klucz publiczny):
ssh-keygen -f rancher
  • Przykładowy plik cloud-config obejmuje ustawienie nazwy hosta, dodanie kluczy SSH (publicznych, z pliku rancher.pub utworzonego w poprzednim kroku), konfigurację sieci oraz opcjonalnie konfigurację dostępu do własnego repozytorium z pominięciem weryfikacji certyfikatów:
#cloud-config

hostname: RancherLabMgmt

ssh_authorized_keys:
 - ssh-rsa AAAAB3NzaC1yc2[...]gD0Q== [email protected]

rancher:
  network:
    interfaces:
      eth0:
        address: 192.168.0.100/24
        gateway: 192.168.0.1
    dns:
      nameservers:
        - 192.168.0.1
  user_docker:
    args: [ docker, -d, -s, overlay, -G, docker, -H, 'unix:///var/run/docker.sock', '--insecure-registry registry.lab.luktom.net:5000' ]
  • Następnie dokonujemy identyfikacji dostępnych partycji poleceniem sudo fdisk -l. Zazwyczaj będzie to /dev/sda:
[[email protected] ~]$ sudo fdisk -l

Disk /dev/sda: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda doesn't contain a valid partition table
  • Przystępujemy do instalacji właściwej, wykonując polecenie sudo rancheros-install -c config.yml -d /dev/sda, gdzie config.yml jest wcześniej przygotowanym przez nas plikiem cloud config, a /dev/sda dyskiem na którym chcemy zainstalować RancherOSa. Poniżej listing z przykładowej instalacji:
[[email protected] ~]$ sudo rancheros-install -c config.yml -d /dev/sda
No install type specified...defaulting to generic
All data will be wiped from this device
Partition: true
DEVICE: /dev/sda
Are you sure you want to continue? [yN]yUnable to find image 'rancher/os:v0.3.3' locally

v0.3.3: Pulling from rancher/os
64e5325c0d9d: Pull complete
bf84c1d84a8f: Pull complete
2fee06ebd21b: Pull complete
f883cdbc141f: Pull complete
3583989b6df5: Pull complete
c5b9cd3135d4: Pull complete
3aa1e4862bf7: Pull complete
18a17f653f50: Already exists
Digest: sha256:a7d233ec194d7e2796ef596ef724c7e7c1dc17504692d596dfb6ea0e62218fad
Status: Downloaded newer image for rancher/os:v0.3.3
+ DEVICE=/dev/sda
+ [[ -z /dev/sda ]]
++ wc -l
+++ echo /dev/sda
+++ cut -d / -f3
++ grep sda /proc/partitions
+ PARTITION_COUNT=1
+ '[' 1 -gt 1 ']'
+ fdisk /dev/sda

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x78c601e2.

Command (m for help): Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-209715199, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux' and of size 100 GiB.

Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

udev
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ DEVICE=/dev/sda
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ ENV=generic
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ CLOUD_CONFIG=/opt/user_config.yml
+ getopts i:f:c:d:t:r:o:p: OPTION
+ DIST=/dist
+ BASE_DIR=/mnt/new_img
+ PARTITION=/dev/sda1
+ KERNEL_ARGS=
+ '[' -n generic ']'
+ case ${ENV} in
+ format_and_mount
+ format_device
+ device_defined /dev/sda
+ [[ -z /dev/sda ]]
+ mkfs.ext4 -F -i 4096 -L RANCHER_STATE /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 26214144 4k blocks and 26214400 inodes
Filesystem UUID: 86b8214d-037d-4daf-a4ac-f7e6459cce6a
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

+ mount_device
+ local label=RANCHER_STATE
+ local raw=false
+ mkdir -p /mnt/new_img
++ lsblk -o name
++ grep RANCHER_BOOT
++ wc -l
+ '[' 0 -eq 1 ']'
+ local 'mount_opts=-L RANCHER_STATE'
+ '[' false == true ']'
+ mount -L RANCHER_STATE /mnt/new_img
+ trap 'umount /mnt/new_img' EXIT
+ create_boot_dirs
+ mkdir -p /mnt/new_img/boot/grub
+ install_grub
+ grub-install --boot-directory=/mnt/new_img/boot /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
+ /scripts/seed-data /mnt/new_img /opt/user_config.yml
+ BASE_DIR=/mnt/new_img
+ CLOUD_DATA=/opt/user_config.yml
+ IFS=,
+ read -ra FILES
+ '[' -z /mnt/new_img ']'
+ mkdir -p /mnt/new_img/lib/rancher/conf/cloud-config.d
+ cp /opt/user_config.yml /mnt/new_img/lib/rancher/conf/cloud-config.d/
+ grub2_config ''
+ local grub_cfg=/mnt/new_img/boot/grub/grub.cfg
+ local append_line=
+ cat
+ '[' '!' -z ']'
+ pvgrub_config ''
+ local grub_file=/mnt/new_img/boot/grub/menu.lst
+ local append_line=
+ cat
+ '[' '!' -z ']'
+ install_rancher
+ cp /dist/initrd /mnt/new_img/boot/initrd-v0.3.3-rancheros
+ cp /dist/vmlinuz /mnt/new_img/boot/vmlinuz-v0.3.3-rancheros
+ umount /mnt/new_img
RancherOS has been installed. Please reboot...
  • Po udanej instalacji uruchamiamy ponownie system, a następnie logujemy się do niego z użyciem klucza, w naszym przykładzie będzie to polecenie:
ssh -i rancher 192.168.0.100

W tym momencie system jest gotowy do użycia i uruchamiania na nim kontenerów Dockerowych.

RancherOS stanowi idealną bazę do dalszej rozbudowy i instalacji oprogramowania do zarządzania klastrem, o nazwie… Rancher. Ale o tym w następnych wpisach :)

 



Tagi :   dockerkontenerykonteneryzacjarancherrancheros

Powiązane wpisy

  • Instalacja klastra Rancher

  • Własne repozytorium Dockera

  • Rancher i prywatne repozytoria Dockera

  • Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Jak podłączyć program R do SQL Servera?

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone