【发布时间】:2021-08-24 02:56:57
【问题描述】:
我在内部服务器中部署了一些私有包,我想在 Kolla-Ansible 的图像中配置 pip。有没有我可以修改的配置选项来实现这一点? pip config 和我安装 Kolla-Ansible 的虚拟环境一样吗?
【问题讨论】:
我在内部服务器中部署了一些私有包,我想在 Kolla-Ansible 的图像中配置 pip。有没有我可以修改的配置选项来实现这一点? pip config 和我安装 Kolla-Ansible 的虚拟环境一样吗?
【问题讨论】:
pip 配置是否与我安装 Kolla-Ansible 的虚拟环境相同?
IIUC,不。在我的实验中,主机的pip config与虚拟环境不同。像这样:
root@l-pc:~# pip -V
pip 20.2 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
root@l-pc:~# pip config list
global.index-url='http://my.host.com/pypi/simple'
install.trusted-host='my.host.com'
root@l-pc:~# docker exec -it -u 0 nova_compute /bin/bash
(nova-compute)[root@l-pc /]# pip -V
pip 20.3.1 from /var/lib/kolla/venv/lib/python2.7/site-packages/pip (python 2.7)
(nova-compute)[root@l-pc /]# pip config list
:env:.extra-index-url='https://mirror.iad.rax.opendev.org/wheel/ubuntu-18.04-x86_64'
:env:.index-url='http://mirror.iad.rax.opendev.org:8080/pypi/simple'
:env:.trusted-host='mirror.iad.rax.opendev.org'
在 Kolla-Ansible 的图像中配置 pip。我可以修改任何配置选项来实现这一点吗?
在我看来,可能是的。所有根据 docker 容器的虚拟环境文件(/etc/resolv.conf, /etc/hosts)都会在启动时更新与主机的一致。
因此,您可以通过在部署 docker 映像或重新启动正在运行的 docker 容器之前更新文件来实现。
1.1.1.1 mirror.iad.rax.opendev.org解析,其中1.1.1.1是您的内部服务器,mirror.iad.rax.opendev.org是图片中的默认index-url。或
DNS server: 1.1.1.2,则在/etc/resolv.conf中插入nameserver 1.1.1.2,这将解析图像默认index-url: mirror.iad.rax.opendev.org域名。在 Kolla-Ansible 的图像中配置 pip
index-url your.internal.server.com之后将图片的.pip/pip.conf更新为extra-index-url public.pip.server.com,它会寻找extra-index-url而在index-url中找不到。但是通过这种方式,您可以执行 docker commit 来创建您的新图像。【讨论】:
mirror.iad.rax.opendev.org解析到内部服务器,那么我无法下载公共包。(这是我的猜测,我没有尝试过)跨度>
index-url your.internal.server.com 之后将图像的pip config 更新为--extra-index-url public.pip.server.com。如果是,我建议您应该维护您需要的所有软件包,其中一些是您自己制作的,作为从公共服务器下载的其他软件包。还有一件事,你的内部 pypi 服务器可以访问公共网络吗?如果是,也许您可以在内部服务器中配置一些公共包的代理。
index-url,将公共服务器设为extra-index-url。我已经使用 pip.conf 文件创建了基本 ubuntu 映像,但没有运气。然后我尝试更改kolla/docker/openstack-base/Dockerfile.j2(jinja2模板),将http://1.1.1.1/packages/mypackage-0.0.1.tar.gz添加到set openstack_base_pip_packages,它工作。我还没弄清楚为什么 pip.conf 没有改变设置,解决方案只是不好而且是暂时的。
requirements.txt并没有触发下载,所以问题是如何让kolla-ansible下载我的私有包。我找到的解决方案是更改模板文件。无论如何,谢谢你的回答!