Browse Source

add mongodb script

tuna-mirror-server 9 years ago
parent
commit
c65ffe9f10
2 changed files with 89 additions and 1 deletions
  1. 1 1
      scripts/helpers/apt-download
  2. 88 0
      scripts/mongodb.sh

+ 1 - 1
scripts/helpers/apt-download

@@ -24,7 +24,7 @@ function apt-download-binary() {
 	
 	
 	dest_dir="${dest_base_dir}/dists/${dist}"
 	dest_dir="${dest_base_dir}/dists/${dist}"
 	[ ! -d "$dest_dir" ] && mkdir -p "$dest_dir"
 	[ ! -d "$dest_dir" ] && mkdir -p "$dest_dir"
-	check-and-download "${base_url}/dists/${dist}/Contents-${arch}.gz" "${dest_dir}/Contents-${arch}.gz"
+	check-and-download "${base_url}/dists/${dist}/Contents-${arch}.gz" "${dest_dir}/Contents-${arch}.gz" || true
 	check-and-download "${base_url}/dists/${dist}/InRelease"  "${dest_dir}/InRelease" || true
 	check-and-download "${base_url}/dists/${dist}/InRelease"  "${dest_dir}/InRelease" || true
 	check-and-download "${base_url}/dists/${dist}/Release" "${dest_dir}/Release"
 	check-and-download "${base_url}/dists/${dist}/Release" "${dest_dir}/Release"
 	check-and-download "${base_url}/dists/${dist}/Release.gpg" "${dest_dir}/Release.gpg" || true
 	check-and-download "${base_url}/dists/${dist}/Release.gpg" "${dest_dir}/Release.gpg" || true

+ 88 - 0
scripts/mongodb.sh

@@ -0,0 +1,88 @@
+#!/bin/bash
+set -e
+
+_here=`dirname $(realpath $0)`
+. ${_here}/helpers/apt-download
+
+[ -z "${LOADED_APT_DOWNLOAD}" ] && (echo "failed to load apt-download"; exit 1)
+
+BASE_PATH="${TUNASYNC_WORKING_DIR}"
+
+YUM_PATH="${BASE_PATH}/yum"
+APT_PATH="${BASE_PATH}/apt"
+
+UBUNTU_VERSIONS=("trusty" "precise")
+DEBIAN_VERSIONS=("wheezy")
+MONGO_VERSIONS=("3.2" "3.0")
+STABLE_VERSION="3.2"
+
+UBUNTU_PATH="${APT_PATH}/ubuntu"
+DEBIAN_PATH="${APT_PATH}/debian"
+
+mkdir -p $UBUNTU_PATH $DEBIAN_PATH $YUM_PATH
+
+cache_dir="/tmp/yum-mongodb-cache/"
+cfg="/tmp/mongodb-yum.conf"
+cat <<EOF > ${cfg}
+[main]
+keepcache=0
+
+EOF
+
+for mgver in ${MONGO_VERSIONS[@]}; do
+cat <<EOF >> ${cfg}
+[el6-${mgver}]
+name=el6-${mgver}
+baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/${mgver}/x86_64/
+repo_gpgcheck=0
+gpgcheck=0
+enabled=1
+sslverify=0
+
+[el7-${mgver}]
+name=el7-${mgver}
+baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/${mgver}/x86_64/
+repo_gpgcheck=0
+gpgcheck=0
+enabled=1
+sslverify=0
+EOF
+done
+
+reposync -c $cfg -d -p ${YUM_PATH} -e $cache_dir
+for mgver in ${MONGO_VERSIONS[@]}; do
+	createrepo -v --update -o ${YUM_PATH}/el6-$mgver/ -c $cache_dir ${YUM_PATH}/el6-$mgver/
+	createrepo -v --update -o ${YUM_PATH}/el7-$mgver/ -c $cache_dir ${YUM_PATH}/el7-$mgver/
+done
+
+[ -e ${YUM_PATH}/el6 ] || (cd ${YUM_PATH}; ln -s el6-${STABLE_VERSION} el6)
+[ -e ${YUM_PATH}/el7 ] || (cd ${YUM_PATH}; ln -s el7-${STABLE_VERSION} el7)
+
+rm $cfg
+
+base_url="http://repo.mongodb.org/apt/ubuntu"
+for ubver in ${UBUNTU_VERSIONS[@]}; do
+	for mgver in ${MONGO_VERSIONS[@]}; do
+		version="$ubver/mongodb-org/$mgver"
+		apt-download-binary ${base_url} "$version" "multiverse" "amd64" "${UBUNTU_PATH}" || true
+		apt-download-binary ${base_url} "$version" "multiverse" "i386" "${UBUNTU_PATH}" || true
+	done
+	mg_basepath="${UBUNTU_PATH}/dists/$ubver/mongodb-org"
+	[ -e ${mg_basepath}/stable ] || (cd ${mg_basepath}; ln -s ${STABLE_VERSION} stable)
+done
+echo "Ubuntu finished"
+
+base_url="http://repo.mongodb.org/apt/debian"
+for dbver in ${DEBIAN_VERSIONS[@]}; do
+	for mgver in ${MONGO_VERSIONS[@]}; do
+		version="$dbver/mongodb-org/$mgver"
+		apt-download-binary ${base_url} "$version" "main" "amd64" "${DEBIAN_PATH}" || true
+		apt-download-binary ${base_url} "$version" "main" "i386" "${DEBIAN_PATH}" || true
+	done
+	mg_basepath="${DEBIAN_PATH}/dists/$dbver/mongodb-org"
+	[ -e ${mg_basepath}/stable ] || (cd ${mg_basepath}; ln -s ${STABLE_VERSION} stable)
+done
+echo "Debian finished"
+
+
+# vim: ts=4 sts=4 sw=4