RHEL自动配置Client RPM
在Telefonica公有云局点,为支持动态RHEL VM创建过程中,支持租户选择Platform License/BYOL,需要配置vendordata.json,使得VM中cloud-init自动从metadata server下载vendordata.json中的cloud-init配置内容,并在本地执行。
比如,在OpenStack 所有nova-api节点上的配置文件/etc/nova/vendordata.json,配置如下内容:
{"cloud-init": "#cloud-config\nbootcmd:\n - echo -----------------------\n - echo LOG - START OTC BOOTCMD\n - echo -----------------------\n - curl -sSLk https://x.x.x.x/client-config/vendordata.sh > /var/tmp/cloud-init.otc; chmod +x /var/tmp/cloud-init.otc; /var/tmp/cloud-init.otc\n - echo -----------------------\n - echo LOG - END OTC BOOTCMD\n - echo -----------------------\n"}
其中x.x.x.x为当前region 的RHUI HTTP 服务器的100.125网段地址,即CDS-LB地址。因为CDS-LB只是HAProxy服务器,仅仅负责转发,所以vendordata.sh脚本需要上传到后端真正地HTTP服务器,即CDS-01/02节点的/var/www/html/client-config目录,其中client-config为自定义的目录。
从CDS-LB下载该shell脚本之后,就需要在本地执行,而执行过程中,会自动从metadata server中读取VM的metadata,判断VM使用平台License,还是BYOL,如果是平台License,则继续从CDS-LB下载client rpm,并在本地安装,如果是BYOL,则不做任何处理。所以CDS-01/02服务器上/var/www/html/client-config目录下,还要上传RHEL 7.3和6.9的Client RPM包。