Introducción
Este documento describe cómo sincronizar un Repo Appliance local con repo.cliqrtech.com para descargar Ubuntu 16.04 Repo al Repo Appliance con el uso del encripción cloudrepo.key SHA256.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Interfaz Linux
- Entorno de máquina virtual
- Dispositivo Repo
Componentes Utilizados
La información que contiene este documento se basa en estas versiones de software:
- CloudCenter versión 4.8.1.1
- Dispositivo Repo
Antecedentes
CloudCenter comenzó a admitir Ubuntu 16.04 con la versión 4.8.1.1. Sin embargo, la repo Ubuntu 16.04 no está disponible en el dispositivo CloudCenter Repo Appliance.
Por lo tanto, si desea descargar la repo Ubuntu 16.04, sincronice el dispositivo Repo local con repo.ciqrtech.com.
Problema
Sincronización de la descarga de la repo Ubuntu 16.04 en el dispositivo de repo local
Si el dispositivo Repo local se sincroniza con repo.cliqrtech.com, no puede obtener correctamente la repo Ubuntu 16.04 debido a que el cifrado cloudrepo.key es SHA1 y Ubuntu 16.04 requiere al menos un SHA256.
Solución
Para tener cloudrepo.key, se creará una nueva clave GnuPrivacyGuard (GPG) con el uso de SHA256, que descarga efectivamente la repo Ubuntu 16.04 al dispositivo Repo local.
Paso 1. Asegúrese de que repo.cliqrtech.com es el repositorio principal.
/usr/bin/repo_config_wizard.sh
Paso 2. En el directorio local Repo Appliance /tmp, copie y pegue este script y asígnele el nombre recreate_gpg_key.sh (el script se adjunta a este artículo de 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
Paso 3.Cambie el permiso recreate_gpg_key.sh.
chmod 755 recreate_gpg_key.sh
Paso 4. Ejecute recreate_gpg_key.sh como root.
./recreate_gpg_key.sh
Paso 5. Confirme que la repo Ubuntu 16.04 se agrega al dispositivo de repo local.
ls /repo/debRepo/