Quoting Michael H. Warfield (m...@wittsend.com): > All, > > After comments from Serge, attached is a suggested patch to the Fedora > template to incorporate the FQDN (Fully Qualified Domain Name) of the > container as the utsname in the container configuration and in the host > name of the system. It adds a "--fqdn" long option to explicitly > specify the value for utsname and hostname. > > The logic contains one default behavior change. If an FQDN is not > specified or is a host simple name, the logic will use the domain name > of the host appended to either the container name or the simple name to > generate an FQDN. > > There were some comments on the -users list about determining the name > of a container based on it's host name. That's never a good idea > anyways because they can be independently changed but this would also > change the default case. Please looks that over and comment. Other > container owners might consider a similar modification. > > Regards, > Mike > -- > Michael H. Warfield (AI4NB) | (770) 985-6132 | m...@wittsend.com > /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/ > NIC whois: MHW9 | An optimist believes we live in the best of all > PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it! > -- > > Signed-off-by: Michael H. Warfield <m...@wittsend.com> > > --- > diff --git a/templates/lxc-fedora.in b/templates/lxc-fedora.in > index 481f718..8cc1699 100644 > --- a/templates/lxc-fedora.in > +++ b/templates/lxc-fedora.in > @@ -66,7 +66,7 @@ configure_fedora() > DEVICE=eth0 > BOOTPROTO=dhcp > ONBOOT=yes > -HOSTNAME=${name} > +HOSTNAME=${utsname} > NM_CONTROLLED=no > TYPE=Ethernet > MTU=${MTU} > @@ -75,17 +75,17 @@ EOF > # set the hostname > cat <<EOF > ${rootfs_path}/etc/sysconfig/network > NETWORKING=yes > -HOSTNAME=${name} > +HOSTNAME=${utsname} > EOF > > # set hostname on systemd Fedora systems > if [ $release -gt 14 ]; then > - echo "${name}" > ${rootfs_path}/etc/hostname > + echo "${utsname}" > ${rootfs_path}/etc/hostname > fi > > # set minimal hosts > cat <<EOF > $rootfs_path/etc/hosts > -127.0.0.1 localhost $name > +127.0.0.1 localhost.localdomain localhost $utsname > ::1 localhost6.localdomain6 localhost6 > EOF > > @@ -287,7 +287,7 @@ copy_configuration() > mkdir -p $config_path > grep -q "^lxc.rootfs" $config_path/config 2>/dev/null || echo > "lxc.rootfs = $rootfs_path" >> $config_path/config > cat <<EOF >> $config_path/config > -lxc.utsname = $name > +lxc.utsname = $utsname > lxc.tty = 4 > lxc.pts = 1024 > lxc.mount = $config_path/fstab > @@ -355,7 +355,7 @@ usage() > cat <<EOF > usage: > $1 -n|--name=<container_name> > - [-p|--path=<path>] [-c|--clean] [-R|--release=<Fedora_release>] > [-A|--arch=<arch of the container>] > + [-p|--path=<path>] [-c|--clean] [-R|--release=<Fedora_release>] > [--fqdn=<network name of container>] [-A|--arch=<arch of the container>] > [-h|--help] > Mandatory args: > -n,--name container name, used to as an identifier for that > container from now on > @@ -363,13 +363,14 @@ Optional args: > -p,--path path to where the container rootfs will be created, > defaults to @LXCPATH@. The container config will go under @LXCPATH@ in that > case > -c,--clean clean the cache > -R,--release Fedora release for the new container. if the host is > Fedora, then it will default to the host's release. > + --fqdn fully qualified domain name (FQDN) for DNS and system > naming > -A,--arch NOT USED YET. Define what arch the container will be > [i686,x86_64] > -h,--help print this help > EOF > return 0 > } > > -options=$(getopt -o hp:n:cR: -l help,path:,name:,clean,release: -- "$@") > +options=$(getopt -o hp:n:cR: -l help,path:,name:,clean,release:,fqdn: -- > "$@") > if [ $? -ne 0 ]; then > usage $(basename $0) > exit 1 > @@ -384,6 +385,7 @@ do > -n|--name) name=$2; shift 2;; > -c|--clean) clean=$2; shift 2;; > -R|--release) release=$2; shift 2;; > + --fqdn) utsname=$2; shift 2;; > --) shift 1; break ;; > *) break ;; > esac > @@ -394,6 +396,29 @@ if [ ! -z "$clean" -a -z "$path" ]; then > exit 0 > fi > > +if [ -z "${utsname}" ]; then > + utsname=${name} > +fi > + > +# This follows a standard "resolver" convention that an FQDN must have > +# at least two dots or it is considered a local relative host name. > +# If it doesn't, append the dns domain name of the host system. > +# > +# This changes one significant behavior when running > +# "lxc_create -n Container_Name" without using the > +# --fqdn option. > +# > +# Old behavior: > +# utsname and hostname = Container_Name > +# New behavior: > +# utsname and hostname = Container_Name.Domain_Name > + > +if [ $(expr "$utsname" : '.*\..*\.') = 0 ]; then
Is this definately what you want? I realize 'fqdn' probably really means legit, but I coudl see people saying lxc-create ... --fqdn n1.lxc --domainname lxc and now they'll end up with n1.lxc.lxc as utsname, right? > + if [ -n "$(dnsdomainname)" ]; then > + utsname=${utsname}.$(dnsdomainname) > + fi > +fi > + > needed_pkgs="" > type yum >/dev/null 2>&1 > if [ $? -ne 0 ]; then > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may > _______________________________________________ > Lxc-devel mailing list > Lxc-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lxc-devel ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel