CentOS 6 Element
This is the centos element, which builds CentOS 6. There are a couple of modifications to redhat-common because the version of tar in el6 doesn't support --xattrs-include. There is a change to both pkg-map and svc-map to add 'centos' to the 'redhat' family. Also explicitly have to install cloud-utils growroot and dracut growpart for proper fsresize at instance launch. Also sets the DIB_EXTLINUX variable because there is no grub2 for this distro. Change-Id: Iffd57bce1484c43c2cffcbdb37b602185216e63a
This commit is contained in:
		
							
								
								
									
										6
									
								
								elements/centos/README.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								elements/centos/README.rst
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| ====== | ||||
| centos | ||||
| ====== | ||||
| Use Centos 6 cloud images as the baseline for built disk images. | ||||
|  | ||||
| For further details see the redhat-common README. | ||||
							
								
								
									
										5
									
								
								elements/centos/element-deps
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								elements/centos/element-deps
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| cache-url | ||||
| dib-run-parts | ||||
| redhat-common | ||||
| rpm-distro | ||||
| yum | ||||
							
								
								
									
										1
									
								
								elements/centos/element-provides
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								elements/centos/element-provides
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| operating-system | ||||
							
								
								
									
										9
									
								
								elements/centos/environment.d/00-bootloader.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								elements/centos/environment.d/00-bootloader.bash
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then | ||||
|     set -x | ||||
| fi | ||||
| set -eu | ||||
| set -o pipefail | ||||
|  | ||||
| export DIB_EXTLINUX=1 | ||||
| @@ -0,0 +1 @@ | ||||
| export DISTRO_NAME=centos | ||||
							
								
								
									
										4
									
								
								elements/centos/package-installs.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								elements/centos/package-installs.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| parted: | ||||
| cloud-utils: | ||||
| cloud-utils-growpart: | ||||
| dracut-modules-growpart: | ||||
							
								
								
									
										25
									
								
								elements/centos/pre-install.d/02-yum-repos
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								elements/centos/pre-install.d/02-yum-repos
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then | ||||
|     set -x | ||||
| fi | ||||
| set -eu | ||||
| set -o pipefail | ||||
|  | ||||
| cat << EOF > /etc/yum.repos.d/centos6-latest.repo | ||||
| [rhel6] | ||||
| name=centos6 | ||||
| baseurl=http://mirror.centos.org/centos/6/os/x86_64/ | ||||
| enabled=1 | ||||
| metadata_expire=7d | ||||
| gpgcheck=0 | ||||
| EOF | ||||
|  | ||||
| cat << EOF > /etc/yum.repos.d/epel.repo | ||||
| [epel] | ||||
| name=Extra Packages for Enterprise Linux 6 - \$basearch | ||||
| mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=\$basearch | ||||
| failovermethod=priority | ||||
| enabled=1 | ||||
| gpgcheck=0 | ||||
| EOF | ||||
							
								
								
									
										34
									
								
								elements/centos/root.d/10-centos6-cloud-image
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								elements/centos/root.d/10-centos6-cloud-image
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then | ||||
|     set -x | ||||
| fi | ||||
| set -eu | ||||
| set -o pipefail | ||||
|  | ||||
| [ -n "$ARCH" ] | ||||
| [ -n "$TARGET_ROOT" ] | ||||
|  | ||||
| if [ 'amd64' = "$ARCH" ] ; then | ||||
|     ARCH="x86_64" | ||||
| fi | ||||
|  | ||||
| DIB_LOCAL_IMAGE=${DIB_LOCAL_IMAGE:-} | ||||
|  | ||||
| if [ -n "$DIB_LOCAL_IMAGE" ]; then | ||||
|     IMAGE_LOCATION=$DIB_LOCAL_IMAGE | ||||
|     # No need to copy a local image into the cache directory, so just specify | ||||
|     # the cached path as the original path. | ||||
|     CACHED_IMAGE=$IMAGE_LOCATION | ||||
|     BASE_IMAGE_FILE=$(basename $DIB_LOCAL_IMAGE) | ||||
|     BASE_IMAGE_TAR=$BASE_IMAGE_FILE.tgz | ||||
| else | ||||
|     DIB_RELEASE=${DIB_RELEASE:-GenericCloud-20141129_01} | ||||
|     DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-http://cloud.centos.org/centos/6/images} | ||||
|     BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-CentOS-6-x86_64-$DIB_RELEASE.qcow2} | ||||
|     BASE_IMAGE_TAR=$BASE_IMAGE_FILE.tgz | ||||
|     IMAGE_LOCATION=$DIB_CLOUD_IMAGES/$BASE_IMAGE_FILE | ||||
|     CACHED_IMAGE=$DIB_IMAGE_CACHE/$BASE_IMAGE_FILE | ||||
| fi | ||||
|  | ||||
| $TMP_HOOKS_PATH/bin/extract-image $BASE_IMAGE_FILE $BASE_IMAGE_TAR $IMAGE_LOCATION $CACHED_IMAGE | ||||
| @@ -27,7 +27,7 @@ def eprint(msg): | ||||
|  | ||||
| def os_family(distro): | ||||
|     family = None | ||||
|     if distro in ['fedora', 'rhel', 'rhel7', 'centos7']: | ||||
|     if distro in ['fedora', 'rhel', 'rhel7', 'centos', 'centos7']: | ||||
|         family = 'redhat' | ||||
|     elif distro in ['debian', 'ubuntu']: | ||||
|         family = 'debian' | ||||
|   | ||||
| @@ -78,8 +78,14 @@ function extract_image() { | ||||
|             EACTION="sudo umount -f $WORKING/mnt ; $EACTION" | ||||
|             trap "$EACTION" EXIT | ||||
|  | ||||
|             # find out if chroot tar has full xattr support | ||||
|             if [ 0 == `sudo chroot $WORKING/mnt bin/tar --help | grep -c xattrs-exclude` ]; then | ||||
|                 TAROPTS="--no-xattrs" | ||||
|             else | ||||
|                 TAROPTS="--xattrs --xattrs-include='*' --xattrs-exclude='security.selinux'" | ||||
|             fi | ||||
|             # Chroot in so that we get the correct uid/gid | ||||
|             sudo chroot $WORKING/mnt bin/tar --xattrs --xattrs-include='*' --xattrs-exclude='security.selinux' -cz . > $WORKING/tmp.tar | ||||
|             sudo chroot $WORKING/mnt bin/tar $TAROPTS -cz . > $WORKING/tmp.tar | ||||
|             mv $WORKING/tmp.tar $CACHED_TAR | ||||
|         else | ||||
|             echo "Using cached tar from $CACHED_TAR" | ||||
|   | ||||
| @@ -1,13 +1,21 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then | ||||
| if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then | ||||
|     set -x | ||||
| fi | ||||
| set -eu | ||||
| set -o pipefail | ||||
|  | ||||
| GRUBNAME=$(which grub-install) || echo "trying grub2-install" | ||||
| if [ -z "$GRUBNAME" ]; then | ||||
|     GRUBNAME=$(which grub2-install) | ||||
| fi | ||||
| if [ -z "$GRUBNAME" ] || [ $($GRUBNAME --version | grep -c "0.97") -ne 0 ]; then | ||||
|     echo "No GRUB2 found. No need to remove" | ||||
|     exit 0 | ||||
| else | ||||
| # Must manually remove grub2 here, otherwise the download below does not work. | ||||
| yum remove -y grub2 | ||||
|     yum remove -y grub2 | ||||
| fi | ||||
|  | ||||
| # Remove all old versions of grub2 from the yum cache and then ensure the | ||||
| # latest version is in the cache. | ||||
|   | ||||
| @@ -21,7 +21,7 @@ import yaml | ||||
| def os_family(distro): | ||||
|     "Given a distribution, returns a operating system family." | ||||
|     family = None | ||||
|     if distro in ['centos7', 'fedora', 'rhel', 'rhel7']: | ||||
|     if distro in ['centos', 'centos7', 'fedora', 'rhel', 'rhel7']: | ||||
|         family = 'redhat' | ||||
|     elif distro in ['debian', 'ubuntu']: | ||||
|         family = 'debian' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Abel Lopez
					Abel Lopez