Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Problema

Sincronización de la descarga de la repo Ubuntu 16.04 en el dispositivo de repo local

Solución

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/