Quoting Dwight Engen (dwight.en...@oracle.com): > This allows a distro to put the distro specific default network > configuration (for example bridge device, link type), or other lxc > configuration in the case that -f is not passed by the user to > lxc-create, in which case lxc-create will use the distro conf file as > the basis for the containers config.
I think this is great. Note though that debian does not have an lxcbr0, only Ubuntu does. This is getting "out there", but I wonder if, for the unknown os case, it would be reliable to look at the default nic, and check if it is a bridge, and use that bridge if so. > Signed-off-by: Dwight Engen <dwight.en...@oracle.com> > --- > Makefile.am | 2 +- > config/Makefile.am | 9 +++++++++ > config/lxc.conf.debian | 3 +++ > config/lxc.conf.libvirt | 3 +++ > config/lxc.conf.unknown | 1 + > configure.ac | 25 +++++++++++++++++++++++++ > lxc.spec.in | 1 + > src/lxc/lxc-create.in | 23 +++++++++-------------- > 8 files changed, 52 insertions(+), 15 deletions(-) > create mode 100644 config/lxc.conf.debian > create mode 100644 config/lxc.conf.libvirt > create mode 100644 config/lxc.conf.unknown > > diff --git a/Makefile.am b/Makefile.am > index c66ecc6..2f7606f 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -2,7 +2,7 @@ > > ACLOCAL_AMFLAGS = -I config > > -SUBDIRS = src templates doc > +SUBDIRS = config src templates doc > DIST_SUBDIRS = config src templates doc > EXTRA_DIST = autogen.sh lxc.spec CONTRIBUTING MAINTAINERS ChangeLog > > diff --git a/config/Makefile.am b/config/Makefile.am > index 783ba73..6c39d3c 100644 > --- a/config/Makefile.am > +++ b/config/Makefile.am > @@ -1,2 +1,11 @@ > +configdir = $(sysconfdir)/lxc > +config_DATA = lxc.conf > +conffile = @LXC_CONFFILE@ > + > +EXTRA_DIST = lxc.conf.debian lxc.conf.libvirt lxc.conf.unknown > + > +lxc.conf: > + cp $(conffile) $@ > + > distclean: > @$(RM) -f compile config.guess config.sub depcomp install-sh ltmain.sh > missing Makefile.in Makefile > diff --git a/config/lxc.conf.debian b/config/lxc.conf.debian > new file mode 100644 > index 0000000..d2ac167 > --- /dev/null > +++ b/config/lxc.conf.debian > @@ -0,0 +1,3 @@ > +lxc.network.type=veth > +lxc.network.link=lxcbr0 > +lxc.network.flags=up > diff --git a/config/lxc.conf.libvirt b/config/lxc.conf.libvirt > new file mode 100644 > index 0000000..7128619 > --- /dev/null > +++ b/config/lxc.conf.libvirt > @@ -0,0 +1,3 @@ > +lxc.network.type=veth > +lxc.network.link=virbr0 > +lxc.network.flags=up > diff --git a/config/lxc.conf.unknown b/config/lxc.conf.unknown > new file mode 100644 > index 0000000..16fa9d6 > --- /dev/null > +++ b/config/lxc.conf.unknown > @@ -0,0 +1 @@ > +lxc.network.type=empty > diff --git a/configure.ac b/configure.ac > index b9a0d65..9f1e669 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -12,10 +12,34 @@ AM_PROG_CC_C_O > AC_GNU_SOURCE > AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin) > > +# Make sure to test for fedora first since it has both fedora-release > +# and redhat-release > if test -f /etc/debian_version; then > osname="debian" > +elif test -f /etc/oracle-release; then > + osname="oracle" > +elif test -f /etc/fedora-release; then > + osname="fedora" > +elif test -f /etc/redhat-release; then > + osname="redhat" > fi > + > AM_CONDITIONAL([HAVE_DEBIAN], [test x"$osname" == xdebian]) > +AM_CONDITIONAL([HAVE_ORACLE], [test x"$osname" == xoracle]) > +AM_CONDITIONAL([HAVE_FEDORA], [test x"$osname" == xfedora]) > +AM_CONDITIONAL([HAVE_REDHAT], [test x"$osname" == xredhat]) > + > +case $osname in > + debian) > + conffile=lxc.conf.debian > + ;; > + oracle|redhat|fedora) > + conffile=lxc.conf.libvirt > + ;; > + *) > + conffile=lxc.conf.unknown > + ;; > +esac > > AC_ARG_ENABLE([rpath], > [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])], > @@ -111,6 +135,7 @@ AC_ARG_WITH([rootfs-path], > [lxc rootfs mount point] > )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']]) > > +AS_AC_EXPAND(LXC_CONFFILE, $conffile) > AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)") > AS_AC_EXPAND(LXCPATH, "${with_config_path}") > AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}") > diff --git a/lxc.spec.in b/lxc.spec.in > index e14eff6..24d3ded 100644 > --- a/lxc.spec.in > +++ b/lxc.spec.in > @@ -93,6 +93,7 @@ rm -rf %{buildroot} > %{_mandir}/* > %{_datadir}/doc/* > %{_datadir}/lxc/* > +%{_sysconfdir}/lxc/* > > %files libs > %defattr(-,root,root) > diff --git a/src/lxc/lxc-create.in b/src/lxc/lxc-create.in > index 79c67d6..949edbe 100644 > --- a/src/lxc/lxc-create.in > +++ b/src/lxc/lxc-create.in > @@ -260,16 +260,18 @@ trap cleanup HUP INT TERM > mkdir -p $lxc_path/$lxc_name > > if [ -z "$lxc_config" ]; then > - touch $lxc_path/$lxc_name/config > -else > - if [ ! -r "$lxc_config" ]; then > - echo "$(basename $0): '$lxc_config' configuration file not found" >&2 > - exit 1 > - fi > + lxc_config="@SYSCONFDIR@/lxc/lxc.conf" > + echo > + echo "$(basename $0): No config file specified, using the default config > $lxc_config" > +fi > > - cp $lxc_config $lxc_path/$lxc_name/config > +if [ ! -r "$lxc_config" ]; then > + echo "$(basename $0): '$lxc_config' configuration file not found" >&2 > + exit 1 > fi > > +cp $lxc_config $lxc_path/$lxc_name/config > + > if [ -n "$custom_rootfs" ]; then > if grep -q "lxc.rootfs" $lxc_path/$lxc_name/config ; then > echo "configuration file already specifies a lxc.rootfs" > @@ -295,13 +297,6 @@ if [ ! -z $lxc_template ]; then > cleanup > fi > > - if [ -z "$lxc_config" ]; then > - echo "Note: Usually the template option is called with a configuration" > - echo "file option too, mostly to configure the network." > - echo "For more information look at lxc.conf (5)" > - echo > - fi > - > ${templatedir}/lxc-$lxc_template --path=$lxc_path/$lxc_name > --name=$lxc_name $* > if [ $? -ne 0 ]; then > echo "$(basename $0): failed to execute template '$lxc_template'" >&2 > -- > 1.7.1 > ------------------------------------------------------------------------------ Don't let slow site performance ruin your business. Deploy New Relic APM Deploy New Relic app performance management and know exactly what is happening inside your Ruby, Python, PHP, Java, and .NET app Try New Relic at no cost today and get our sweet Data Nerd shirt too! http://p.sf.net/sfu/newrelic-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel