简介
本文档介绍如何使本地回购设备与repo.cliqrtech.com同步,以便使用cloudrepo.key SHA256加密将Ubuntu 16.04回购下载到回购设备。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于以下软件版本:
- 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.在本地回购设备/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.执行recroate_gpg_key.sh作为root。
./recreate_gpg_key.sh
步骤5.确认Ubuntu 16.04回购已添加到本地回购设备。
ls /repo/debRepo/