Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

Problema

Sincronização do download do repo do Ubuntu 16.04 para o dispositivo de repo local

Solução

Introduction

Este documento descreve como sincronizar um dispositivo de repo local com o repo.cliqrtech.com para fazer o download do Ubuntu 16.04 Repo para o Repo Appliance com o uso da criptografia cloudrepo.key SHA256.

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Interface Linux

- Ambiente de Máquina Virtual

- Aplicativo Repo

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software:

- CloudCenter versão 4.8.1.1

- Aplicativo Repo

Informações de Apoio

O CloudCenter começou a oferecer suporte ao Ubuntu 16.04 com a versão 4.8.1.1. No entanto, o acordo de recompra do Ubuntu 16.04 não está disponível no CloudCenter Repo Appliance.

Portanto, se quiser fazer o download do acordo de reposição do Ubuntu 16.04, sincronize o dispositivo de repo local com repo.ciqrtech.com.

Problema

Sincronização do download do repo do Ubuntu 16.04 para o dispositivo de repo local

Se o Repo Appliance local se sincroniza com o repo.cliqrtech.com, ele não consegue obter corretamente o repo Ubuntu 16.04 devido à criptografia cloudrepo.key é SHA1 e o Ubuntu 16.04 requer pelo menos um SHA256.

Solução

Para ter o cloudrepo.key, uma nova chave GnuPrivacyGuard (GPG) deve ser criada com o uso do SHA256, que efetivamente faz o download do acordo Ubuntu 16.04 para o Repo Appliance local.

Etapa 1. Certifique-se de que repo.cliqrtech.com seja o repositório principal.

/usr/bin/repo_config_wizard.sh

Etapa 2. No diretório local do Repo Appliance /tmp, copie e cole este script e nomeie-o como recreate_gpg_key.sh (o script está anexado a este artigo da 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

Etapa 3.Alterar a permissão recreate_gpg_key.sh.

chmod 755 recreate_gpg_key.sh

Etapa 4. Execute recreate_gpg_key.sh como raiz.

./recreate_gpg_key.sh

Etapa 5. Confirme se o acordo de reposição do Ubuntu 16.04 foi adicionado ao dispositivo de repo local.

ls /repo/debRepo/