Vytvořte virtuální server s dostatečnými parametry (např. 2G RAM, 4G HDD). Parametry serveru je možné snížit před samotným vytvořením šablony. Při vytváření serveru můžete zvolit jakoukoliv šablonu, posléze bude přepsána.
Po úspěšném vytvoření a nastartování virtuálního serveru nabootujte do záchranného režimu (Boot rescue tlačítko v detailu serveru).
Smažte originální systém a připojte prázdný kořenový systém souborů:
mkfs.ext3 -L root /dev/xvda
mkdir -p /mnt/root
mount /dev/xvda /mnt/root
Pokud jste na lenny
(podívejte se do /etc/apt/sources.list
), možná by jste měli použít novější repozitáře pro debootstrap
, protože natty
neni zahrnutý s debootstrap
ve verzi lenny
.
echo "deb http://ftp.sh.cvut.cz/MIRRORS/debian/ stable main" >/etc/apt/sources.list
apt-get update
apt-get --force-yes -y install debian-keyring debian-archive-keyring
Instalace potřebných nástrojů. Skript debootstrap
je pro distribuce založené na Debianu a yum
manažer balíčků je pro distribuce na bázi RedHatu.
apt-get update
apt-get --force-yes -y install debootstrap yum
Bootstrap base Debian system (squeeze
release):
debootstrap squeeze /mnt/root http://ftp.sh.cvut.cz/MIRRORS/debian
Opravte apt zdroje:
cat >/mnt/root/etc/apt/sources.list <<EOF
deb http://ftp.sh.cvut.cz/MIRRORS/debian squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
EOF
Bootstrap base Debian system (testing
rolling release):
debootstrap testing /mnt/root http://ftp.sh.cvut.cz/MIRRORS/debian
Opravte apt zdroje:
cat >/mnt/root/etc/apt/sources.list <<EOF
deb http://ftp.sh.cvut.cz/MIRRORS/debian testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
EOF
Bootstrap base Ubuntu system (natty
release):
debootstrap natty /mnt/root http://ftp.sh.cvut.cz/MIRRORS/ubuntu
Opravte apt zdroje:
cat >/mnt/root/etc/apt/sources.list <<EOF
deb http://ftp.sh.cvut.cz/MIRRORS/ubuntu natty main universe multiverse
deb http://ftp.sh.cvut.cz/MIRRORS/ubuntu natty-updates main universe multiverse
EOF
Příprava instalace pro chrooting:
mount -t proc proc /mnt/root/proc
mount -t sysfs sysfs /mnt/root/sys
mount --bind /dev /mnt/root/dev
mount -t tmpfs tmpfs /mnt/root/dev/shm
mount -t devpts devpts /mnt/root/dev/pts
Zkopírujte balíček firstboot do cílového systému:
cp virtualmaster-firstboot_*.deb /mnt/root/root/
Vstupte do instalace:
chroot /mnt/root
cd
Vytvořte tabulku souborového systému:
cat >/etc/fstab <<EOF
/dev/xvda / ext3 relatime 1 1
/dev/xvdb none swap sw 0 0
EOF
Ujistěte se, že nepoběží žádné služby.
echo 'exit 0' >invoke-rc.d
chmod +x invoke-rc.d
export PATH="${PWD}:${PATH}"
Proveďte upgrade systému, aby jste získaly poslední aktualizace:
apt-get update
apt-get -y dist-upgrade
Nainstalujte lokalizace:
apt-get -y install locales
Zkompilujte americkou angličtinu, doporučený jazyk:
sed 's/# en_US.UTF-8/en_US.UTF-8/' -i /etc/locale.gen
locale-gen%p Install the kernel:
apt-get -y install linux-image-xen-`dpkg --print-architecture`
Nainstalujte bootloader:
apt-get -y install grub-legacy
Vygenerujte konfiguraci bootloader:
mkdir -p /boot/grub
update-grub 0
Opravte konfiguraci konzole:
echo "T0:2345:respawn:/sbin/getty -L hvc0 38400 linux" >>/etc/inittab
sed 's/.* tty[2-6]$/#\0/' -i /etc/inittab
Zkompilujte americkou angličtinu, doporučený jazyk:
locale-gen en_US.UTF-8
Nainstalujte kernel:
apt-get -y install linux-image-virtual
Nainstalujte bootloader:
mkdir -p /boot/grub
apt-get -y install grub-legacy-ec2
Nastartujte
getty
při virtuální konzoli:
cat >/etc/init/hvc0.conf <<EOF
# hvc0 - getty for Xen
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -L hvc0 38400 linux
EOF
Zakažte
getty
při
tty[2-6]
:
for f in /etc/init/tty[2-6].conf; do
mv -v "${f}"{,.off}
done
Nainstalujte nějaké základní nástroje a ssh:
apt-get -y install less vim psmisc ssh ethtool mc sudo kbd
Nyní nainstalujte firstboot balíček.
dpkg -i virtualmaster-firstboot_*.deb
rm -f virtualmaster-firstboot_*.deb
Připojte firstboot do bootovacího procesu jako nový inicializér:
sed 's#\<root=#init=/sbin/init.vmin root=#' -i /boot/grub/menu.lst
Set local time zone:
ln -sf ../usr/share/zoneinfo/Europe/Prague /etc/localtime
Umožněte použití sudo bez hesla:
chmod +w /etc/sudoers
sed 's,#* *%sudo.*,%sudo ALL=(ALL) NOPASSWD: ALL,' -i /etc/sudoers
chmod -w /etc/sudoers
Zruště automatickou konfiguraci IPv6. Naši zákazníci sdílí L2 síť a mohli by způsobit problémy nastartováním radvd, pokud všechny virtuální servery nemají tuto možnost vypnutou.
cat >>/etc/sysctl.conf <<EOF
# Do not listen to router advertisements.
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
EOF
Zahoďte veškerou konfiguraci, ssh klíče a smažte cachované balíčky:
echo -n >/etc/network/interfaces
echo -n >/etc/resolv.conf
echo image >/etc/hostname
echo -n >/etc/hosts
rm -f /etc/ssh/*key* /etc/virtualmaster.cfg*
rm -f /root/invoke-rc.d
apt-get clean
Na závěr, opusťte chroot a odstraňte historii příkazů:
exit
rm -f /mnt/root/root/.bash_history
Vytvořte tabulku souborového systému:
mkdir -p /mnt/root/etc
cat >/mnt/root/etc/fstab <<EOF
/dev/xvda / ext3 relatime 1 1
/dev/xvdb none swap sw 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
EOF
Stáhněte distribuci CentOS 6 RPM a nainstalujte ji do cílového systému souboru:
wget 'ftp://ftp.sh.cvut.cz/MIRRORS/centos/6.0/os/x86_64/Packages/centos-release-*.rpm'
rpm --root /mnt/root -ivh centos-release-*.rpm
rpm --root /mnt/root --import /mnt/root/etc/pki/rpm-gpg/*
Stáhněte distribuci Fedora 15 RPM a nainstalujte ji do cílového systému souboru:
wget 'ftp://ftp.sh.cvut.cz/MIRRORS/fedora/linux/releases/15/Everything/x86_64/os/Packages/fedora-release-[0-9]*.rpm'
wget 'ftp://ftp.sh.cvut.cz/MIRRORS/fedora/linux/releases/15/Everything/x86_64/os/Packages/fedora-release-rawhide-[0-9]*.rpm'
rpm --root /mnt/root -ivh fedora-release-*.rpm
Nyní použijte
yum
pro instalaci základních komponent systému:
yum -y --installroot=/mnt/root --nogpgcheck install \
yum kernel grub vim /usr/bin/passwd /usr/sbin/sshd \
cronie e2fsprogs mc logrotate sudo
Nainstalujte náš firstboot balíček:
yum -y --installroot=/mnt/root --nogpgcheck localinstall virtualmaster-firstboot-*.rpm
Proveďte chroot do budoucího systému:
chroot /mnt/root
cd
Opravte RPM databázi:
db_dump ~/.rpmdb/Packages | db_load /var/lib/rpm/Packages
rpm --rebuilddb
rm -rf ~/.rpmdb
Povolte
sudo
:
chmod +w /etc/sudoers
sed 's,#* *\(%wheel.*NOPASSWD\),\1,' -i /etc/sudoers
chmod -w /etc/sudoers
Configure the bootloader:
kernel=$(echo /boot/vmlinuz-*)
initrd=$(echo /boot/initramfs-*)
os="$(sed 's/ release.*//' /etc/redhat-release)"
cat >/boot/grub/menu.lst <<EOF
default=0
timeout=1
title ${os} (${kernel#*-})
root (hd0,0)
kernel ${kernel} init=/sbin/init.vmin root=/dev/xvda ro console=hvc0
initrd ${initrd}
EOF
ln -sf /boot/grub/grub.conf /etc/grub.conf
ln -f /boot/grub/menu.lst /boot/grub/grub.conf
Povolte základní služby:
chkconfig sshd on
chkconfig crond on
chkconfig network on
Zakažte
tty[2-6]
:
sed 's#^\(ACTIVE_CONSOLES\)=.*#\1=/dev/tty1#' -i /etc/sysconfig/init
Zahoďte veškerou konfiguraci a ssh klíče:
rm -f /etc/sysconfig/network-scripts/ifcfg-eth*
rm -f /etc/sysconfig/network
rm -f /etc/ssh/*key* /etc/virtualmaster.cfg*
echo -n >/etc/resolv.conf
echo -n >/etc/hosts
Nastavte
root
:
echo '. /etc/bashrc' >~/.bashrc
echo '. ~/.bashrc' >~/.bash_profile
Opusťte chroot:
exit
rm -f /mnt/root/root/.bash_history
Vypněte záchranný systém pomocí:
poweroff
Po návratu do webové aplikace Virtualmasteru otevřete konzoli a potvrďte vypnutí. Poté zmenšete virtuální server na minimum (operační pamět i pevný disk) a vytvořte šablonu.