sobota, 30 czerwca 2012

Debian install/SSH

Instalacja systemu Debian poprzez SSH (netboot).

Wersja netboot instalatora:

Squeeze:
http://ftp.pl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/

kernel: http://ftp.pl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
initrd:  http://ftp.pl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz

Wheezy:
http://ftp.pl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/

Konfiguracja GRUB:

title DebianInstallOverSSH
        root (hd0,0)
        kernel /debian/linux auto=true priority=critical locale=en_US language=en country=PL interface=eth0  netcfg/confirm_static=true hostname=debian domain=socha.it netcfg/disable_dhcp=true url=http://pkg.socha.it/debian/netconsole.txt netcfg/get_nameservers=8.8.8.8 netcfg/get_ipaddress=IP netcfg/get_netmask=NETMASK netcfg/get_gateway=GW
        initrd /debian/initrd.gz

preseed: http://pkg.socha.it/debian/netconsole.txt

d-i anna/choose_modules string network-console
d-i network-console/password password debinstall
d-i network-console/password-again password debinstall
d-i console-keymaps-at/keymap select us
d-i keyboard-configuration/xkb-keymap select us
 
ssh installer@IP

pass: debinstall

piątek, 27 kwietnia 2012

Instalacja XEN-a na eco.atman.pl (ATMAN)


Konfiguracja XEN w systemie Debian 6.x na serwerach dedykowanych EcoSerwer (http://eco.atman.pl)


Na chwilę obecną nie znam powodu dlaczego nie działa standardowa konfiguracja XEN w trybie bridge (działa bez problemu na serwerach OVH i HETZNER).

Instalacja systemu XEN w Debianie zgodnie z instrukcją: http://wiki.debian.org/Xen

 

Konfiguracja interfejsów (bridge)


 /etc/network/interfaces:


  iface peth0 inet manual
  auto eth0
  iface eth0 inet static
          address IP
          netmask NETMASK
          network NETWORK
          broadcast BROADCAST
          gateway GATEWAY
          dns-nameservers 8.8.8.8
          dns-search vm.socha.it
          bridge_ports peth0
          bridge_stp off
          bridge_maxwait 0
          bridge_fd 0
          up /sbin/sysctl -p /etc/sysctl.d/xen.conf
          up /sbin/ip route add IP1/32 dev eth0
          up /sbin/ip route add IP2/32 dev eth0
          …
          up /sbin/ip route add IPN/32 dev eth0

  IP – podstawowy numer IP serwera
  IP1 – dodatkowy adres IP
  IP2 – dodatkowy adres IP
  IPN – jw.

Interfejs peth0 to fizyczny interfejs serwera. Nazwa została ustawiona poprzez udev 
(/etc/udev/rules.d/70-persistent-net.rules)

Zawartość pliku /etc/sysctl.d/xen.conf:
  net.ipv4.ip_forward = 1
  net.ipv4.conf.all.rp_filter = 0
  net.ipv4.conf.default.rp_filter = 0
  net.bridge.bridge-nf-call-ip6tables = 0
  net.bridge.bridge-nf-call-iptables = 0
  net.bridge.bridge-nf-call-arptables = 0

W pliku /etc/xen/xend-config.sxp  wpis „(network-script network-bridge)” musi być nieaktywny  (tak jest domyślnie ustawione po instalacji).

 

 Konfiguracja domU


             /etc/xen/vm/vhost:
name = "vhost"
memory = "2048"
disk = [ 'phy:/dev/vm/vhost-root,xvda,w', 'phy:/dev/vm/vhost-swap,xvdb,w' ]
vif = [ 'mac=00:16:3e:XX:XX:XX, bridge=eth0,vifname=vif0' ]
vcpus=2
on_reboot = 'restart'
on_crash = 'restart'
bootloader="pygrub" 

CENTOS
           
            /etc/sysconfig/network-scripts/ifcfg-eth0:
           
DEVICE=eth0
ONBOOT=yes
IPADDR=IP1
NETMASK=255.255.255.255
NM_CONTROLLED=no
TYPE=Ethernet

/etc/sysconfig/network-scripts/route-eth0:

GATEWAY dev eth0
default via GATEWAY dev eth0

DEBIAN

/etc/network/interfaces:

auto eth0
iface eth0 inet static
        address IP1
        netmask 255.255.255.255
        up /sbin/ip route add GATEWAY dev eth0
        up /sbin/ip route add default via GATEWAY


sobota, 31 grudnia 2011

Instalacja CentOS 6.x

Dotyczy CentOS 6.2

Instalacja minimalna
Usunięcie zbędnych pakietów:
yum remove -y audit iptables-ipv6 dbus qpid-cpp-server

Instalacja nowych pakietów:
yum -y  install vim screen mc sysstat wget man ntsysv openssh-clients logwatch bind-utils mtr

Wyłączenie IPv6:

echo "options ipv6 disable=1"  >/etc/modprobe.d/disable-ipv6.conf

Update:
yum clean all
yum update -y

Wyłączenie zbędnych konsol

sed -i -e 's/tty\[1-6\]/tty[1-2]/' /etc/sysconfig/init

Opcjonalne wyłączenie SELinux

sed --follow-symlinks -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

Strojenie conntrack:

echo "options nf_conntrack hashsize=2097152" >/etc/modprobe.d/ip_conntrack.conf
echo "net.netfilter.nf_conntrack_tcp_timeout_established = 28800" >>
/etc/sysctl.conf


wtorek, 7 grudnia 2010

kexec w CentOS

Kexec to przydatna funkcja kernela Linuxa umożliwiająca uruchomienie innego jądra systemu z aktualnie uruchomionego systemu. Dzięki jej wykorzystaniu możemy podmienić działające jądro z pominięciem procedury BIOS serwera (która może trochę trwać na co niektórych konfiguracjach).

Wymagane pakiety:
yum install kexec-tools
Wykorzystanie kexec:
# Załadowanie nowego jądra
kexec -l /boot/vmlinuz-2.6.18-238.19.1.el5 --initrd=/boot/initrd-2.6.18-238.19.1.el5.img --append="$(cat /proc/cmdline)"
# Załadowanie nowego jądra (poziom 6 init - reboot)
telinit 6
Na serwerach dedykowanych home.pl warto użyć tej składni w celu uniknięcia odcięcia od konsoli systemowej:
kexec -l /boot/vmlinuz-2.6.18-238.19.1.el5.el5 --initrd=/boot/initrd-2.6.18-238.19.1.el5.img --append="$(cat /proc/cmdline)" --console-serial --serial=ttyS0 --serial-baud=115200

piątek, 3 grudnia 2010

Własne medium instalacyjne z CentOS 5.x

Instrukcja przedstawia przygotowanie własnego repozytorium instalacyjnego z zaktualizowanymi pakietami RPM. Ponadto przedstawione są kroki wymagane do przygotowanie minimalnej  płyty instalacyjnej CD. Instrukcja przygotowana i testowana pod CentOS 5.6 x86_64.

Przygotowanie środowiska
# Wymagane pakiety:
yum install createrepo yum-utils mkisofs
# Struktura katalogów roboczych:
mkdir -p /storage/centos/{i386,x86_64}/{media,work}
mkdir -p /storage/centos/updates
Pobranie plików instalacyjnych
# Pobranie plików instalacyjnych dla architektury i386
lftp -e 'lcd /storage/centos/i386/media && open http://download.hetzner.de/mirrors/centos/5.6/i386/ && mirror &&  get .treeinfo && get .discinfo && quit'

# Pobranie plików instalacyjnych dla architektury x86_64

lftp -e 'lcd /storage/centos/x86_64/media && open http://download.hetzner.de/mirrors/centos/5.6/x86_64/ && mirror &&  get .treeinfo && get .discinfo && quit'

Polski mirror:
http://ftp.icm.edu.pl/pub/linux/distributions/centos/5.6/os/i386/
http://ftp.icm.edu.pl/pub/linux/distributions/centos/5.6/os/x86_64/

Pliki można też oczywiście przekopiować z lokalnego nośnika instalacyjnego.
Pobranie aktualizacji
Przygotowanie pliku konfiguracyjnego dla repozytorium z aktualizacjami:
cat >/etc/yum.repos.d/CentOS-Custom-Update.repo <<EOF
[updates32]
name=CentOS-\$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.6&arch=i386&repo=updates
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
gpgcheck=1

[updates64]
name=CentOS-\$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.6&arch=x86_64&repo=updates
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
gpgcheck=1
EOF


# Dla i386

reposync -p /storage/centos/updates -n -r updates32
# Dla x86_64
reposync -p /storage/centos/updates -n -r updates64
Przygotowanie kopii roboczej plików instalacyjnych
Ta procedura nie jest doskonała więc lepiej operować na kopii plików instalacyjnych :)

# Dla i386
rsync -av /storage/centos/i386/media/  /storage/centos/i386/work/
# Dla x86_64
rsync -av /storage/centos/x86_64/media/  /storage/centos/x86_64/work/
Aktualizacja pakietów  instalacyjnych
Utworzenie repozytorium dla updates32 i updates64:

createrepo /storage/centos/updates/updates32/
createrepo /storage/centos/updates/updates64/

Następnie należy przekopiować zaktualizowane/dodane pakiety z repozytorium aktualizacji do repozytorium instalacyjnego. Można to zrobić ręcznie lub za pomocą narzędzia custom-repo-integrate. Jest zmodyfikowana wersja programu repodiff.

# Dla i386
custom-repo-integrate -a i386 -u file:///storage/centos/updates/updates32/ -b file:///storage/centos/i386/work/
custom-repo-integrate -a i686 -u file:///storage/centos/updates/updates32/ -b file:///storage/centos/i386/work/
custom-repo-integrate -a noarch -u file:///storage/centos/updates/updates32/ -b file:///storage/centos/i386/work/


# Dla x86_64
custom-repo-integrate -a x86_64 -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
custom-repo-integrate -a noarch -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
custom-repo-integrate -a i386 -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/
custom-repo-integrate -a i686 -u file:///storage/centos/updates/updates64/ -b file:///storage/centos/x86_64/work/


W kolejnym kroku należy odświeżyć repozytoria instalacyjne z uwzględnieniem pliku comps.xml:

# Dla i386
createrepo -g /storage/centos/i386/work/repodata/comps.xml /storage/centos/i386/work

# Dla x86_64
createrepo -g /storage/centos/x86_64/work/repodata/comps.xml /storage/centos/x86_64/work

Dodatkowo można sprawdzić integralność repozytoriów (zależności):

# Dla i386
repoclosure -a i386 -a i686 -a noarch -r it.socha.install32 --repofrompath=it.socha.install32,/storage/centos/i386/work
# Dla x86_64
repoclosure -a x86_64 -a i386 -a i686 -a noarch -r it.socha.install64 --repofrompath=it.socha.install64,/storage/centos/x86_64/work
Repozytorium do instalacji sieciowej jest gotowe do użytku. Pozostało tylko przygotowanie plików kickstart.
Przykładowe pliki konfiguracyjne kickstart:
  • simple.ks - instalacja minimalnego systemu z dostępnym ekranem partycjonowania i konfiguracji GRUB
  • 1disc.ks - instalacja automatyczna na dysku /dev/sda (LVM)
  • 2disc.ks - instalacja automatyczna na dwóch dyskach z RAID1 i LVM


Dalsza cześć to opis przygotowania minimalnej płyty instalacyjnej CD.

Jeśli chcemy przygotować minimalną płytę instalacyjną (plik ISO) należy z katalogu instalacyjnego (CentOS) wybrać tylko wymagane pakiety (lista pakietów  minimalcentos.txt). Przygotowałem prosty skrypt, który z wskazanego katalogu instalacyjnego skopiuje wymagane pakiety. Skrypt nazywa się simple-rpm-copy. Cała procedura przygotowania płyty:
# Katalog roboczy
mkdir -p /storage/centos/{i386,x86_64}/mini/CentOS


# Kopiowanie repozytorium instalacyjnego z pominięciem katalogu CentOS
# Dla i386
rsync -av --exclude=CentOS /storage/centos/i386/work/ /storage/centos/i386/mini/
# Dla x86_64
rsync -av --exclude=CentOS /storage/centos/x86_64/work/ /storage/centos/x86_64/mini/

# Pobranie skryptu simple-rpm-copy
wget http://bit.ly/eTseVD -q -O /storage/centos/simple-rpm-copy && chmod +x /storage/centos/simple-rpm-copy

# Kopiowanie wymaganych RPM do mini instalacji

# Dla i386
wget http://bit.ly/e6am3x -q -O - | /storage/centos/simple-rpm-copy /storage/centos/i386/mini/CentOS/ /storage/centos/i386/work/ i386,i686,noarch
# Dla x86_64
wget http://bit.ly/e6am3x  -q -O - | /storage/centos/simple-rpm-copy /storage/centos/x86_64/mini/CentOS/ /storage/centos/x86_64/work x86_64,noarch

# Zaktualizowanie repozytorium
# Dla i386
createrepo -g /storage/centos/i386/mini/repodata/comps.xml /storage/centos/i386/mini/
# Dla x86_64
createrepo -g /storage/centos/x86_64/mini/repodata/comps.xml /storage/centos/x86_64/mini/

Dodatkowo warto sprawdzić integralność repozytoriów (zależności):

# Dla i386
repoclosure -a i386 -a i686 -a noarch -r it.socha.mini32 --repofrompath=it.socha.mini32,/storage/centos/i386/mini
# Dla x86_64
repoclosure -a x86_64 -a i386 -a i686 -a noarch -r it.socha.mini64 --repofrompath=it.socha.mini64,/storage/centos/x86_64/mini


Na płycie można również zapisać pliki kickstart i lekko zmodyfikowany plik konfiguracyjny bootloadera isolinux (archiwum centos.tar.gz)

# Dla i386
wget http://bit.ly/hzo1rA -q -O - | tar xzf - -C /storage/centos/i386/mini
# Dla x86_64
wget http://bit.ly/hzo1rA -q -O - | tar xzf - -C /storage/centos/x86_64/mini
Pozostaje tylko przygotowanie pliku ISO
# Dla i386
mkisofs -v -r -N -L -d -D -J -V CENTOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -x lost+found  -o /storage/centos/output/centos-custom-55-i386.iso /storage/centos/i386/mini# Dla x86_64
mkisofs -v -r -N -L -d -D -J -V CENTOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -x lost+found  -o /storage/centos/output/centos-custom-55-x86_64.iso /storage/centos/x86_64/mini
Przygotowane obrazy mini płyt instalacyjnych: x86_64 i i386