簡介
本文檔介紹如何使用cloudrepo.key SHA256加密將本地回購裝置與repo.cliqrtech.com同步,以便將Ubuntu 16.04回購下載到回購裝置。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本檔案中的資訊是根據以下軟體版本:
- CloudCenter 4.8.1.1版
- 回購裝置
背景資訊
CloudCenter開始支援Ubuntu 16.04(4.8.1.1版本)。但是,Ubuntu 16.04回購在CloudCenter回購裝置中不可用。
因此,如果要下載Ubuntu 16.04回購,請將本地回購裝置與repo.ciqrtech.com同步。
問題
同步Ubuntu 16.04回購下載到本地回購裝置
如果本地回購裝置與repo.cliqrtech.com同步,則無法正確獲取Ubuntu 16.04回購協定,因為cloudrepo.key加密是SHA1,而Ubuntu 16.04至少需要一個SHA256。
解決方案
為了擁有cloudrepo.key,將使用SHA256建立一個新的GnuPrivacyGuard(GPG)金鑰,該金鑰將Ubuntu 16.04回購有效地下載到本地回購裝置。
步驟1.確保repo.cliqrtech.com是主資料庫。
/usr/bin/repo_config_wizard.sh
步驟2.在本地Repo Appliance /tmp目錄中,複製並貼上此指令碼,並將其命名為recreate_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.更改recreate_gpg_key.sh權限。
chmod 755 recreate_gpg_key.sh
步驟4.執行recreate_gpg_key.sh作為root使用者。
./recreate_gpg_key.sh
步驟5.確認Ubuntu 16.04回購已新增到本地回購裝置。
ls /repo/debRepo/