【背景】
最近在学习使用kolla来编译docker镜像文件,因为我们已经将openstack一些组件服务的源代码下载到自己的服务器上了,并使用git管理起来。这也方便我们对其进行修改、追踪、使用。
其中aodh-base组件我们就需要使用自己修改后的源代码,我想让kolla在编译镜像的过程中免密下载对应代码。
因为我一开始还是使用提供git代码库的http链接,而在编译过程中kolla没有提供交互机制让我输入git用户名与密码,导致编译失败,如下:
【环境】
编译docker镜像的服务器是华为Taishan200 昆鹏920服务器。
安装的是Ubuntu18.04 LTS系统。
以ubuntu18.04操作系统镜像作为编译ARM架构服务器上docker镜像的基础镜像。
规划后续搭建openstack时安装类型是source。
【分析】
下载git代码库有两种认证机制:输入git用户名密码、配置ssh公私钥实现免输入密码。
此处我需要使用经二种方法。
为此就需要将在编译服务器上生成的ssh公钥配置到git服务器端,私钥保存在编译服务器上。
【解决过程】
1、搭建好编译使用kolla编译docker镜像的环境。
官方文档链接是:https://docs.openstack.org/kolla/train/admin/image-building.html,选择适合自己的openstack版本。
2、只有当你编译docker镜像过程中使用自己到的git代码库时,你才可能需要如下配置ssh公钥(看配置文件/etc/kolla/kolla-build.conf本身的解释,还可以先将代码库下载下来,然后直接在此文件中指定相关代码库的位置)。
需要修改kolla-build.conf文件(默认此文件存放在/etc/kolla/kolla-build.conf)中的[aodh-base] 章节配置:
我打马赛克的部分是我们git服务器的域名。
具体值可以git服务器上看到:
3、生成ssh公私钥。
ssh-keygen
4、将生成ssh公钥配置到git服务器上。
cat /root/.ssh/id_rsa.pub
5、先在编译服务器上尝试使用一下免密下载代码库,验证下配置是否成功
6、使用kolla编译aodh-api镜像成功
kolla-build aodh-api