Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Informations générales

Problème

Synchronisation du téléchargement Repo d'Ubuntu 16.04 vers l'appareil Repo local

Solution

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/