Metadata Service 最高频的应用 - 天天5分钟玩转 OpenStack(164)

实现 instance 定制化,cloud-init(或 cloudbase-init)只是故事的一半,metadata service 则是故事的的另外一半。二者的分工是:metadata service 为 cloud-init 提供自定义配置数据,cloud-init 完成配置工做。数据库

 

Metadata Service

 

前面讨论了一些 cloud-init 和 cloudbase-init 相关的经验,收到了不少反馈,你们对 instance 启动时是如何完成自定义配置这个过程很是感兴趣,但愿可以系统讲一下。这个主题确实很重要,实际应用场景不少,确实颇有必要系统讨论一番,做为对现有教程的补充。

instance 是经过 image 部署出来的,image 中包含了操做系统(例如 Ubuntu 16.04),最经常使用的软件(例如 SSH)以及最通用的配置(例如 eth0 dhcp)。然而在建立 instance 的时候,咱们每每但愿对 instance 进行一些额外的配置,好比:安装某些包、开启一些服务、添加 SSH 秘钥、配置 hostname 等等。

有几个方法能够完成这项工做:

1. 将这些东西通通作到 image 中。

这种方案能够实现,但不现实。image 应该被看着是一个模板,存放的是通用的内容。在 image 中加入个性化配置的作法要么使 image 变得很是庞杂,要么致使数量众多的 image,不易管理。

2. instance 部署出来以后手工完成个性化配置。

因为须要手工操做,instance 数量多了以后工做量会激增,并且容易出错。

3. 推荐方案:由 OpenStack Metadata Service 提供 instance 的配置信息(这些信息被统称为 metadata)。instance 启动时向 Metadata Service 请求并得到本身的 metadata,instance 的 cloud-init(或 cloudbase-init)根据 metadata 完成个性化配置工做。

这个方案的优势是不须要修改基础 image,保证了 image 的稳定性,同时实现了 instance 自动化地个性配置。
 架构

最高频的应用


将 ssh public key 添加到 instance。

首先在 “Project -> Compute -> Access & Security” 中建立 Key Pair。
 ssh


OpenStack 会建立一对 ssh pulbic key 和 private key,public key 存放在 OpenStack 数据库中,private key 会在咱们点击 “Create Key Pair” 按钮时自动下载。

如今 "cloudman" 这个 key pair 就是咱们要用的 metadata 了。部署 instance 时,选择 "cloudman"。
 学习


instance 启动后,能够看到这个 cloudman 的 public key 已经保存到 .ssh/authorized_keys 中了。
 spa


这样咱们就能够用 cloudman 的 private key 直接登陆 instance。操作系统

 

3.5.png

本节咱们了解了 Metadata Service 的概念及其做用,并经过一个例子得到了些感性认识。下一节就要深刻学习了,咱们将从 Metadata Service 的架构开始。教程

 

相关文章
相关标签/搜索