Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Problem

Synchronisierung von Ubuntu 16.04 Repo-Download auf lokale Repo-Appliance

Lösung

Einführung

In diesem Dokument wird beschrieben, wie eine lokale Repo-Appliance mit repo.cliqrtech.com synchronisiert wird, um Ubuntu 16.04 Repo auf die Repo-Appliance mit der Verwendung der CloudReg.Key SHA256-Verschlüsselung herunterzuladen.

Voraussetzungen

Anforderungen

Cisco empfiehlt, über Kenntnisse in folgenden Bereichen zu verfügen:

- Linux-Schnittstelle

- Umgebung virtueller Systeme

- Repo-Appliance

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf den folgenden Softwareversionen:

- CloudCenter Version 4.8.1.1

- Repo-Appliance

Hintergrundinformationen

Mit der Einführung von 4.8.1.1 begann CloudCenter, Ubuntu 16.04 zu unterstützen. Der Ubuntu 16.04-Report ist jedoch nicht in der CloudCenter Repo Appliance verfügbar.

Wenn Sie also den Ubuntu 16.04-Repo herunterladen möchten, synchronisieren Sie die lokale Repo-Appliance mit repo.ciqrtech.com.

Problem

Synchronisierung von Ubuntu 16.04 Repo-Download auf lokale Repo-Appliance

Wenn die lokale Repo-Appliance mit repo.cliqrtech.com synchronisiert wird, ist sie nicht in der Lage, den Ubuntu 16.04-Repo korrekt zu erhalten, da die Cloud.key-Verschlüsselung SHA1 lautet und Ubuntu 16.04 mindestens ein SHA256 erfordert.

Lösung

Um Cloudrepo.key zu haben, wird ein neuer GnuPrivacyGuard (GPG) Schlüssel mit SHA256 erstellt, der den Ubuntu 16.04 Repo auf die lokale Repo Appliance herunterlädt.

Schritt 1: Stellen Sie sicher, dass repo.cliqrtech.com das Master-Repository ist.

/usr/bin/repo_config_wizard.sh

Schritt 2: Kopieren Sie dieses Skript im lokalen Repo-Appliance /tmp-Verzeichnis, und fügen Sie es ein, und nennen Sie es restore_gpg_key.sh (Skript ist diesem TechZone-Artikel beigefügt).

#!/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

Schritt 3: Ändern Sie die Berechtigung restore_gpg_key.sh.

chmod 755 recreate_gpg_key.sh

Schritt 4: Führen Sie restore_gpg_key.sh als root aus.

./recreate_gpg_key.sh

Schritt 5: Bestätigen Sie, dass der lokalen Repo-Appliance Ubuntu 16.04 Repo hinzugefügt wurde.

ls /repo/debRepo/