[lxc-devel] [PATCH] lxc-fedora-template: autodev, hostname, ARM archs, Raspberry Pi fixes
Serge Hallyn
serge.hallyn at ubuntu.com
Wed May 15 15:02:01 UTC 2013
Quoting Michael H. Warfield (mhw at WittsEnd.com):
> This took a lot longer for me to get around to it... Sorry.
>
> Patch to the lxc-fedora template.
>
> I didn't get any further comments from my earlier proposal, weeks ago,
> and did get one addition based on comments about properly setting the
> hostname in /etc/hostname, which I've added. I could have broken them
> into separate patches but most are pretty small and minor.
>
> Changes:
>
> * Map armv6l and armv7l architectures to "arm" for yum and repos to
> function properly.
>
> * Detect Fedora Remix distros with no "/etc/fedora-release" file
> (Raspberry Pi) and find proper release versions when "remix" part of the
> file context.
>
> * Change default Fedora container on non-Fedora hosts to Fedora 17.
>
> * Added code for autodev for Fedora systemd containers.
>
> * Added code to set /etc/hostname for Fedora > 14 (systemd).
>
> * Fix a few typos.
>
> Regards,
> Mike
> --
> Michael H. Warfield (AI4NB) | (770) 985-6132 | mhw at 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 <mhw at WittsEnd.com>
Thanks, Michael.
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
>
> ---
> diff --git a/templates/lxc-fedora.in b/templates/lxc-fedora.in
> index 684bb9c..a828dff 100644
> --- a/templates/lxc-fedora.in
> +++ b/templates/lxc-fedora.in
> @@ -32,12 +32,28 @@ default_path=@LXCPATH@
> root_password=root
>
> # is this fedora?
> -[ -f /etc/fedora-release ] && is_fedora=true
> -
> -if [ "$arch" = "i686" ]; then
> - arch=i386
> +# Alow for weird remixes like the Raspberry Pi
> +if [ -e /etc/redhat-release ]
> +then
> + fedora_host_ver=$( sed -e '/^Fedora /!d' -e 's/Fedora.*\srelease\s*\([0-9][0-9]*\)\s.*/\1/' < /etc/redhat-release )
> + if [ "$fedora_host_ver" != "" ]
> + then
> + is_fedora=true
> + fi
> fi
>
> +# Map a few architectures to their generic Fedora repository archs.
> +# The two ARM archs are a bit of a guesstimate for the v5 and v6
> +# archs. V6 should have hardware floating point (Rasberry Pi).
> +# The "arm" arch is safer (no hardware floating point). So
> +# there may be cases where we "get it wrong" for some v6 other
> +# than RPi.
> +case "$arch" in
> +i686) arch=i386 ;;
> +armv3l|armv4l|armv5l) arch=arm ;;
> +armv6l|armv7l|armv8l) arch=armhfp ;;
> +esac
> +
> configure_fedora()
> {
>
> @@ -62,9 +78,15 @@ NETWORKING=yes
> HOSTNAME=${name}
> EOF
>
> + # set hostname on systemd Fedora systems
> + if [ $release -gt 14 ]; then
> + echo "${name}" > ${rootfs_path}/etc/hostname
> + fi
> +
> # set minimal hosts
> cat <<EOF > $rootfs_path/etc/hosts
> 127.0.0.1 localhost $name
> +::1 localhost6.localdomain6 localhost6
> EOF
>
> dev_path="${rootfs_path}/dev"
> @@ -253,6 +275,8 @@ lxc.tty = 4
> lxc.pts = 1024
> lxc.mount = $config_path/fstab
>
> +lxc.autodev = $auto_dev
> +
> # When using LXC with apparmor, uncomment the next line to run unconfined:
> #lxc.aa_profile = unconfined
>
> @@ -320,7 +344,7 @@ Mandatory args:
> Optional args:
> -p,--path path to where the container rootfs will be created, defaults to @LXCPATH at . 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 defaultto the host's release.
> + -R,--release Fedora release for the new container. if the host is Fedora, then it will default to the host's release.
> -A,--arch NOT USED YET. Define what arch the container will be [i686,x86_64]
> -h,--help print this help
> EOF
> @@ -365,7 +389,7 @@ fi
>
> if [ -n "$needed_pkgs" ]; then
> echo "Missing commands: $needed_pkgs"
> - echo "Please install these using \"sudo apt-get install $needed_pkgs\""
> + echo "Please install these using \"sudo yum install $needed_pkgs\""
> exit 1
> fi
>
> @@ -374,14 +398,22 @@ if [ -z "$path" ]; then
> fi
>
> if [ -z "$release" ]; then
> - if [ "$is_fedora" ]; then
> - release=$(cat /etc/fedora-release |awk '/^Fedora/ {print $3}')
> + if [ "$is_fedora" -a "$fedora_host_ver" ]; then
> + release=$fedora_host_ver
> else
> - echo "This is not a fedora host and release missing, defaulting to 14. use -R|--release to specify release"
> - release=14
> + echo "This is not a fedora host and release missing, defaulting to 17. use -R|--release to specify release"
> + release=17
> fi
> fi
>
> +# Fedora 15 and above run systemd. We need autodev enabled to keep
> +# systemd from causing problems.
> +if [ $release -gt 14 ]; then
> + auto_dev="1"
> +else
> + auto_dev="0"
> +fi
> +
> if [ "$(id -u)" != "0" ]; then
> echo "This script should be run as 'root'"
> exit 1
>
> ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel
More information about the lxc-devel
mailing list