Go to the navigation

elblogg

<-->

Media: BLUG: Rask innføring i FreeBSD og FreeBSD jails

Her er videoen og lydopptaket fra foredraget til Christer Solskogen om FreeBSD på BLUG’s “Last Thursday”-møte i Februar. Takk til Ugress for musikk (www.ugress.com). Innkallingsteksten til møtet var som følger:

Det er snart 8 år siden BLUG ble kjent med FreeBSD. Christer tar en rask innføring(installasjon, oppgradering, ports, etc) iblandet oppsummering om hva som har skjedd siden sist. Deretter går han til angrep på virtualisering med FreeBSD jails.

FreeBSD er et fritt operativsystem med sine røtter i AT&T UNIX og videre Berkeley Software Distribution (BSD). Det er et komplett operativsystem. Kjernen, enhetsdrivere og alle basisprogrammene er utviklet som én kodebase, i motsetning til Linuxdistribusjonene der kjernen og basisprogrammene er utviklet seperat, og satt sammen til en distribusjon av andre.

FreeBSD jails er en mekanisme som lar systemadministratorer dele opp et FreeBSD system i flere uavhengige, virtuelle, minisystemer. [1]

Foredragsholder er Christer Solskogen

Siden filene denne gangen er lastet opp på en annen tjener er ikke RSS-feeden oppdatert enda.

Rask innføring i FreeBSD og FreeBSD jails ved Christer Solskogen

Program

  • Hva har skjedd siden sist?
  • Hva er FreeBSD?
  • Installasjon og konfigurering
  • Oppgradering og alternative installasjonsmetoder
  • Jails

Hva har skjedd siden sist?

  • FreeBSD er fortsatt ikke Linux
  • Kjører på fler arkitekturer: i386, amd64, ia64, pc98, powerpc, sparc64,ARM,MIPS,Xbox
  • 14543 flere ‘ports’ (21328)
  • Bedre støtte for Java
  • Bedre MySQL ytelse
  • +4 (FreeBSD 8.0 ble sluppet 25.11.09)
  • Har fått nye familiemedlemmer: PC-BSD, DesktopBSD, FreeSBIE, m0n0wall, pfSense, FreeNAS og ikke minst DragonFly BSD.
  • Deler fortsatt kode med NetBSD, OpenBSD og Mac OS X.
  • Blitt bedre venner med Sun/Oracle (ZFS)

Til glede for nye deltagere (Hva er FreeBSD?)

  • Open source UNIX-lignende operativsystem
  • Et komplett operativsystem (både kjerne, drivere og userland er i samme Subversion repo)
  • BSD lisensen
  • Styres fra et core team
  • Har Xorg, GNOME, KDE og alle dine kjente applikasjoner fra Linux-verden
  • Kan til dels emulere Linux
  • Tredjepartsapplikasjoner installeres via det som kalles ports
  • Blir antageligvis mer brukt som server enn som til arbeidsstasjon

Releaseprosessen

  • 6.0 (tag:RELENG_6_0_0)
  • 7.1(-pX) (branch:RELENG_7_1)
  • 8.x (branch:RELENG_8)
  • 9 (trunk HEAD/CURRENT)
  • MFC: Merge from Current

Hva er egentlig ports?

  • FreeBSD har et repo bestående av Makefiler (og metadata) for applikasjoner som er utviklet utenfor prosjektet (feks Firefox, GNOME osv)
  • Ports er rammeverket for å installere disse applikasjonene
  • Applikasjonene blir enten installert fra kildekode eller som en prekompilert ‘package’
  • Ports består av en samling Makefiles organisert i forsjellige kategorier i /usr/ports som feks /usr/ports/www/firefox35
  • Kommandoen ‘make install’ vil laste ned kildekoden og de avhenighetene porten har, bygge og installere
  • Hver port har sin maintainer (maintainer kan også være en gruppe som feks gnome@)

Installasjon av FreeBSD

<Christer viser installasjonen i Virtualbox>

Disk/Partisjoner/slices I FreeBSD

  • SCSI/USB: da
  • ATA IDE/sata: ad
  • AHCI: ada
  • ATA IDE/sata cd/dvd: acd
  • SCSI CD: cd
  • Floppy: fd0
  • Slices er filsystemer i en partisjon
  • ad0s1a er første slice på første partisjon på første disk
  • ZFS tar over hele disken (feks ad1) ingen partisjonering nødvendig
  • ZFS kan likevel være på en partisjon eller en slice
  • Filsystemer i FreeBSD
    • UFS
    • MFS
    • TMPFS
    • ZFS
    • DEVFS
    • SWAP
  • Kan montere følgende uten ekstra hjelp
    • NFS
    • SMBFS
    • NTFS
    • EXT2/3
    • CD9660

Konfigurere FreeBSD

  • /etc/rc.conf
  • Hostnavn
  • Nettverk
  • Daemoner
  • /etc/defaults/rc.conf inneholder standard instillinger som /etc/rc.conf overstyrer
  • Eksempel /etc/rc.conf
  • host=shine
  • ifconfig_em0=’inet 192.168.0.3/24′
  • defaultrouter=’192.168.0.1′
  • keymap=’norwegian.iso’
  • sshd_enable=’YES’
  • Eksempel /etc/rc.conf…
  • sendmail_enable=NONE
  • postfix_enable=1
  • syslogd_flags=’-C -b 192.168.0.3′
  • /etc/make.conf
  • Inneholder feks CFLAGS og andre compile-time opsjoner til bygging av ports og ‘world’
  • /etc/src.conf
  • Inneholder konfigurasjon for bygging av verden
  • feks. WITHOUT_SENDMAIL=1

Oppdatere FreeBSD

  • Hente ned kildekode med csup(cvsup)
  • csup /sti/til/csup-fil
  • *default host=cvsup.no.FreeBSD.org
  • *default base=/var/db
  • *default prefix=/usr
  • *default release=cvs tag=RELENG_8_0
  • *default delete use-rel-suffix
  • *default compress
  • src-all

Oppdatere og oppgradere FreeBSD

  • Fra kildekode: cd /usr/src make buildworld buildkernel installkernel reboot make installworld mergemaster && reboot
  • Oppdatere med freebsd-update # freebsd-update fetch # freebsd-update install # reboot
  • Oppgradere FreeBSD med freebsd-update # freebsd-update upgrade -r 8.0-RELEASE # freebsd-update install # shutdown -r now # freebsd-update install # freebsd-update install # shutdown -r now
  • Oppdatere med freebsd-update # freebsd-update fetch # freebsd-update install # reboot

Konfigurere kjerne

  • Kjernekonfigurasjon er i en tekstfil som finnes i /usr/src/sys/${ARCH}/config cp GENERIC FOOBAR ${EDITOR} FOOBAR cd /usr/src && make buildkernel && make installkernel
  • Gammel kjerne blir flyttet /boot/kernel.old
  • Ny kjerne er /boot/kernel

Installere FreeBSD fra FreeBSD

  • Etter buildworld (og buildkernel) kan FreeBSD installeres feks til en USB disk # fdisk -BI /dev/da0 # bsdlabel -Bw /dev/da0s1 # newfs -S /dev/da0s1a # mount /dev/da0s1a /mnt # make installworld installkernel distribution DESTDIR=/mnt

Installere ports

  • Ports lever i /usr/ports
  • Makefilene (og metadata) må lastes ned etter installasjon # portsnap fetch extract (første gang) # portsnap fetch update (for videre bruk) # /usr/sbin/portsnap -I cron update ( i crontab)

Installere noe fra ports

<Christer installerer sin favoritteditor>

Oppgradere utdaterte ports

# pkg_version -IL= (lister utdaterte ports)
  • portupgrade eller portmaster er verktøy for å oppgradere utdaterte ports # portmaster -av # portupgrade -av
  • Andre portsverktøy # pkg_add -r joe (installerer en prekompilert pakke av joe) #pkg_info – lister alle installerte ports/pakker # pkg_delete joe\* – sletter joe # pkg_delete -r joe\* – sletter joe og joes avhenigheter

Jails

  • Operating system-level virtualization
  • 1 kjerne, X jails
  • Hvert jail har sine egne filer, prosesser og root-brukere og hvert jail har sin ipaddresse. En vanlig bruker vil ikke kunne se et skille mellom et jail og et ‘prison’
  • Mange måter å installere et jail på: #make installworld distribution \ DESTDIR=/sti/til/jail # vi /etc/rc.conf
    • jail_enable=YES jail_list=”bright loyal” jail_mount_enable=”YES” jail_devfs_enable=”YES” jail_bright_rootdir=/usr/jails/bright jail_bright_hostname=bright jail_bright_ip=192.168.0.11 jail_loyal_rootdir=/usr/jails/loyal jail_loyal_hostname=loyal jail_loyal_ip=192.168.0.15 ################################### # Network configuration for jails # ################################### ifconfig_re0_alias0=”inet 192.168.0.11/32″ ifconfig_re0_alias1=”inet 192.168.0.15/32″

Bruke wrapperscript som feks ezjail

  • # ezjail-admin update -i # ezjail-admin create loyal 192.168.0.11
  • (Du må fortsatt ha nettverkskonfigurasjon i rc.conf)
  • Ezjail kjører installworld til en mappe som andre jails monterer read-only fra, med untak av /root, /etc, /var, /usr/local og /usr/home

Bruke wrapperscript som feks jailcfg (WIP)

  • # Angi ip i DNS eller /etc/hosts # jailcfg create bright loyal bekk fjell
  • Skal egentlig gjøre resten automagisk – inntil videre får du bare beskjed om hva du skal
  • Jailcfg monterer allerede eksisterende system read-only, med untak av /root, /etc, /var, /usr/local og /usr/home (/home)

Jails

  • Starte jail # /etc/rc.d/jail start (jailnavn)
  • Stoppe jail # /etc/rc.d/jail stop (jailnavn)
  • Liste ut kjørende jails # jls
  • Kjøre noe i et jail # jexec jid csh
  • Hostsystem kan være FreeBSD 8.0 – mens jails kjører FreeBSD 6.2, 7.0 etc (kjerne vil fortsatt være 8.0)
  • Et jail kan ha flere ipaddresser og støtter Ipv6
  • Er ganske sikkert – Ingen har brutt seg ut enda
  • Jails har vært med siden FreeBSD 4.0 – og var en så god ide at Sun måtte lage noe tilsvarende: Solaris Zones
  • Et jail kan godt ha en loopback ip og la feks pf ta seg redirects
  • Et jail  - En tjeneste – Sikkert!
  • Varnish – Stunnel – Apache – MySQL

Dokumentasjon og hjelp

  • Et kapittel for seg selv(!)
  • FreeBSD Handbook
  • Epostlister
  • forums.FreeBSD.org
  • irc://##freebsd@freenode

Leave a Reply

Bloggurat Twingly BlogRank Blogglisten