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/