Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lxc
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
lxc
Commits
d755a9e6
Commit
d755a9e6
authored
May 24, 2011
by
Stéphane Graber
Committed by
Daniel Lezcano
May 26, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add initial oneiric template
parent
3930b745
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
288 additions
and
0 deletions
+288
-0
.gitignore
.gitignore
+1
-0
configure.ac
configure.ac
+1
-0
Makefile.am
templates/Makefile.am
+1
-0
lxc-oneiric.in
templates/lxc-oneiric.in
+285
-0
No files found.
.gitignore
View file @
d755a9e6
...
@@ -28,6 +28,7 @@ templates/lxc-debian
...
@@ -28,6 +28,7 @@ templates/lxc-debian
templates/lxc-lucid
templates/lxc-lucid
templates/lxc-maverick
templates/lxc-maverick
templates/lxc-natty
templates/lxc-natty
templates/lxc-oneiric
templates/lxc-fedora
templates/lxc-fedora
templates/lxc-sshd
templates/lxc-sshd
templates/lxc-busybox
templates/lxc-busybox
...
...
configure.ac
View file @
d755a9e6
...
@@ -142,6 +142,7 @@ AC_CONFIG_FILES([
...
@@ -142,6 +142,7 @@ AC_CONFIG_FILES([
templates/lxc-lucid
templates/lxc-lucid
templates/lxc-maverick
templates/lxc-maverick
templates/lxc-natty
templates/lxc-natty
templates/lxc-oneiric
templates/lxc-busybox
templates/lxc-busybox
templates/lxc-fedora
templates/lxc-fedora
templates/lxc-sshd
templates/lxc-sshd
...
...
templates/Makefile.am
View file @
d755a9e6
...
@@ -6,6 +6,7 @@ templates_SCRIPTS = \
...
@@ -6,6 +6,7 @@ templates_SCRIPTS = \
lxc-lucid
\
lxc-lucid
\
lxc-maverick
\
lxc-maverick
\
lxc-natty
\
lxc-natty
\
lxc-oneiric
\
lxc-fedora
\
lxc-fedora
\
lxc-busybox
\
lxc-busybox
\
lxc-sshd
lxc-sshd
templates/lxc-oneiric.in
0 → 100644
View file @
d755a9e6
#!/bin/bash
#
# template script for generating ubuntu/oneiric container for LXC
#
# This script is based on lxc-debian (Daniel Lezcano <daniel.lezcano@free.fr>)
#
# Copyright 2010 Wilhelm Meier
# Author: Wilhelm Meier <wilhelm.meier@fh-kl.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2, as
# published by the Free Software Foundation.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
configure_ubuntu
()
{
rootfs
=
$1
hostname
=
$2
# configure the network using the dhcp
cat
<<
EOF
>
$rootfs
/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
EOF
# so you can 'ssh $hostname.' or 'ssh $hostname.local'
sed
-i
"s/<hostname>/
$hostname
/"
$rootfs
/etc/dhcp/dhclient.conf
# set the hostname
cat
<<
EOF
>
$rootfs
/etc/hostname
$hostname
EOF
# set minimal hosts
cat
<<
EOF
>
$rootfs
/etc/hosts
127.0.0.1 localhost
$hostname
EOF
# suppress log level output for udev
sed
-i
"s/=
\"
err
\"
/=0/"
$rootfs
/etc/udev/udev.conf
# tweak consoles
rm
-f
$rootfs
/etc/init/tty
{
5,6
}
.conf
cp
$rootfs
/etc/init/tty1.conf
$rootfs
/etc/init/console.conf
sed
-i
's/tty1/\/dev\/console/'
$rootfs
/etc/init/console.conf
# don't let upstart mount anything from its builtin fs
echo
"#Emptied out by lxc-oneiric template"
>
$rootfs
/lib/init/fstab
echo
"Please change root-password !"
echo
"root:root"
|
chroot
$rootfs
chpasswd
return
0
}
download_ubuntu
()
{
packages
=
dialog,apt,apt-utils,resolvconf,iproute,inetutils-ping,vim,isc-dhcp-client,isc-dhcp-common,ssh,lsb-release,gnupg
cache
=
$1
arch
=
$2
# check the mini ubuntu was not already downloaded
mkdir
-p
"
$cache
/partial-
$arch
"
if
[
$?
-ne
0
]
;
then
echo
"Failed to create '
$cache
/partial-
$arch
' directory"
return
1
fi
# download a mini ubuntu into a cache
echo
"Downloading ubuntu oneiric minimal ..."
debootstrap
--verbose
--variant
=
minbase
--components
=
main,universe
--arch
=
$arch
--include
=
$packages
oneiric
$cache
/partial-
$arch
if
[
$?
-ne
0
]
;
then
echo
"Failed to download the rootfs, aborting."
return
1
fi
mv
"
$1
/partial-
$arch
"
"
$1
/rootfs-
$arch
"
echo
"Download complete."
return
0
}
copy_ubuntu
()
{
cache
=
$1
arch
=
$2
rootfs
=
$3
# make a local copy of the miniubuntu
echo
-n
"Copying rootfs to
$rootfs
..."
cp
-a
$cache
/rootfs-
$arch
$rootfs
||
return
1
return
0
}
install_ubuntu
()
{
cache
=
"/var/cache/lxc/oneiric"
rootfs
=
$1
mkdir
-p
/var/lock/subsys/
(
flock
-n
-x
200
if
[
$?
-ne
0
]
;
then
echo
"Cache repository is busy."
return
1
fi
arch
=
$(
dpkg
--print-architecture
)
echo
"Checking cache download in
$cache
/rootfs-
$arch
... "
if
[
!
-e
"
$cache
/rootfs-
$arch
"
]
;
then
download_ubuntu
$cache
$arch
if
[
$?
-ne
0
]
;
then
echo
"Failed to download 'ubuntu oneiric base'"
return
1
fi
fi
echo
"Copy
$cache
/rootfs-
$arch
to
$rootfs
... "
copy_ubuntu
$cache
$arch
$rootfs
if
[
$?
-ne
0
]
;
then
echo
"Failed to copy rootfs"
return
1
fi
return
0
)
200>/var/lock/subsys/lxc
return
$?
}
copy_configuration
()
{
path
=
$1
rootfs
=
$2
name
=
$3
cat
<<
EOF
>>
$path
/config
lxc.utsname =
$name
lxc.tty = 4
lxc.pts = 1024
lxc.rootfs =
$rootfs
lxc.mount =
$path
/fstab
lxc.cgroup.devices.deny = a
# /dev/null and zero
lxc.cgroup.devices.allow = c 1:3 rwm
lxc.cgroup.devices.allow = c 1:5 rwm
# consoles
lxc.cgroup.devices.allow = c 5:1 rwm
lxc.cgroup.devices.allow = c 5:0 rwm
#lxc.cgroup.devices.allow = c 4:0 rwm
#lxc.cgroup.devices.allow = c 4:1 rwm
# /dev/{,u}random
lxc.cgroup.devices.allow = c 1:9 rwm
lxc.cgroup.devices.allow = c 1:8 rwm
lxc.cgroup.devices.allow = c 136:* rwm
lxc.cgroup.devices.allow = c 5:2 rwm
# rtc
lxc.cgroup.devices.allow = c 254:0 rwm
EOF
cat
<<
EOF
>
$path
/fstab
proc
$rootfs
/proc proc nodev,noexec,nosuid 0 0
sysfs
$rootfs
/sys sysfs defaults 0 0
EOF
if
[
$?
-ne
0
]
;
then
echo
"Failed to add configuration"
return
1
fi
return
0
}
clean
()
{
cache
=
"/var/cache/lxc/oneiric"
if
[
!
-e
$cache
]
;
then
exit
0
fi
# lock, so we won't purge while someone is creating a repository
(
flock
-n
-x
200
if
[
$?
!=
0
]
;
then
echo
"Cache repository is busy."
exit
1
fi
echo
-n
"Purging the download cache..."
rm
--preserve-root
--one-file-system
-rf
$cache
&&
echo
"Done."
||
exit
1
exit
0
)
200>/var/lock/subsys/lxc
}
usage
()
{
cat
<<
EOF
$1
-h|--help -p|--path=<path> --clean
EOF
return
0
}
options
=
$(
getopt
-o
hp:n:c
-l
help
,path:,name:,clean
--
"
$@
"
)
if
[
$?
-ne
0
]
;
then
usage
$(
basename
$0
)
exit
1
fi
eval set
--
"
$options
"
while
true
do
case
"
$1
"
in
-h
|
--help
)
usage
$0
&&
exit
0
;;
-p
|
--path
)
path
=
$2
;
shift
2
;;
-n
|
--name
)
name
=
$2
;
shift
2
;;
-c
|
--clean
)
clean
=
$2
;
shift
2
;;
--
)
shift
1
;
break
;;
*
)
break
;;
esac
done
if
[
!
-z
"
$clean
"
-a
-z
"
$path
"
]
;
then
clean
||
exit
1
exit
0
fi
type
debootstrap
if
[
$?
-ne
0
]
;
then
echo
"'debootstrap' command is missing"
exit
1
fi
if
[
-z
"
$path
"
]
;
then
echo
"'path' parameter is required"
exit
1
fi
if
[
"
$(
id
-u
)
"
!=
"0"
]
;
then
echo
"This script should be run as 'root'"
exit
1
fi
rootfs
=
$path
/rootfs
install_ubuntu
$rootfs
if
[
$?
-ne
0
]
;
then
echo
"failed to install ubuntu oneiric"
exit
1
fi
configure_ubuntu
$rootfs
$name
if
[
$?
-ne
0
]
;
then
echo
"failed to configure ubuntu oneiric for a container"
exit
1
fi
copy_configuration
$path
$rootfs
$name
if
[
$?
-ne
0
]
;
then
echo
"failed write configuration file"
exit
1
fi
if
[
!
-z
$clean
]
;
then
clean
||
exit
1
exit
0
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment