piątek, 20 lipca 2012
środa, 18 lipca 2012
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
pass: debinstall
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
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
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:
Wymagane pakiety:
yum install kexec-toolsWykorzystanie kexec:
# Załadowanie nowego jądraNa 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 --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
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
Przykładowe pliki konfiguracyjne kickstart:
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:
Przygotowanie środowiska
# Wymagane pakiety:Pobranie plików instalacyjnych
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 dla architektury i386Pobranie aktualizacji
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.
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
Przygotowanie kopii roboczej plików instalacyjnych
# Dla i386
reposync -p /storage/centos/updates -n -r updates32
# Dla x86_64
reposync -p /storage/centos/updates -n -r updates64
Ta procedura nie jest doskonała więc lepiej operować na kopii plików instalacyjnych :)Aktualizacja pakietó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/
Utworzenie repozytorium dla updates32 i updates64:Repozytorium do instalacji sieciowej jest gotowe do użytku. Pozostało tylko przygotowanie plików kickstart.
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
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 i386Przygotowane obrazy mini płyt instalacyjnych: x86_64 i 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
Subskrybuj:
Posty (Atom)