zoukankan      html  css  js  c++  java
  • 针对Cloudinit的可行性报告

    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获取这些信息后,开始使用一些模块对数据进行处理,如新建用户、启动脚本等。

    常见的配置包括:设定虚拟机的hostnamehosts文件、设定用户名密码、更新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 EngineVSAE,位于 /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-initopenstack下进行测试研究

    1.ubuntucentos安装和使用

    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

    1windows下安装

      

     

     

     

     

     

     

     

    (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

  • 相关阅读:
    事务及存储过程
    索引细讲
    数据库练习题
    position: absolute 或 display:table 的水平垂直居中
    bootstrap table 文字超出父div范围
    css 图片不定大小不压缩、不变形的对齐
    vue3.0 + svg 图标
    vue eslint(indent) 空格缩进报错
    vue3.0 + fontAwesome 图标
    vue3.0 + ts + element-plus + i18n 中英文切换
  • 原文地址:https://www.cnblogs.com/gleaners/p/5692543.html
Copyright © 2011-2022 走看看