使用juju部署服务时,如何为私有debian repo添加公钥?

我正在尝试使用juju-deployer部署服务(比如说keystone),并将“openstack-origin”设置为我们设置的私有debian repo。 我已经设置了openstack-origin,如下所示:

"openstack-origin": "deb http://local-mirror.company.com/ubuntu-cloud trusty-updates/juno main" 

当我部署服务时,它通过添加一个新文件/etc/apt/sources.list.d/juju_deb.list成功地将debian repo添加到源列表中,内容与我将openstack-origin设置为:

deb http://local-mirror.company.com/ubuntu-cloud trusty-updates/juno mainu

到现在为止还挺好。 问题是,当系统从该repo安装软件包时,我们会看到以下错误:

 WARNING: The following packages cannot be authenticated! python-dogpile.core python-netaddr python-six python-stevedore python-oslo.config python-pbr python-keystoneclient python-keystonemiddleware python-ldappool python-sqlalchemy python-migrate python-alembic alembic python-oslo.i18n python-oslo.utils python-oslo.db python-oslo.serialization python-posix-ipc python-eventlet python-amqp python-oslo.messaging python-pycadf python-dogpile.cache python-sqlalchemy-ext python-keystone keystone E: There are problems and -y was used without --force-yes 

如果我手动进入该系统,juju正试图安装该服务,那么我可以通过执行sudo apt-get -y install keystone重现该问题,我也可以看到如果我尝试sudo apt-get update我会收到以下错误sudo apt-get update

 W: GPG error: http://local-mirror.company.com trusty-updates/juno Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5EDB1B62EC4926EA 

所以……我的问题是,当它将debian repo添加到源列表时,如何让juju为该系统添加适当的公钥,这样当它尝试安装包时我们不会得到钩子错误? 要明确我不是要问如何使用apt-key手动添加密钥 – 我需要能够在部署新服务时从juju-deployer添加密钥。

对于OpenStack charms,可以在由管道字符分隔的openstack-origin配置设置中指定deb url源条目的键。 当密钥作为openstack-origin设置的一部分包含时,超级按钮将尝试从keyserver.ubuntu.com导入密钥。

例如juju set openstack-origin nova-compute openstack-origin =“deb http://ppa.launchpad.net/billy-olsen/testfix-kilo/ubuntu vivid main | FA0FD8E1”

需要注意的一点是,OpenStack魅力使用openstack-origin信息来确定正在安装哪个OpenStack版本。 因此,在deb镜像或ppas中包含OpenStack版本的代号非常重要。 如果不这样做,将在部署魅力时导致错误。

一个新的错误已经提出。

总结一下:

OpenStack charms提供了一个config选项来指定任意apt repo,但是没有提供一种机制来为在Launchpad之外托管自定义apt repo的场景添加相应的公钥。