diff --git a/diskimage-create/README.rst b/diskimage-create/README.rst index 9381c611..c8e864c1 100644 --- a/diskimage-create/README.rst +++ b/diskimage-create/README.rst @@ -15,11 +15,13 @@ For users: sudo bash sahara-image-elements/diskimage-create/diskimage-create.sh -3. If you want to use your local mirrors, you should specify http urls for Fedora and Ubuntu mirrors using parameters 'FEDORA_MIRROR' and 'UBUNTU_MIRROR' like this: +3. If you want to use your local mirrors, you should specify http urls for Fedora, CentOS and Ubuntu mirrors using parameters 'FEDORA_MIRROR', 'CENTOS_MIRROR' and 'UBUNTU_MIRROR' like this: .. sourcecode:: bash - sudo USE_MIRRORS=true FEDORA_MIRROR="url_for_fedora_mirror" UBUNTU_MIRROR="url_for_ubuntu_mirror" bash sahara-image-elements/diskimage-create/diskimage-create.sh + sudo USE_MIRRORS=true FEDORA_MIRROR="url_for_fedora_mirror" CENTOS_MIRROR="url_for_centos_mirror" UBUNTU_MIRROR="url_for_ubuntu_mirror" bash sahara-image-elements/diskimage-create/diskimage-create.sh + +NOTE: Do not create all images for all plugins with the same mirrors. Different plugins use different OS version. 4. To select which plugin to target use the '-p' commandline option like this: diff --git a/diskimage-create/diskimage-create.sh b/diskimage-create/diskimage-create.sh index d1250a9e..86fdeabb 100755 --- a/diskimage-create/diskimage-create.sh +++ b/diskimage-create/diskimage-create.sh @@ -213,10 +213,9 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "vanilla" ]; then fi if [ -n "$USE_MIRRORS" ]; then - mirror_element=" apt-mirror" - ubuntu_elements_sequence=$ubuntu_elements_sequence$mirror_element - mirror_element=" yum-mirror" - fedora_elements_sequence=$fedora_elements_sequence$mirror_element + [ -n "$UBUNTU_MIRROR" ] && ubuntu_elements_sequence="$ubuntu_elements_sequence apt-mirror" + [ -n "$FEDORA_MIRROR" ] && fedora_elements_sequence="$fedora_elements_sequence fedora-mirror" + [ -n "$CENTOS_MIRROR" ] && centos_elements_sequence="$centos_elements_sequence centos-mirror" fi # Ubuntu cloud image @@ -310,8 +309,7 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "spark" ]; then ubuntu_elements_sequence="base vm ubuntu java hadoop-cdh spark" if [ -n "$USE_MIRRORS" ]; then - mirror_element=" apt-mirror" - ubuntu_elements_sequence=$ubuntu_elements_sequence$mirror_element + [ -n "$UBUNTU_MIRROR" ] && ubuntu_elements_sequence="$ubuntu_elements_sequence apt-mirror" fi # Creating Ubuntu cloud image @@ -335,8 +333,7 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "storm" ]; then ubuntu_elements_sequence="base vm ubuntu java zookeeper storm" if [ -n "$USE_MIRRORS" ]; then - mirror_element=" apt-mirror" - ubuntu_elements_sequence=$ubuntu_elements_sequence$mirror_element + [ -n "$UBUNTU_MIRROR" ] && ubuntu_elements_sequence="$ubuntu_elements_sequence apt-mirror" fi # Creating Ubuntu cloud image @@ -375,6 +372,10 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "hdp" ]; then centos_elements_sequence=$centos_elements_sequence" root-passwd" fi + if [ -n "$USE_MIRRORS"]; then + [ -n "$CENTOS_MIRROR" ] && centos_elements_sequence="$centos_elements_sequence centos-mirror" + fi + # generate image with HDP 1.3 export DIB_HDP_VERSION="1.3" disk-image-create $centos_elements_sequence -n -o $centos_image_name_hdp_1_3 @@ -390,6 +391,10 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "hdp" ]; then centos_elements_sequence=$centos_elements_sequence" root-passwd" fi + if [ -n "$USE_MIRRORS"]; then + [ -n "$CENTOS_MIRROR" ] && centos_elements_sequence="$centos_elements_sequence centos-mirror" + fi + # generate image with HDP 2.0 export DIB_HDP_VERSION="2.0" disk-image-create $centos_elements_sequence -n -o $centos_image_name_hdp_2_0 @@ -405,6 +410,10 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "hdp" ]; then centos_plain_elements_sequence=$centos_plain_elements_sequence" root-passwd" fi + if [ -n "$USE_MIRRORS"]; then + [ -n "$CENTOS_MIRROR" ] && centos_plain_elements_sequence="$centos_plain_elements_sequence centos-mirror" + fi + # generate plain (no Hadoop components) image for testing disk-image-create $centos_plain_elements_sequence -n -o $centos_image_name_plain mv $centos_image_name_plain.qcow2 ../ @@ -418,6 +427,11 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "cloudera" ]; then if [ -z "$IMAGE_TYPE" -o "$IMAGE_TYPE" = "ubuntu" ]; then cloudera_ubuntu_image_name=${cloudera_ubuntu_image_name:-ubuntu_sahara_cloudera_latest} cloudera_elements_sequence="base vm ubuntu hadoop-cloudera" + + if [ -n "$USE_MIRRORS" ]; then + [ -n "$UBUNTU_MIRROR" ] && ubuntu_elements_sequence="$ubuntu_elements_sequence apt-mirror" + fi + # Cloudera supports only 12.04 Ubuntu export DIB_RELEASE="precise" @@ -436,6 +450,10 @@ if [ -z "$PLUGIN" -o "$PLUGIN" = "cloudera" ]; then cloudera_centos_image_name=${cloudera_centos_image_name:-centos_sahara_cloudera_latest} cloudera_elements_sequence="base vm rhel hadoop-cloudera redhat-lsb selinux-permissive" + if [ -n "$USE_MIRRORS"]; then + [ -n "$CENTOS_MIRROR" ] && cloudera_elements_sequence="$cloudera_elements_sequence centos-mirror" + fi + disk-image-create $cloudera_elements_sequence -n -o $cloudera_centos_image_name mv $cloudera_centos_image_name.qcow2 ../ diff --git a/elements/centos-mirror/README.md b/elements/centos-mirror/README.md new file mode 100644 index 00000000..22708696 --- /dev/null +++ b/elements/centos-mirror/README.md @@ -0,0 +1,2 @@ +This element setups mirror for updating CentOS cloud image. Using mirror increases speed of building image. +You should specify http url for CentOS mirror using parameter 'CENTOS_MIRROR'. diff --git a/elements/centos-mirror/finalise.d/99-setup b/elements/centos-mirror/finalise.d/99-setup new file mode 100755 index 00000000..331abbf9 --- /dev/null +++ b/elements/centos-mirror/finalise.d/99-setup @@ -0,0 +1,3 @@ +#!/bin/bash + +mv /opt/repos/* /etc/yum.repos.d/ diff --git a/elements/centos-mirror/pre-install.d/00-yum b/elements/centos-mirror/pre-install.d/00-yum new file mode 100755 index 00000000..7ed033cf --- /dev/null +++ b/elements/centos-mirror/pre-install.d/00-yum @@ -0,0 +1,13 @@ +#!/bin/bash + +mkdir -p /opt/repos +mv /etc/yum.repos.d/* /opt/repos/ +cat >> /etc/yum.repos.d/centos.repo <> /etc/yum.repos.d/fedora.repo <