Changes

Jump to: navigation, search

Archlinux Template creation

10 bytes added, 11:59, 11 March 2008
VE0->CT0, formatting fixes, other minor fixes
Edit settings of script "archbootstrap" :
<pre> ARCH="i686" IGNORE="rp-pppoe ppp wireless_tools xfsdump xfsprogs reiserfsprogs lshwd usbutils pciutils pcmciautils module-init-tools mdadm mkinitcpio libusb jfsutils lvm2 lilo cryptsetup device-mapper dhcpcd hwdetect dmapi gen-init-cpio grub" umark PACMAN_OPTS (remove '#')
umark PACMAN_OPTS (remove '#')
</pre>
{{Note|I suggest to place the build for OpenVZ templates to /vz/template/, schema: /vz/template/$DIST/$VERSION/$ARCH/}}
<pre>
Built this OS-Template with:
VE0_dist {| class="wikitable"|| [[CT0]]_dist || DebianVE0_ARCH |-|| [[CT0]]_ARCH || i386|-|| DIST || arch|-|| VERSION || 0.8|-|| ARCH || depends on VE0 CT0 settings above</pre>|}
== bootstrapping Archlinux ==
Syntax:
VE0_ CT0_# /usr/bin/archbootstrap /vz/template/$DIST/$VERSION/$ARCH/ [MIRROR] {{Note|Please use mirrors ! A full list of Archlinux mirrors : http://wiki.archlinux.org/index.php/Mirror}}
{{Note|Please use mirrors! A full list of Archlinux mirrors: http://wiki.archlinux.org/index.php/Mirror}}
== enter the Build with chroot ==
All the commands below are executed from the root shell. I this howto "chroot" is used to enter as NEWROOT, a BUILD-VE must not be created!
VE0_ CT0_# chroot /vz/template/$DIST/$VERSION/$ARCH/ 
=== setting DNS server ===
For the chroot BUILD we also need to specify a DNS for it:
BUILD_# mv /etc/resolv.conf.pacorig /etc/resolv.conf
=== update and install packages ===
Update (sync) pacman cache and update installed packages
BUILD_# pacman -Syu 
Install openssh (client and server) , quota-tools and iproute
BUILD_# pacman -S openssh quota-tools iproute 
=== fix /etc/mtab ===
Add symlink /proc/mount /etc/mtab
BUILD_# ln -s /proc/mounts /etc/mtab 
=== fix /etc/inittab ===
Remove getties getty lines from inittab BUILD_# sed -i -e '/getty/d' /etc/inittab:
BUILD_# sed -i -e '/getty/d' /etc/inittab
=== create device nodes ===
Create device nodes at /dev, like console, full, null, zero, urandom, ptmx and fifo of initctl
BUILD_# mknod -m 600 /dev/console c 5 1  BUILD_# mknod -m 666 /dev/tty c 5 0  BUILD_# mknod -m 666 /dev/full c 1 7  BUILD_# mknod -m 600 /dev/initctl p  BUILD_# mknod -m 666 /dev/null c 1 3  BUILD_# mknod -m 666 /dev/ptmx c 5 2   BUILD_# mkdir pts  BUILD_# mknod -m 666 /dev/random c 1 8  BUILD_# mknod -m 444 /dev/urandom c 1 9   BUILD_# mknod -m 666 /dev/zero c 1 5 
=== sysinit script modification ===
Remove deleting of /etc/mtab in /etc/rc.sysinit and add mounting of /dev/pts
BUILD_# nano /etc/rc.sysinit
<pre> [...] /bin/rm -f /etc/mtab [...]</pre>
to
<pre> [...] #/bin/rm -f /etc/mtab /bin/mount -t devpts none /dev/pts [...]</pre>
=== modify the main configuration file ===
=== modify the main configuration file === BUILD_# nano /etc/rc.conf
BUILD_# nano /etc/rc.conf
<pre>
# Localization
LOCALE="en_US.utf8"
# Add openssh to DAEMONS, start at bootup ; ssh-keys are build on first VE start !!!
DAEMONS=(syslog-ng network netfs crond ssh)
</pre>
 
=== enable ssh connections ===
{{Note|All connection are disabled to VE, see /etc/hosts.deny, only affected server built-in with libwrap}}
Allow ssh : <pre>BUILD_# echo "ssh: ALL : ALLOW" >> /etc/hosts.allow}</pre>
BUILD_# echo "ssh: ALL : ALLOW" >> /etc/hosts.allow}
=== lock (disable) the root account ===
BUILD_# passwd -l root
=== exit the chroot to CT0 ===
=== exit the chroot to VE0 ===  BUILD_# exit  
== build a exclude list ==
Shrink the OS-Template, so not all files needed in a VE - OS - TEMPLATE
Remove unused pacman backup files:
Remove unused pacman backup files  VE0_CT0_# find ./ -name '*.pacorig' > ../exclude.list-$ARCH 
<code>/etc/resolv.conf </code> is added by vzctl:
VE0_ CT0_# echo "etc/resolv.conf" >> ../exclude.list-$ARCH
Don't add downloaded pkg to ostemplate:
dont add downloaded pkg to ostemplate: CT0_# find ./var/cache/ -name '*.tar.gz' >> ../exclude.list-$ARCH
VE0_# find ./var/cache/ -name '*.tar.gz' >> ../exclude.list-$ARCHWe dont need no logs and history:
CT0_# find ./var/cache/ -name '*.tar.gz' >> ../exlcude.list-$ARCH
CT0_# find ./root/.bash_history >> ../exclude.list-$ARCH
we dont need no logs and historys== create OS template ==
VE0_ CT0_# find tar -X ../exclude.list-$ARCH -czf /vz/vartemplate/cache/ arch-0.8-$ARCH-name '*minimal.tar.gz' >> ../exlcude.list-$ARCH
== use the OS template ==
VE0_ CT0_# find ./root/.bash_history vzctl create <VEID>> .--ostemplate arch-0./exclude.list8-$ARCH-minimal ...
== update the OS template ==
== create OS-Template ==To update a template is really easy, enter the build with chroot, performing upgrade task
VE0_# tar -X ../exclude.list-$ARCH -czf /vz/template/cache/arch-0.8-$ARCH-minimal.tar.gz ./  == use the OS-Template == VE0_# vzctl create <VEID> --ostemplate arch-0.8-$ARCH-minimal ...  == update the OS-Template == to update a template is really easy, enter the build with chroot, performing upgrade task VE0_ CT0_# chroot /vz/template/$DIST/$VERSION/$ARCH/ 'pacman -Syu'
Update the exclude list, and pack upgraded OS - Template
 
== Links ==
Archlinux wiki * [http://wiki.archlinux.org/index.php/Main_PageArchlinux wiki]
[[Category: HOWTO]]
[[Category: Templates]]

Navigation menu