Introduction
Ce document décrit comment synchroniser un appareil de réparation local avec le site repo.cliqrtech.com afin de télécharger Ubuntu 16.04 Repo vers l'appareil de réparation avec l'utilisation du chiffrement SHA256 de cloudrepo.key.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Interface Linux
- Environnement de machine virtuelle
- Appliance Repo
Components Used
Les informations contenues dans ce document sont basées sur les versions de logiciel suivantes :
- CloudCenter version 4.8.1.1
- Appliance Repo
Informations générales
CloudCenter a commencé à prendre en charge Ubuntu 16.04 avec la version 4.8.1.1. Cependant, la réf. Ubuntu 16.04 n'est pas disponible dans l'appliance de réf. CloudCenter.
Par conséquent, si vous voulez télécharger le repo Ubuntu 16.04, synchronisez le Repo Appliance local avec repo.ciqrtech.com.
Problème
Synchronisation du téléchargement Repo d'Ubuntu 16.04 vers l'appareil Repo local
Si l'appareil de réparation local se synchronise avec le site repo.cliqrtech.com, il n'est pas en mesure d'obtenir correctement le repo Ubuntu 16.04 en raison du chiffrement de cloudrepo.key SHA1 et Ubuntu 16.04 nécessite au moins un SHA256.
Solution
Afin d'avoir cloudrepo.key, une nouvelle clé GnuPrivacyGuard (GPG) doit être créée avec l'utilisation de SHA256, qui télécharge effectivement le repo Ubuntu 16.04 sur l'appareil Repo local.
Étape 1. Assurez-vous que repo.cliqrtech.com est le référentiel maître.
/usr/bin/repo_config_wizard.sh
Étape 2. Dans le répertoire local Repo Appliance /tmp, copiez et collez ce script et nommez-le recréer_gpg_key.sh (le script est joint à cet article 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
Étape 3.Modifiez l'autorisation recréer_gpg_key.sh.
chmod 755 recreate_gpg_key.sh
Étape 4. Exécutez recréer_gpg_key.sh en tant que racine.
./recreate_gpg_key.sh
Étape 5. Confirmez que Ubuntu 16.04 repo est ajouté à l'appareil de réparation local.
ls /repo/debRepo/