目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

同步Ubuntu 16.04回購下載到本地回購裝置

解決方案

簡介

本文檔介紹如何使用cloudrepo.key SHA256加密將本地回購裝置與repo.cliqrtech.com同步，以便將Ubuntu 16.04回購下載到回購裝置。

必要條件

需求

思科建議您瞭解以下主題：

- Linux介面

- 虛擬機器環境

- 回購裝置

採用元件

本檔案中的資訊是根據以下軟體版本：

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