by hyc

针对Cloud-init的可行性报告

一.Cloud-init研究进展:

(1)ubuntu镜像:

已在版本为ubuntu-server-14.04-amd64上实现了修改主机名和用户密码功能。(有详细的安装和操作手册。)

(2)windows镜像:

在windows8.1下实现了修改主机名功能,未实现修改用户密码功能。(其原因可能是在创建实例时,输入的脚本文件未启动。)

二.Cloud-init介绍

1.Cloud-init的定义和作用

它是专为云环境中虚拟机的初始化而开发的工具,它从各种数据源读取相关数据并据此对虚拟机进行配置。向一台数据服务器获取元数据(meta data)和用户数据(user data),前者是指VM的必要信息,如主机名、网络地址等;后者是系统或用户需要的数据和文件,如用户组信息、启动脚本等。当cloud-init获取这些信息后,开始使用一些模块对数据进行处理,如新建用户、启动脚本等。

常见的配置包括:设定虚拟机的hostname、hosts文件、设定用户名密码、更新apt -get的本地缓存、调整文件系统的大小(注意不是调整分区的大小)等。

2.Cloud-init工作原理

首先,数据服务器开启HTTP服务,cloud-init会向数据服务器发送请求,确认数据源模块,依次获取版本、数据类型和具体数据内容信息。

3.用户数据输入格式

可以通过用户数据配置 IBM SmartCloud init 的行为,用户可以在实例启动时提供用户数据。使用 iaas-run-instances 的 --user-data 或 --user-data-file 参数执行该操作或者在 IBM SmartCloud Provisioning Web 控制台中的 Launch Instance 面板传递参数。可以使用两种方法检索用户数据:调用 URL http://169.254.169.254/latest/user-data 或者直接从磁盘 (Windows) 或 CD-ROM (Linux) 检索。IBM SmartCloud init 将要处理的用户数据必须是以下类型之一:

(1)MIME 多部分存档。

这组规则可应用于这个多部分文件的每个部分。使用多部分 MIME 文件,用户可以指定多个数据类型。例如,他们既可以指定 user-data 脚本,也可以指定 cloud-config 类型。

(2)User-data 脚本。

该脚本开头是:#! 或 Content-Type: text/x-shellscript,并且在首次启动时,都将在 rc.local-like 级别上执行。(rc.local-like 意味着 “在启动序列中非常靠后”)。

(3)OVF 参数。

该类型以 #ovf-parameters 或 Content-Type: text/ovf-parameters 开头。该内容为 ovf-env.xml 文件,可用于将 ovf-env.xml 文件传递给 Virtual Solutions Activation Engine(VSAE,位于 /opt/ibm/ae/AP 下),以便处理激活脚本。

(4)云配置数据。

该类型以 #cloud-config 或 Content-Type: text/cloud-config 开头。该内容为 “云配置” 数据,可用于安装 RPM 或者调用命令或脚本。

(5)Chef Recipes。

该类型以 #chef-recipes 或 Content-Type: text/chef-recipes 开头。使用该内容可以支持 chef recipes。

(6)Init 卷。

该类型以 #init-volumes 或 Content-Type: text/init-volumes 开头。使用该内容可告知如何装载附加的卷,并且可以选择首先对它们进行格式化。

三.Cloud-init在openstack下进行测试研究

1.ubuntu和centos的安装和使用

centos 和ubuntu的官方源中已经包含cloudinit,采用yum 或者 apt -get安装。

源码地址:https://launchpad.net/cloud-init

安装必要的软件包:

# sudo apt-get -y update

# sudo apt-get -y upgrade

# sudo apt-get install curl

# curl http://mirror.rightscale.com/rightlink/rightscale.pub | apt-key add -

# echo "deb [arch=amd64]

http://mirror.rightscale.com/rightscale_software_ubuntu/latest trusty main" >

/etc/apt/sources.list.d/rightscale_extra.sources.list

注:如果是32位的,arch的值改为i386。

# sudo apt-get -y --force-yes install cloud-init

# sudo apt-get -y install cloud-utils

2.windows的安装和使用

需要下载msi文件进行安装。

x86下载地址:https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x86.msi

x64下载地址:https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi

(1)windows下安装

(2)Windows下使用

登录OpenStack控制后,启动云主机的界面如下所示。此时,用户输入的云主机名称即是计算机的主机名。

用户点击“创建后”的界面如下所示。此时可以通过直接输入或者选择文件的方式来设置主机名,计算机用户的密码等。

我试了几个脚本来修改用户的密码,如下:

(1)Python语言

#!C:\Python27

import os

os.system("net user user abc123")

(2)Cmd

net user user abc123

(3)bat文件

net user user abc123

创建成功后,进入计算机里面,用url查看了元数据http://169.254.169.254/latest/user-data后,发现脚本命令已经存在。但是重启后发现用户的密码仍然没有修改成功。

3.cloud-init使用的参考资料

(1)验证cloud-config格式:

https://coreos.com/validate/

(2)cloud-init的官方说明和下载网址:

https://cloudbase.it/cloudbase-init/

(3)cloudbase-init 配置(windows server 2003):

http://powanjuanshu.blog.51cto.com/9779836/1625806

(4)用户数据输入格式和参考示例:

http://www.ibm.com/developerworks/cn/cloud/library/cl-smartcloudinit/

https://help.ubuntu.com/community/CloudInit

(5)ubuntu使用cloud-init更改用户密码:

http://www.chenshake.com/openstack-mirror-and-password/

(6)OpenStack Nova:虚拟机初始化user-data & Cloud-init

http://blog.csdn.net/juvxiao/article/details/22664457

(7)虚拟机实例-创建实例:

https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux_OpenStack_Platform/6/html/Administration_Guide/chap-virtual-machines.html

(8)用户输入的脚本文件的参考示例:

http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/files/1136/doc/examples

(9)windows下的cloud-init源代码:

https://github.com/openstack/cloudbase-init

(10)cloud-init探索-ubuntu:

http://mathslinux.org/?p=591

针对Cloud-init的可行性报告的更多相关文章

  1. openstack cloud init set password

    设置代理和password #!/bin/bash cd /home/ubuntu wget otcloud-gateway.bj.intel.com/script.tar.gz ]; then cu ...

  2. 【译】GitHub 为什么挂?官方的可行性报告为你解答

    本文翻译自 GitHub 官方博客<Introducing the GitHub Availability Report> 原文链接:https://github.blog/2020-07 ...

  3. latex中文环境配置(针对北大模板,开题报告+中期答辩+毕业论文)

    最近自己在忙着开题,中文环境真的是emm 以下只针对北大的毕业论文模板,至于其他的中文环境没有尝试 主要是用不同的latex编辑器会报不同的错误,当然我最后还是统一成了pdflatex,经过无数次尝试 ...

  4. openstack 使用cloud init 和 console-log, nbd或者libguestfs 获取VM中的硬件信息。

    以获取PCI的信息为例. 基本代码: pci.py import base64 import guestfs from functools import partial import os impor ...

  5. 云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告

    业界要闻 近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告.其中,阿里云容器服务的市场表现全球前三.中国第一,同时创造中国企业最好成绩,进入强劲表现者象限.报告显示,阿 ...

  6. CTRL-IKun团队选题报告

    1. 团队简介 1.1团队名称:CTRL-IKun 1.2队员学号列表 姓名 学号列表 廖志丹 201731032125 王川 201731021132 江天宇 201731024132 张微玖 20 ...

  7. [初读笔记] Cloud Migration Research: A Systematic Review (TCC, 2013)

    Pooyan Jamshidi, Aakash Ahmad, Claus Pahl, "Cloud Migration Research: A Systematic Review," ...

  8. 2014年全球SEO行业调查报告

    前言: 1.该调查报告是MOZ每两年一度针对SEO行业的数据分析报告. 2.随着SEO的进化,该报告已不仅仅是SEO行业,今年的调查数据更多分析网络营销行业,可以称作"网络营销行业调查报告& ...

  9. 解决 spring cloud 项目的 com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect 错误信息

    在项目中引入:引入hystrix依赖,如下 <dependency> <groupId>org.springframework.cloud</groupId> &l ...

随机推荐

  1. Vue 前端权限控制的优化改进版

    1.前言   之前<Vue前端访问控制方案 >一文中提出,使用class="permissions"结合元素id来标识权限控制相关的dom元素,并通过公共方法check ...

  2. (数据科学学习手札124)pandas 1.3版本主要更新内容一览

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在几天前,pandas发布了其1.3版本 ...

  3. centos 8.3关闭防火墙,设置开机启动禁用防火墙

    关闭防火墙 [root@bogon ~]# systemctl stop firewalld      开机禁用防火墙 [root@bogon ~]# systemctl disable firewa ...

  4. Java:Java的堆区、栈区和方法区详解

    Java内存空间理解 堆:堆主要存放Java在运行过程中new出来的对象,凡是通过new生成的对象都存放在堆中,对于堆中的对象生命周期的管理由Java虚拟机的垃圾回收机制GC进行回收和统一管理.类的非 ...

  5. SoapUI Pro 最新版本和最新功能

    专为整个后端的端到端测试而构建 创建全面的端到端测试,以从API定义或实时端点验证API的整个工作流程.只需单击几下即可传递响应数据并添加断言-无需编码. 综合生成或配置数据 通过简单的数据驱动测试来 ...

  6. 打开设置windows10内置linux功能-启用linux子系统

    第一步设置开发者模式 步骤:windows+s打开娜娜,输入设置,并点击. 点击更新与安全 点击开发者选项,选择开发者模型,弹出的对话框选确定之后等待安装完毕. 第二步:安装linux 点击确定后等待 ...

  7. [Kong] basic-auth基本认证及ACL鉴权

    目录 basic-auth 1. Route上启用插件 2. 创建一个Consumer 3. 为Consumer创建凭证 4. 验证凭证 ACL 用户鉴权 1. 在route上启用ACL鉴权插件 2. ...

  8. 分享一份550多个Linux命令的文档,按照命令首字母索引排序

    输入一个命令,让我给你一个关于它的完美解释! 众所周知,Linux命令是IT人必须掌握的一个技能,有了它,我们可以部署和维护各种各样的服务和应用.但是,大部分的Linux命令我们不一定记得住,而别是各 ...

  9. python03篇 字符串常用方法和文件操作(一)

    一.字符串常用方法 s1 = ' abcsfsfaadfdd ' s = s1.strip() print(s) print(len(s.strip())) print(s.count('a')) # ...

  10. Java程序设计(2021春)——第三章类的重用笔记与思考

    Java程序设计(2021春)--第三章类的重用笔记与思考 本章概览: 3.1 类的继承(概念与语法) 3.2 Object类(在Java继承最顶层的类) 3.3 终结类和终结方法(只能拿来用,不可以 ...