المقدمة
يصف هذا وثيقة كيف أن يتزامن محلي repo جهاز مع ال repo.cliqrtech.com in order to جلبت Ubuntu 16.04 repo إلى ال repo جهاز مع إستعمال ال cloudrepo.key SHA256 تشفير.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- واجهة Linux
- بيئة الجهاز الظاهري
- جهاز إعادة الشراء
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج التالية:
- CloudCenter، الإصدار 4.8.1.1
- جهاز إعادة الشراء
معلومات أساسية
بدأ CloudCenter في دعم Ubuntu 16.04 مع إصدار 4.8.1.1. ومع ذلك، لا تتوفر إعادة توجيه Ubuntu 16.04 في جهاز CloudCenter Repo.
لذلك، إذا كنت ترغب في تنزيل Ubuntu 16.04 repo، فقم بمزامنة جهاز Repo المحلي مع repo.ciqrtech.com.
المشكلة
مزامنة تنزيل طلب إعادة الشراء من Ubuntu 16.04 إلى جهاز إعادة الشراء المحلي
إذا كان جهاز Repo المحلي يتزامن مع repo.cliqrtech.com، فلن يتمكن من الحصول على إعادة توجيه Ubuntu 16.04 بشكل صحيح بسبب أن تشفير CloudDrepo.key هو SHA1 وأن Ubuntu 16.04 يتطلب SHA256 على الأقل.
الحل
للحصول على cloudDrepo.key، سيتم إنشاء مفتاح GnuPrivacyGuard (GPG) جديد باستخدام SHA256، والذي يقوم بتنزيل إعادة توجيه Ubuntu 16.04 بشكل فعال إلى جهاز Repo المحلي.
الخطوة 1. تأكد من أن repo.cliqrtech.com هو المستودع الرئيسي.
/usr/bin/repo_config_wizard.sh
الخطوة 2. في الدليل /tmp للجهاز المحلي لإعادة التوجيه، انسخ هذا البرنامج النصي والصقه واسمه creating_gpg_key.sh (تم إرفاق برنامج نصي بالمقالة TechZone هذه).
#!/bin/bash
REPO_DIR='/repo'
# Move gnupg folder to recreate keys
if [[ -d '/home/repo/.gnupg' ]]; then
su repo -c "mv -f /home/repo/.gnupg /home/repo/gnupg_bkp"
fi
# Create gpg.conf file and add sha256 algorith to it
gpg_conf_file='/home/repo/.gnupg/gpg.conf'
su repo -c "gpg --list-keys"
if [[ ! -f ${gpg_conf_file} ]]; then
echo "Gpg.conf file not created. Failing in gpg install/configure"
exit 1
fi
echo cert-digest-algo SHA256 >> ${gpg_conf_file}
echo digest-algo SHA256 >> ${gpg_conf_file}
gpg_txt='/tmp/gpg.txt'
cat << EOF > ${gpg_txt}
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 4096
Name-Real: CloudRepo
Name-Comment: GPG key for Cloud Repo
Name-Email: foo@foo.bar
Expire-Date: 0
Passphrase: cloudrepo
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
su repo -c "gpg --batch --gen-key ${gpg_txt}"
rm -f ${gpg_txt}
# Remove cloudrepo key before recreating it
cloud_repo_key=${REPO_DIR}'/cloudrepo.key'
if [[ -f ${cloud_repo_key} ]]; then
rm -f ${cloud_repo_key}
fi
gpg_key_val=$(su repo -c "gpg --list-keys" | grep "^pub" | tail -n 1 | awk '{print $2}' | cut -d '/' -f 2 )
gpg_tmp_file='/tmp/gpg.tmp'
echo cloudrepo > ${gpg_tmp_file}
su repo -c "cat ${gpg_tmp_file} | gpg --no-tty --batch --passphrase-fd 0 --output ${cloud_repo_key} --armor --export ${gpg_key_val}"
rm -f ${gpg_tmp_file}
# Run rebuild metadata script to recreate ubuntu1604 metadata with the new key
touch /repo/debRepo/ubuntu1604/amd64/binary/tmp_file
touch /repo/debRepo/ubuntu1404/amd64/binary/tmp_file
touch /repo/debRepo/ubuntu1204/amd64/binary/tmp_file
su repo -c "/repo/scripts/rebuild_repo_metadata.sh"
rm -f /repo/debRepo/ubuntu1604/amd64/binary/tmp_file
rm -f /repo/debRepo/ubuntu1404/amd64/binary/tmp_file
rm -f /repo/debRepo/ubuntu1204/amd64/binary/tmp_file
exit 0
الخطوة 3.قم بتغيير إذن creating_gpg_key.sh.
chmod 755 recreate_gpg_key.sh
الخطوة 4. قم بتنفيذ creating_gpg_key.sh كجذر.
./recreate_gpg_key.sh
الخطوة 5. تأكد من إضافة Ubuntu 16.04 repo إلى جهاز إعادة التوجيه المحلي.
ls /repo/debRepo/