十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关Openstack文件和元数据注入的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
大足ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
openstack在创建实例的时候可以将文件注入到实例中,也可以传一些参数到实例,这在有些情况下会非常有用,比如修改root密码,注入ssh密钥,对实例的个性化定制(后面会举例子) Note: 只有注入文件失败才会使创建实例过程失败 对注入的支持可以有loop, guestfs, nbd, mount等,其中 mount 不安全。缺省使用: img_handlers=”loop,nbd,guestfs” 对于nbd,在ubuntu下只需要加载内核模块(modprobe nbd)和安装qemu-nbd 在centos下就比较麻烦了,需要手工编译 nbd 和 qemu-nbd Guestfs方法比较简单,只需要安装正确的包就可以,ubuntu下安装guestmount, centos需要安装libguestfs和fuse
本文档是以nova命令行的方式,图形对有些参数的支持还没有
使用nova命令需要设置以下参数
export OS_USERNAME=user
export OS_PASSWORD=pass
export OS_TENANT_NAME='tenant'
export OS_AUTH_URL=http://localhost:5000/v2.0
注入ssh密钥
a) 创建密钥(ssh-keygen)
b) 添加密钥对
i. nova keypair-add --pub_key .ssh/id_rsa.pub mykey
c) 创建实例的时候注入密钥
i. nova boot --key_name mykey --image id_of_image --flavor 1 name_of_instance
Note: id_of_image可以通过nova image-list取得
注入文件
假如我要注入.vimrc这个文件到新创建的实例中,可以:
nova boot --file /root/.vimrc=/root/.vimrc --image id_of_image --flavor 1 name_of_instance
Note: 可以注入多个文件(最多5个),只要写多个--file
注入元数据
可以通过--meta给实例中传入键值对,注入后会写在/meta.js文件里,以类似python字典的方式存储在虚拟机的/meta.js文件中
nova boot --meta key2=value2 --meta key1=value1 --image id_of_image --flavor 1 name_of_instance
Cat /meta.js # 虚拟机中
{"key2": "value2", "key1": "value1"}
示例:
假如我们想让新创建的实例运行一个初始化脚本,但这个脚本会根据不用的需求有所变化,我们可以这样做
在创建镜像模板的时候在/etc/rc.local中加入
/opt/init.py
Init.py可以读取注入的元数据(meta.js)比如
{"url": "http://example.com/init.sh"}
得到初始化脚本的地址,下载下来并执行,这样的好处是对不同的需要可以有多个初始化文件,而不用修改模板
关于“Openstack文件和元数据注入的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。