Add ability to use CentOS local mirror

We could specify ubuntu and fedora local mirror for image build,
now we can use local mirrors for all type of images.

Yum-mirror element was divided in two elements: fedora-mirror
and centos-mirror

Change-Id: Id5016d8a7e982010b6683c038afa21e639ef4ac0
This commit is contained in:
iberezovskiy 2014-08-06 11:19:26 +04:00
parent 44629168a2
commit 93eb332c0c
11 changed files with 58 additions and 14 deletions

View File

@ -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:

View File

@ -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 ../

View File

@ -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'.

View File

@ -0,0 +1,3 @@
#!/bin/bash
mv /opt/repos/* /etc/yum.repos.d/

View File

@ -0,0 +1,13 @@
#!/bin/bash
mkdir -p /opt/repos
mv /etc/yum.repos.d/* /opt/repos/
cat >> /etc/yum.repos.d/centos.repo <<EOF
[Local-Repository]
name=CentOS \$releasever - \$basearch - Local
baseurl=$CENTOS_MIRROR
enabled=1
gpgcheck=0
priority=1
EOF
yum makecache

View File

@ -0,0 +1,5 @@
#!/bin/bash
if [ -z "$CENTOS_MIRROR" ]; then
echo "You should specify parameter 'CENTOS_MIRROR'"
exit 2
fi

View File

@ -0,0 +1,3 @@
#!/bin/bash
mv /opt/repos/* /etc/yum.repos.d/

View File

@ -1,6 +1,7 @@
#!/bin/bash
mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/tempfile
mkdir -p /opt/repos
mv /etc/yum.repos.d/* /opt/repos
cat >> /etc/yum.repos.d/fedora.repo <<EOF
[Local-Repository]
name=Fedora \$releasever - \$basearch - Local

View File

@ -1,3 +0,0 @@
#!/bin/bash
mv /etc/yum.repos.d/tempfile /etc/yum.repos.d/fedora.repo