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
d7538219
Commit
d7538219
authored
Jul 12, 2016
by
Andreas Freudenberg
Committed by
Stéphane Graber
Aug 11, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
templates: add more quotes to variables (at least $rootfs should now be covered)
Signed-off-by:
Andreas Freudenberg
<
andreas.freudenberg@licomonch.net
>
parent
e75ec2bb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
88 additions
and
88 deletions
+88
-88
lxc-debian.in
templates/lxc-debian.in
+88
-88
No files found.
templates/lxc-debian.in
View file @
d7538219
...
@@ -49,9 +49,9 @@ configure_debian()
...
@@ -49,9 +49,9 @@ configure_debian()
# squeeze only has /dev/tty and /dev/tty0 by default,
# squeeze only has /dev/tty and /dev/tty0 by default,
# therefore creating missing device nodes for tty1-4.
# therefore creating missing device nodes for tty1-4.
for
tty
in
$(
seq
1
$num_tty
)
;
do
for
tty
in
$(
seq
1
"
$num_tty
"
)
;
do
if
[
!
-e
$rootfs
/dev/tty
$tty
]
;
then
if
[
!
-e
"
$rootfs
/dev/tty
$tty
"
]
;
then
mknod
$rootfs
/dev/tty
$tty
c 4
$tty
mknod
"
$rootfs
/dev/tty
$tty
"
c 4
"
$tty
"
fi
fi
done
done
...
@@ -69,18 +69,18 @@ l6:6:wait:/etc/init.d/rc 6
...
@@ -69,18 +69,18 @@ l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
z6:6:respawn:/sbin/sulogin
1:2345:respawn:/sbin/getty 38400 console
1:2345:respawn:/sbin/getty 38400 console
$(for
tty
in
$(
seq
1
$num_tty
)
;
do
echo
"c
${
tty
}
:12345:respawn:/sbin/getty 38400 tty
${
tty
}
linux"
;
done
;
)
$(for
tty
in
$(
seq
1
"
$num_tty
"
)
;
do
echo
"c
${
tty
}
:12345:respawn:/sbin/getty 38400 tty
${
tty
}
linux"
;
done
;
)
p6::ctrlaltdel:/sbin/init 6
p6::ctrlaltdel:/sbin/init 6
p0::powerfail:/sbin/init 0
p0::powerfail:/sbin/init 0
EOF
EOF
# symlink mtab
# symlink mtab
[
-e
"
$rootfs
/etc/mtab"
]
&&
rm
$rootfs
/etc/mtab
[
-e
"
$rootfs
/etc/mtab"
]
&&
rm
"
$rootfs
/etc/mtab"
ln
-s
/proc/self/mounts
$rootfs
/etc/mtab
ln
-s
/proc/self/mounts
"
$rootfs
/etc/mtab"
# disable selinux in debian
# disable selinux in debian
mkdir
-p
$rootfs
/selinux
mkdir
-p
"
$rootfs
/selinux"
echo
0
>
$rootfs
/selinux/enforce
echo
0
>
"
$rootfs
/selinux/enforce"
# configure the network using the dhcp
# configure the network using the dhcp
cat
<<
EOF
>
$rootfs
/etc/network/interfaces
cat
<<
EOF
>
$rootfs
/etc/network/interfaces
...
@@ -100,60 +100,60 @@ EOF
...
@@ -100,60 +100,60 @@ EOF
# but first reconfigure locales - so we get no noisy perl-warnings
# but first reconfigure locales - so we get no noisy perl-warnings
if
[
-z
"
$LANG
"
]
;
then
if
[
-z
"
$LANG
"
]
;
then
cat
>>
$rootfs
/etc/locale.gen
<<
EOF
cat
>>
"
$rootfs
/etc/locale.gen"
<<
EOF
en_US.UTF-8 UTF-8
en_US.UTF-8 UTF-8
EOF
EOF
chroot
$rootfs
locale-gen en_US.UTF-8 UTF-8
chroot
"
$rootfs
"
locale-gen en_US.UTF-8 UTF-8
chroot
$rootfs
update-locale
LANG
=
en_US.UTF-8
chroot
"
$rootfs
"
update-locale
LANG
=
en_US.UTF-8
else
else
encoding
=
$(
echo
$LANG
|
cut
-d
.
-f2
)
encoding
=
$(
echo
"
$LANG
"
|
cut
-d
.
-f2
)
chroot
$rootfs
sed
-e
"s/^#
\(
${
LANG
}
${
encoding
}
\)
/
\1
/"
\
chroot
"
$rootfs
"
sed
-e
"s/^#
\(
${
LANG
}
${
encoding
}
\)
/
\1
/"
\
-i
/etc/locale.gen 2> /dev/null
-i
/etc/locale.gen 2> /dev/null
cat
>>
$rootfs
/etc/locale.gen
<<
EOF
cat
>>
"
$rootfs
/etc/locale.gen"
<<
EOF
$LANG
$encoding
$LANG
$encoding
EOF
EOF
chroot
$rootfs
locale-gen
$LANG
$encoding
chroot
"
$rootfs
"
locale-gen
"
$LANG
"
"
$encoding
"
chroot
$rootfs
update-locale
LANG
=
$LANG
chroot
"
$rootfs
"
update-locale
LANG
=
"
$LANG
"
fi
fi
# remove pointless services in a container
# remove pointless services in a container
chroot
$rootfs
/usr/sbin/update-rc.d
-f
checkroot.sh disable
chroot
"
$rootfs
"
/usr/sbin/update-rc.d
-f
checkroot.sh disable
chroot
$rootfs
/usr/sbin/update-rc.d
-f
umountfs disable
chroot
"
$rootfs
"
/usr/sbin/update-rc.d
-f
umountfs disable
chroot
$rootfs
/usr/sbin/update-rc.d
-f
hwclock.sh disable
chroot
"
$rootfs
"
/usr/sbin/update-rc.d
-f
hwclock.sh disable
chroot
$rootfs
/usr/sbin/update-rc.d
-f
hwclockfirst.sh disable
chroot
"
$rootfs
"
/usr/sbin/update-rc.d
-f
hwclockfirst.sh disable
# generate new SSH keys
# generate new SSH keys
if
[
-x
$rootfs
/var/lib/dpkg/info/openssh-server.postinst
]
;
then
if
[
-x
"
$rootfs
/var/lib/dpkg/info/openssh-server.postinst"
]
;
then
cat
>
$rootfs
/usr/sbin/policy-rc.d
<<
EOF
cat
>
"
$rootfs
/usr/sbin/policy-rc.d"
<<
EOF
#!/bin/sh
#!/bin/sh
exit 101
exit 101
EOF
EOF
chmod
+x
$rootfs
/usr/sbin/policy-rc.d
chmod
+x
"
$rootfs
/usr/sbin/policy-rc.d"
if
[
-f
$rootfs
/etc/init/ssh.conf
]
;
then
if
[
-f
"
$rootfs
/etc/init/ssh.conf"
]
;
then
mv
$rootfs
/etc/init/ssh.conf
$rootfs
/etc/init/ssh.conf.disabled
mv
"
$rootfs
/etc/init/ssh.conf"
"
$rootfs
/etc/init/ssh.conf.disabled"
fi
fi
rm
-f
$rootfs
/etc/ssh/
ssh_host_
*
key
*
rm
-f
"
$rootfs
/etc/ssh/"
ssh_host_
*
key
*
DPKG_MAINTSCRIPT_PACKAGE
=
openssh
DPKG_MAINTSCRIPT_NAME
=
postinst
chroot
$rootfs
/var/lib/dpkg/info/openssh-server.postinst configure
DPKG_MAINTSCRIPT_PACKAGE
=
openssh
DPKG_MAINTSCRIPT_NAME
=
postinst
chroot
"
$rootfs
"
/var/lib/dpkg/info/openssh-server.postinst configure
sed
-i
"s/root@
$(
hostname
)
/root@
$hostname
/g"
$rootfs
/etc/ssh/
ssh_host_
*
.pub
sed
-i
"s/root@
$(
hostname
)
/root@
$hostname
/g"
"
$rootfs
/etc/ssh/"
ssh_host_
*
.pub
if
[
-f
"
$rootfs
/etc/init/ssh.conf.disabled"
]
;
then
if
[
-f
"
$rootfs
/etc/init/ssh.conf.disabled"
]
;
then
mv
$rootfs
/etc/init/ssh.conf.disabled
$rootfs
/etc/init/ssh.conf
mv
"
$rootfs
/etc/init/ssh.conf.disabled"
"
$rootfs
/etc/init/ssh.conf"
fi
fi
rm
-f
$rootfs
/usr/sbin/policy-rc.d
rm
-f
"
$rootfs
/usr/sbin/policy-rc.d"
fi
fi
# set initial timezone as on host
# set initial timezone as on host
if
[
-f
/etc/timezone
]
;
then
if
[
-f
/etc/timezone
]
;
then
cat
/etc/timezone
>
$rootfs
/etc/timezone
cat
/etc/timezone
>
"
$rootfs
/etc/timezone"
chroot
$rootfs
dpkg-reconfigure
-f
noninteractive tzdata
chroot
"
$rootfs
"
dpkg-reconfigure
-f
noninteractive tzdata
elif
[
-f
/etc/sysconfig/clock
]
;
then
elif
[
-f
/etc/sysconfig/clock
]
;
then
.
/etc/sysconfig/clock
.
/etc/sysconfig/clock
echo
$ZONE
>
$rootfs
/etc/timezone
echo
"
$ZONE
"
>
"
$rootfs
/etc/timezone"
chroot
$rootfs
dpkg-reconfigure
-f
noninteractive tzdata
chroot
"
$rootfs
"
dpkg-reconfigure
-f
noninteractive tzdata
else
else
echo
"Timezone in container is not configured. Adjust it manually."
echo
"Timezone in container is not configured. Adjust it manually."
fi
fi
...
@@ -197,9 +197,9 @@ install_packages()
...
@@ -197,9 +197,9 @@ install_packages()
local
rootfs
=
"
$1
"
;
shift
local
rootfs
=
"
$1
"
;
shift
local
packages
=
"
$*
"
local
packages
=
"
$*
"
chroot
${
rootfs
}
apt-get update
chroot
"
${
rootfs
}
"
apt-get update
if
[
-n
"
${
packages
}
"
]
;
then
if
[
-n
"
${
packages
}
"
]
;
then
chroot
${
rootfs
}
apt-get
install
--force-yes
-y
--no-install-recommends
${
packages
}
chroot
"
${
rootfs
}
"
apt-get
install
--force-yes
-y
--no-install-recommends
${
packages
}
fi
fi
}
}
...
@@ -211,42 +211,42 @@ configure_debian_systemd()
...
@@ -211,42 +211,42 @@ configure_debian_systemd()
num_tty
=
$4
num_tty
=
$4
# this only works if we have getty@.service to manipulate
# this only works if we have getty@.service to manipulate
if
[
-f
${
rootfs
}
/lib/systemd/system/getty
\@
.service
]
;
then
if
[
-f
"
${
rootfs
}
/lib/systemd/system/getty
\@
.service"
]
;
then
sed
-e
's/^ConditionPathExists=/# ConditionPathExists=/'
\
sed
-e
's/^ConditionPathExists=/# ConditionPathExists=/'
\
-e
's/After=dev-%i.device/After=/'
\
-e
's/After=dev-%i.device/After=/'
\
<
${
rootfs
}
/lib/systemd/system/getty
\@
.service
\
<
"
${
rootfs
}
/lib/systemd/system/getty
\@
.service"
\
>
${
rootfs
}
/etc/systemd/system/getty
\@
.service
>
"
${
rootfs
}
/etc/systemd/system/getty
\@
.service"
fi
fi
# just in case systemd is not installed
# just in case systemd is not installed
mkdir
-p
${
rootfs
}
/
{
lib,etc
}
/systemd/system
mkdir
-p
"
${
rootfs
}
/{lib,etc}/systemd/system"
mkdir
-p
${
rootfs
}
/etc/systemd/system/getty.target.wants
mkdir
-p
"
${
rootfs
}
/etc/systemd/system/getty.target.wants"
# Fix getty-static-service as debootstrap does not install dbus
# Fix getty-static-service as debootstrap does not install dbus
if
[
-e
$rootfs
//lib/systemd/system/getty-static.service
]
;
then
if
[
-e
"
$rootfs
//lib/systemd/system/getty-static.service"
]
;
then
local
tty_services
=
$(for
i
in
$(
seq
2
$num_tty
)
;
do
echo
-n
"getty@tty
${
i
}
.service "
;
done
;
)
local
tty_services
=
$(for
i
in
$(
seq
2
"
$num_tty
"
)
;
do
echo
-n
"getty@tty
${
i
}
.service "
;
done
;
)
sed
's/ getty@tty.*/'
"
$tty_services
"
'/g'
\
sed
's/ getty@tty.*/'
"
$tty_services
"
'/g'
\
$rootfs
/lib/systemd/system/getty-static.service
|
\
"
$rootfs
/lib/systemd/system/getty-static.service"
|
\
sed
's/\(tty2-tty\)[5-9]/\1'
"
${
num_tty
}
"
'/g'
>
$rootfs
/etc/systemd/system/getty-static.service
sed
's/\(tty2-tty\)[5-9]/\1'
"
${
num_tty
}
"
'/g'
>
"
$rootfs
/etc/systemd/system/getty-static.service"
fi
fi
# This function has been copied and adapted from lxc-fedora
# This function has been copied and adapted from lxc-fedora
rm
-f
${
rootfs
}
/etc/systemd/system/default.target
rm
-f
"
${
rootfs
}
/etc/systemd/system/default.target"
chroot
${
rootfs
}
ln
-s
/dev/null /etc/systemd/system/udev.service
chroot
"
${
rootfs
}
"
ln
-s
/dev/null /etc/systemd/system/udev.service
chroot
${
rootfs
}
ln
-s
/dev/null /etc/systemd/system/systemd-udevd.service
chroot
"
${
rootfs
}
"
ln
-s
/dev/null /etc/systemd/system/systemd-udevd.service
chroot
${
rootfs
}
ln
-s
/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
chroot
"
${
rootfs
}
"
ln
-s
/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
# Make systemd honor SIGPWR
# Make systemd honor SIGPWR
chroot
${
rootfs
}
ln
-s
/lib/systemd/system/halt.target /etc/systemd/system/sigpwr.target
chroot
"
${
rootfs
}
"
ln
-s
/lib/systemd/system/halt.target /etc/systemd/system/sigpwr.target
# Setup getty service on the ttys we are going to allow in the
# Setup getty service on the ttys we are going to allow in the
# default config. Number should match lxc.tty
# default config. Number should match lxc.tty
(
cd
${
rootfs
}
/etc/systemd/system/getty.target.wants
(
cd
"
${
rootfs
}
/etc/systemd/system/getty.target.wants"
for
i
in
$(
seq
1
$num_tty
)
;
do
ln
-sf
../getty
\@
.service getty@tty
${
i
}
.service
;
done
)
for
i
in
$(
seq
1
"
$num_tty
"
)
;
do
ln
-sf
../getty
\@
.service getty@tty
"
${
i
}
"
.service
;
done
)
# Since we use static-getty.target; we need to mask container-getty@.service generated by
# Since we use static-getty.target; we need to mask container-getty@.service generated by
# container-getty-generator, so we don't get multiple instances of agetty running.
# container-getty-generator, so we don't get multiple instances of agetty running.
# See https://github.com/lxc/lxc/issues/520 and https://github.com/lxc/lxc/issues/484
# See https://github.com/lxc/lxc/issues/520 and https://github.com/lxc/lxc/issues/484
(
cd
${
rootfs
}
/etc/systemd/system/getty.target.wants
(
cd
"
${
rootfs
}
/etc/systemd/system/getty.target.wants"
for
i
in
$(
seq
0
$num_tty
)
;
do
ln
-sf
/dev/null container-getty
\@
${
i
}
.service
;
done
)
for
i
in
$(
seq
0
"
$num_tty
"
)
;
do
ln
-sf
/dev/null container-getty
\@
"
${
i
}
"
.service
;
done
)
return
0
return
0
}
}
...
@@ -304,7 +304,7 @@ openssh-server
...
@@ -304,7 +304,7 @@ openssh-server
;;
;;
esac
esac
wget https://ftp-master.debian.org/keys/
${
gpgkeyname
}
.asc
-O
-
--quiet
\
wget https://ftp-master.debian.org/keys/
${
gpgkeyname
}
.asc
-O
-
--quiet
\
| gpg
--import
--no-default-keyring
--keyring
=
${
releasekeyring
}
| gpg
--import
--no-default-keyring
--keyring
=
"
${
releasekeyring
}
"
fi
fi
# check the mini debian was not already downloaded
# check the mini debian was not already downloaded
mkdir
-p
"
$cache
/partial-
$release
-
$arch
"
mkdir
-p
"
$cache
/partial-
$release
-
$arch
"
...
@@ -370,7 +370,7 @@ install_debian()
...
@@ -370,7 +370,7 @@ install_debian()
fi
fi
fi
fi
copy_debian
$cache
$arch
$rootfs
$release
copy_debian
"
$cache
"
"
$arch
"
"
$rootfs
"
"
$release
"
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
echo
"Failed to copy rootfs"
echo
"Failed to copy rootfs"
return
1
return
1
...
@@ -394,25 +394,25 @@ copy_configuration()
...
@@ -394,25 +394,25 @@ copy_configuration()
# Generate the configuration file
# Generate the configuration file
# if there is exactly one veth network entry, make sure it has an
# if there is exactly one veth network entry, make sure it has an
# associated hwaddr.
# associated hwaddr.
nics
=
`
grep
-e
'^lxc\.network\.type[ \t]*=[ \t]*veth'
$path
/config |
wc
-l
`
nics
=
$(
grep
-e
'^lxc\.network\.type[ \t]*=[ \t]*veth'
"
$path
/config"
|
wc
-l
)
if
[
$nics
-eq
1
]
;
then
if
[
"
$nics
"
-eq
1
]
;
then
grep
-q
"^lxc.network.hwaddr"
$path
/config
||
sed
-i
-e
"/^lxc
\.
network
\.
type[
\t
]*=[
\t
]*veth/a lxc.network.hwaddr = 00:16:3e:
$(
openssl rand
-hex
3|
sed
's/\(..\)/\1:/g; s/.$//'
)
"
$path
/config
grep
-q
"^lxc.network.hwaddr"
"
$path
/config"
||
sed
-i
-e
"/^lxc
\.
network
\.
type[
\t
]*=[
\t
]*veth/a lxc.network.hwaddr = 00:16:3e:
$(
openssl rand
-hex
3|
sed
's/\(..\)/\1:/g; s/.$//'
)
"
"
$path
/config"
fi
fi
## Add all the includes
## Add all the includes
echo
""
>>
$path
/config
echo
""
>>
"
$path
/config"
echo
"# Common configuration"
>>
$path
/config
echo
"# Common configuration"
>>
"
$path
/config"
if
[
-e
"
${
LXC_TEMPLATE_CONFIG
}
/debian.common.conf"
]
;
then
if
[
-e
"
${
LXC_TEMPLATE_CONFIG
}
/debian.common.conf"
]
;
then
echo
"lxc.include =
${
LXC_TEMPLATE_CONFIG
}
/debian.common.conf"
>>
$path
/config
echo
"lxc.include =
${
LXC_TEMPLATE_CONFIG
}
/debian.common.conf"
>>
"
$path
/config"
fi
fi
if
[
-e
"
${
LXC_TEMPLATE_CONFIG
}
/debian.
${
release
}
.conf"
]
;
then
if
[
-e
"
${
LXC_TEMPLATE_CONFIG
}
/debian.
${
release
}
.conf"
]
;
then
echo
"lxc.include =
${
LXC_TEMPLATE_CONFIG
}
/debian.
${
release
}
.conf"
>>
$path
/config
echo
"lxc.include =
${
LXC_TEMPLATE_CONFIG
}
/debian.
${
release
}
.conf"
>>
"
$path
/config"
fi
fi
## Add the container-specific config
## Add the container-specific config
echo
""
>>
$path
/config
echo
""
>>
"
$path
/config"
echo
"# Container specific configuration"
>>
$path
/config
echo
"# Container specific configuration"
>>
"
$path
/config"
grep
-q
"^lxc.rootfs"
$path
/config 2> /dev/null
||
echo
"lxc.rootfs =
$rootfs
"
>>
$path
/config
grep
-q
"^lxc.rootfs"
"
$path
/config"
2> /dev/null
||
echo
"lxc.rootfs =
$rootfs
"
>>
"
$path
/config"
cat
<<
EOF
>>
$path
/config
cat
<<
EOF
>>
$path
/config
lxc.tty =
$num_tty
lxc.tty =
$num_tty
...
@@ -437,17 +437,17 @@ post_process()
...
@@ -437,17 +437,17 @@ post_process()
local
packages
=
"
$*
"
local
packages
=
"
$*
"
# Disable service startup
# Disable service startup
cat
>
${
rootfs
}
/usr/sbin/policy-rc.d
<<
EOF
cat
>
"
${
rootfs
}
/usr/sbin/policy-rc.d"
<<
EOF
#!/bin/sh
#!/bin/sh
exit 101
exit 101
EOF
EOF
chmod
+x
${
rootfs
}
/usr/sbin/policy-rc.d
chmod
+x
"
${
rootfs
}
/usr/sbin/policy-rc.d"
# If the container isn't running a native architecture, setup multiarch
# If the container isn't running a native architecture, setup multiarch
if
[
"
${
arch
}
"
!=
"
${
hostarch
}
"
]
;
then
if
[
"
${
arch
}
"
!=
"
${
hostarch
}
"
]
;
then
# Test if dpkg supports multiarch
# Test if dpkg supports multiarch
if
!
chroot
$rootfs
dpkg
--print-foreign-architecture
2>&1
;
then
if
!
chroot
"
$rootfs
"
dpkg
--print-foreign-architecture
2>&1
;
then
chroot
$rootfs
dpkg
--add-architecture
${
hostarch
}
chroot
"
$rootfs
"
dpkg
--add-architecture
"
${
hostarch
}
"
fi
fi
fi
fi
...
@@ -456,18 +456,18 @@ EOF
...
@@ -456,18 +456,18 @@ EOF
if
[
"
${
arch
}
"
=
"
${
hostarch
}
"
]
;
then
if
[
"
${
arch
}
"
=
"
${
hostarch
}
"
]
;
then
write_sourceslist
${
rootfs
}
${
release
}
${
arch
}
write_sourceslist
${
rootfs
}
${
release
}
${
arch
}
else
else
write_sourceslist
${
rootfs
}
${
release
}
write_sourceslist
"
${
rootfs
}
"
"
${
release
}
"
fi
fi
# Install Packages in container
# Install Packages in container
if
[
-n
"
${
packages
}
"
]
;
then
if
[
-n
"
${
packages
}
"
]
;
then
local
pack_list
=
"
`
echo
${
packages
}
|
sed
's/,/ /g'
`
"
local
pack_list
=
"
$(
echo
"
${
packages
}
"
|
sed
's/,/ /g'
)
"
echo
"Installing packages:
${
pack_list
}
"
echo
"Installing packages:
${
pack_list
}
"
install_packages
${
rootfs
}
${
pack_list
}
install_packages
"
${
rootfs
}
"
"
${
pack_list
}
"
fi
fi
# Re-enable service startup
# Re-enable service startup
rm
${
rootfs
}
/usr/sbin/policy-rc.d
rm
"
${
rootfs
}
/usr/sbin/policy-rc.d"
# end
# end
}
}
...
@@ -476,7 +476,7 @@ clean()
...
@@ -476,7 +476,7 @@ clean()
{
{
cache
=
${
LXC_CACHE_PATH
:-
"
$LOCALSTATEDIR
/cache/lxc/debian"
}
cache
=
${
LXC_CACHE_PATH
:-
"
$LOCALSTATEDIR
/cache/lxc/debian"
}
if
[
!
-e
$cache
]
;
then
if
[
!
-e
"
$cache
"
]
;
then
exit
0
exit
0
fi
fi
...
@@ -489,7 +489,7 @@ clean()
...
@@ -489,7 +489,7 @@ clean()
fi
fi
echo
-n
"Purging the download cache..."
echo
-n
"Purging the download cache..."
rm
--preserve-root
--one-file-system
-rf
$cache
&&
echo
"Done."
||
exit
1
rm
--preserve-root
--one-file-system
-rf
"
$cache
"
&&
echo
"Done."
||
exit
1
exit
0
exit
0
)
9>
$LOCALSTATEDIR
/lock/subsys/lxc-debian
)
9>
$LOCALSTATEDIR
/lock/subsys/lxc-debian
...
@@ -537,7 +537,7 @@ EOF
...
@@ -537,7 +537,7 @@ EOF
options
=
$(
getopt
-o
hp:n:a:r:c
-l
arch
:,clean,help,enable-non-free,mirror:,name:,packages:,path:,release:,rootfs:,security-mirror:
--
"
$@
"
)
options
=
$(
getopt
-o
hp:n:a:r:c
-l
arch
:,clean,help,enable-non-free,mirror:,name:,packages:,path:,release:,rootfs:,security-mirror:
--
"
$@
"
)
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
usage
$(
basename
$0
)
usage
"
$(
basename
"
$0
"
)
"
exit
1
exit
1
fi
fi
eval set
--
"
$options
"
eval set
--
"
$options
"
...
@@ -556,7 +556,7 @@ mainonly=1
...
@@ -556,7 +556,7 @@ mainonly=1
while
true
while
true
do
do
case
"
$1
"
in
case
"
$1
"
in
-h
|
--help
)
usage
$0
&&
exit
1
;;
-h
|
--help
)
usage
"
$0
"
&&
exit
1
;;
--
)
shift
1
;
break
;;
--
)
shift
1
;
break
;;
-a
|
--arch
)
arch
=
$2
;
shift
2
;;
-a
|
--arch
)
arch
=
$2
;
shift
2
;;
...
@@ -618,7 +618,7 @@ if [ "$(id -u)" != "0" ]; then
...
@@ -618,7 +618,7 @@ if [ "$(id -u)" != "0" ]; then
exit
1
exit
1
fi
fi
current_release
=
`
wget
${
MIRROR
}
/dists/stable/Release
-O
- 2> /dev/null |
head
|awk
'/^Codename: (.*)$/ { print $2; }'
`
current_release
=
$(
wget
"
${
MIRROR
}
/dists/stable/Release"
-O
- 2> /dev/null |
head
|awk
'/^Codename: (.*)$/ { print $2; }'
)
release
=
${
release
:-${
current_release
}}
release
=
${
release
:-${
current_release
}}
valid_releases
=(
'wheezy'
'jessie'
'stretch'
'sid'
)
valid_releases
=(
'wheezy'
'jessie'
'stretch'
'sid'
)
if
[[
!
"
${
valid_releases
[*]
}
"
=
~
(
^|[^[:alpha:]]
)
$release
([
^[:alpha:]]|
$)
]]
;
then
if
[[
!
"
${
valid_releases
[*]
}
"
=
~
(
^|[^[:alpha:]]
)
$release
([
^[:alpha:]]|
$)
]]
;
then
...
@@ -629,41 +629,41 @@ fi
...
@@ -629,41 +629,41 @@ fi
# detect rootfs
# detect rootfs
config
=
"
$path
/config"
config
=
"
$path
/config"
if
[
-z
"
$rootfs
"
]
;
then
if
[
-z
"
$rootfs
"
]
;
then
if
grep
-q
'^lxc.rootfs'
$config
2> /dev/null
;
then
if
grep
-q
'^lxc.rootfs'
"
$config
"
2> /dev/null
;
then
rootfs
=
$(
awk
-F
=
'/^lxc.rootfs[ \t]+=/{ print $2 }'
$config
)
rootfs
=
$(
awk
-F
=
'/^lxc.rootfs[ \t]+=/{ print $2 }'
"
$config
"
)
else
else
rootfs
=
$path
/rootfs
rootfs
=
$path
/rootfs
fi
fi
fi
fi
# determine the number of ttys - default is 4
# determine the number of ttys - default is 4
if
grep
-q
'^lxc.tty'
$config
2> /dev/null
;
then
if
grep
-q
'^lxc.tty'
"
$config
"
2> /dev/null
;
then
num_tty
=
$(
awk
-F
=
'/^lxc.tty[ \t]+=/{ print $2 }'
$config
)
num_tty
=
$(
awk
-F
=
'/^lxc.tty[ \t]+=/{ print $2 }'
"
$config
"
)
else
else
num_tty
=
4
num_tty
=
4
fi
fi
install_debian
$rootfs
$release
$arch
$LXC_CACHE_PATH
install_debian
"
$rootfs
"
"
$release
"
"
$arch
"
"
$LXC_CACHE_PATH
"
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
echo
"failed to install debian"
echo
"failed to install debian"
exit
1
exit
1
fi
fi
configure_debian
$rootfs
$name
$num_tty
configure_debian
"
$rootfs
"
"
$name
"
$num_tty
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
echo
"failed to configure debian for a container"
echo
"failed to configure debian for a container"
exit
1
exit
1
fi
fi
copy_configuration
$path
$rootfs
$name
$arch
$num_tty
copy_configuration
"
$path
"
"
$rootfs
"
"
$name
"
$arch
$num_tty
if
[
$?
-ne
0
]
;
then
if
[
$?
-ne
0
]
;
then
echo
"failed write configuration file"
echo
"failed write configuration file"
exit
1
exit
1
fi
fi
configure_debian_systemd
$path
$rootfs
$config
$num_tty
configure_debian_systemd
"
$path
"
"
$rootfs
"
"
$config
"
$num_tty
post_process
${
rootfs
}
${
release
}
${
arch
}
${
hostarch
}
${
packages
}
post_process
"
${
rootfs
}
"
"
${
release
}
"
${
arch
}
${
hostarch
}
${
packages
}
if
[
!
-z
"
$clean
"
]
;
then
if
[
!
-z
"
$clean
"
]
;
then
clean
||
exit
1
clean
||
exit
1
...
...
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