文档章节

Openstack文件和元数据注入

Inchin
 Inchin
发布于 2015/01/21 13:34
字数 564
阅读 5.5K
收藏 2

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

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

  1. 注入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取得

  1. 注入文件

假如我要注入.vimrc这个文件到新创建的实例中,可以:

nova boot --file /root/.vimrc=/root/.vimrc --image id_of_image --flavor 1 name_of_instance

Note: 可以注入多个文件(最多5个),只要写多个--file <dst-path=src-path>

  1. 注入元数据

可以通过--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"}

  1. 示例:

假如我们想让新创建的实例运行一个初始化脚本,但这个脚本会根据不用的需求有所变化,我们可以这样做

在创建镜像模板的时候在/etc/rc.local中加入

/opt/init.py

Init.py可以读取注入的元数据(meta.js)比如

{"url": "http://example.com/init.sh"}

得到初始化脚本的地址,下载下来并执行,这样的好处是对不同的需要可以有多个初始化文件,而不用修改模板

本文转载自网络

Inchin
粉丝 0
博文 32
码字总数 8499
作品 0
长沙
技术主管
私信 提问
加载中

评论(0)

OpenStack 命令行快速查表

1 认证 (keystone) 列出所有的用户 $ openstack user list 列出认证服务目录 $ openstack catalog list 2 镜像(glance) 列出您可以访问的镜像 $ openstack image list 删除指定的镜像 $ op...

garagong
03/31
0
0
译:块设备和 OpenStack

libvirt 配置了 librbd 的 QEMU 接口,通过它可以在 OpenStack 中使用 Ceph 块设备镜像。Ceph 块设备镜像被当作集群对象,这意味着它比独立的服务器有更好的性能。 在 OpenStack 中使用 Ceph...

Jerry_Baby
2015/02/09
3.6K
0
使用Ceph作为OpenStack的后端存储

概述 libvirt配置了librbd的QEMU接口,通过它可以在OpenStack中使用Ceph块存储。Ceph块存储是集群对象,这意味着它比独立的服务器有更好的性能。 在OpenStack中使用Ceph块设备,必须首先安装...

Jerry_Baby
2015/02/09
1.4W
3
Ubuntu16手动安装OpenStack——glance篇--转

全文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-glance/ 目标 紧接着《Ubuntu16手动安装OpenStack——keystone篇》,本文我们来安装glance,主要参考Glance Installation...

osc_11o9alwl
2019/11/12
1
0
Openstack 之 使用disk-image-builder(DIB)制作镜像

上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。 Openstack中的centos和ubuntu操作系统的镜像可以直接从社区直接下载下来使用...

余伟兵
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP实战之文件上传与下载

目录 1. 前言 2.代码实战 2.1客户端页面配置说明 2.2 $_FILES预定义变量解析 2.3文件的移动方式 2.3.1第一种移动形式 2.3.2第二种移动形式 2.4文件上传配置及解析 2.5 错误信息说明 3. 文件上...

六道木
55分钟前
36
0
rebar3 的使用

安装 $ git clone https://github.com/erlang/rebar3.git$ cd rebar3$ ./bootstrap $ ./rebar3 local install===> Extracting rebar3 libs to ~/.cache/rebar3/lib...===> Writi......

SummerGao
58分钟前
20
0
聊聊nifi的AbstractBinlogTableEventWriter

序 本文主要研究一下nifi的AbstractBinlogTableEventWriter AbstractBinlogTableEventWriter nifi-1.11.4/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src......

go4it
59分钟前
18
0
如何解决Git中的合并冲突 - How to resolve merge conflicts in Git

问题: 如何解决Git中的合并冲突? 解决方案: 参考一: https://stackoom.com/question/g5t/如何解决Git中的合并冲突 参考二: https://oldbug.net/q/g5t/How-to-resolve-merge-conflicts-...

fyin1314
今天
23
0
最常用的linux命令

查看磁盘挂载情况: df -h 查看当前目录下每个文件夹的大小 du -lh --max-depth=1 清空特定文件root >root 查看安装的linux发型版本 cat /proc/version *******lsb_release -a uname --m 查看...

fairy1674
今天
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部