espelhamento de https://github.com/devrandom/gitian-builder
Você não pode selecionar mais de 25 tópicos
Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
94 linhas
2.3 KiB
94 linhas
2.3 KiB
#!/bin/sh |
|
set -e |
|
|
|
SUITE=lucid |
|
ARCH=amd64 |
|
MIRROR=http://${MIRROR_HOST:-127.0.0.1}:3142/archive.ubuntu.com/ubuntu |
|
SECURITY_MIRROR=http://${MIRROR_HOST:-127.0.0.1}:3142/security.ubuntu.com/ubuntu |
|
LXC=0 |
|
|
|
usage() { |
|
echo "Usage: ${0##*/} [OPTION]..." |
|
echo "Make a base client." |
|
echo |
|
cat << EOF |
|
--help display this help and exit |
|
--suite U build suite U instead of lucid |
|
--arch A build architecture A (e.g. i386) instead of amd64 |
|
--lxc use lxc instead of kvm |
|
|
|
The MIRROR_HOST environment variable can be used to change the |
|
apt-cacher host. It should be something that the target VM can |
|
resolve. It may be set to 127.0.0.1, in which case it will be |
|
changed to 10.0.2.2 on the guest. 10.0.2.2 is the host IP as visible |
|
from the guest under qemu networking. |
|
EOF |
|
} |
|
|
|
if [ $# != 0 ] ; then |
|
while true ; do |
|
case "$1" in |
|
--help|-h) |
|
usage |
|
exit 0 |
|
;; |
|
--suite|-s) |
|
SUITE="$2" |
|
shift 2 |
|
;; |
|
--arch|-a) |
|
ARCH="$2" |
|
shift 2 |
|
;; |
|
--lxc) |
|
LXC=1 |
|
shift 1 |
|
;; |
|
--*) |
|
echo "unrecognized option $1" |
|
exit 1 |
|
;; |
|
*) |
|
break |
|
;; |
|
esac |
|
done |
|
fi |
|
|
|
mkdir -p var |
|
|
|
if [ ! -e var/id_dsa ]; then |
|
ssh-keygen -t dsa -f var/id_dsa -N "" |
|
fi |
|
|
|
OUT=base-$SUITE-$ARCH |
|
FLAVOUR=virtual |
|
|
|
if [ $ARCH = "amd64" -a $SUITE = "hardy" ]; then |
|
FLAVOUR=server |
|
fi |
|
|
|
addpkg=openssh-server,pciutils,build-essential,git-core,subversion |
|
|
|
if [ -e $OUT.qcow2 ]; then |
|
echo $OUT.qcow2 already exists, please remove it first |
|
exit 1 |
|
fi |
|
|
|
rm -rf $OUT |
|
sudo vmbuilder kvm ubuntu --arch=$ARCH --suite=$SUITE --addpkg=$addpkg --ssh-key=var/id_dsa.pub --ssh-user-key=var/id_dsa.pub --mirror=$MIRROR --security-mirror=$SECURITY_MIRROR --dest=$OUT --flavour=$FLAVOUR --firstboot=`pwd`/target-bin/bootstrap-fixup |
|
mv $OUT/*.qcow2 $OUT.qcow2 |
|
rm -rf $OUT |
|
|
|
if [ $LXC = "1" ]; then |
|
#sudo debootstrap --include=$addpkg --arch=$ARCH $SUITE $OUT-root $MIRROR |
|
echo Extracting partition for lxc |
|
qemu-img convert $OUT.qcow2 $OUT.raw |
|
loop=`sudo kpartx -av $OUT.raw|sed -n '/loop.p1/{s/.*loop\(.\)p1.*/\1/;p}'` |
|
sudo cp --sparse=always /dev/mapper/loop${loop}p1 $OUT |
|
sudo chown $USER $OUT |
|
sudo kpartx -d /dev/loop$loop |
|
rm -f $OUT.raw |
|
# bootstrap-fixup is done in libexec/make-clean-vm |
|
fi |
|
|
|
|