如何创建生产用的Openstack镜像

参考官方文档https://docs.openstack.org/image-guide/centos-image.html

  1,创建虚拟机硬盘

  1. qemu-img create -f qcow2 /tmp/centos.qcow2 10G

  2,创建虚拟机(没有virt-install命令使用yum -y install virt-install安装)

  1. virt-install --virt-type kvm --name centos --ram 1024 \
  2. --disk /tmp/centos.qcow2,format=qcow2 \
  3. --network network=default \
  4. --graphics vnc,listen=0.0.0.0 --noautoconsole \
  5. --os-type=linux --os-variant=rhel7 \
  6. --location=/tmp/CentOS-7-x86_64-Minimal-1708.iso

  PS:使用物理机作为控制节点安装的时候报 network default参数错误,把这个参数取消即可,不影响安装

  VNC客户端先准备好

  使用TightVNC连接

  选择支持中文,时区为亚洲上海

  分区只分一个/分区即可(设置为标准分区)

  PS:虚拟机不分swap分区因为虚拟机本来就是用硬盘创建出来的,没必要在用硬盘来做虚拟内存

  设置密码(以后创建的虚拟机密码均为这个)

  等待安装完成

  安装完毕点击重启,但是在该页面无法启动,需要在宿主机上面来启动

  1. virsh start centos

  使用VNC登陆

  修改网卡硬配置 /etc/sysconfig/network-scripts/ifcfg-eth0

  删除不需要的配置

  关闭网络管理(记得首字母大写)

  1. systemctl stop NetworkManager
  2. systemctl disable NetworkManager

  重启网络

  1. systemctl restart network

  PS:虚拟机没有通公网

  关闭selinux

  关闭防火墙postfix

  1. systemctl disable firewalld
  2. systemctl diaable postfix

  

  安装acpi或者其他需要在组件(比如生产需要配置yum源,安装一些常用的软件等)演示不安装了

  假设都安装完毕,写mate-data

  在虚拟机的/tmp/init.sh

  1. #!/bin/bash
  2.  
  3. set_key(){
  4. if [ ! -d /root/.ssh ]; then
  5. mkdir -p /root/.ssh
  6. chmod 700 /root/.ssh
  7. fi
  8. for ((i=1;i<=5;i++));do
  9. if [ ! -f /root/.ssh/authorized_keys ];then
  10. curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/metadata-key 2>/dev/null
  11. if [ $? -eq 0 ];then
  12. cat /tmp/metadata-key >> /root/.ssh/authorized_keys
  13. chmod 0600 /root/.ssh/authorized_keys
  14. restorecon /root/.ssh/authorized_keys
  15. rm -f /tmp/metadata-key
  16. echo "Successfully retrieved public key from instance metadata"
  17. echo "*****************"
  18. echo "AUTHORIZED KEYS"
  19. echo "*****************"
  20. cat /root/.ssh/authorized_keys
  21. echo "*****************"
  22. fi
  23. fi
  24. done
  25. }
  26.  
  27. set_hostname(){
  28. PRE_HOSTNAME=$(curl -s http://169.254.169.254/latest/meta-data/hostname)
  29. DOMAIN_NAME=$(echo $PRE_HOSTNAME | awk -F '.' '{print $1}')
  30. hostnamectl set-hostname `echo ${DOMAIN_NAME}.example.com`
  31. }
  32.  
  33. set_static_ip(){
  34. PRE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)
  35. NET_FILE="/etc/sysconfig/network-scripts/ifcfg-eth0"
  36. echo "TYPE=Ethernet" > $NET_FILE
  37. echo "BOOTPROTO=static" >> $NET_FILE
  38. echo "NAME=eth0" >> $NET_FILE
  39. echo "DEVICE=eth0" >> $NET_FILE
  40. echo "ONBOOT=yes" >> $NET_FILE
  41. echo "IPADDR=${PRE_IP}" >> $NET_FILE
  42. echo "NETMASK=255.255.255.0" >> $NET_FILE
  43. echo "GATEWAY=192.168.0.1" >> $NET_FILE
  44. }
  45.  
  46. main(){
  47. set_key;
  48. set_hostname;
  49. set_static_ip;
  50. /bin/cp /tmp/rc.local /etc/rc.d/rc.local
  51. reboot
  52. }
  53.  
  54. main

  PS:把获取key,hostname,静态ip写成3个函数,然后在main里面执行,在/tmp文件夹备份一份rc.local 设置完毕覆盖,以防虚拟机重启再次执行

  在/etc/rc.local添加

  1. /bin/bash /tmp/init.sh

  给rc.local加执行权限(必须是/etc/rc.d/rc.local不能给/etc/rc.local加执行权限否则会不执行初始化文件需要手动执行初始化文件才能生效)

  1. chmod +x /etc/rc.d/rc.local

  关闭镜像

  1. shutdown -h now

  

  在控制节点操作,上传镜像

  1. openstack image create "CentOS-7-x86_64" \
  2. --file /tmp/centos.qcow2 \
  3. --disk-format qcow2 --container-format bare \
  4. --public

  删除镜像使用命令

  1. openstack image delete CentOS-7-x86_64

  上传较慢

  镜像路径在/var/lib/glance/images

  使用命令查看

  1. openstack image list

  使用admin登陆web界面也能看到

  使用新镜像创建虚拟机

  使用admin登陆web界面

  创建云主机类型

  谁能使用demo

  退出admin使用demo登陆

  创建云主机

  使用刚刚建立的源

  云主机类型web-node

  创建可以在node2的目录/var/lib/nova/instances/_base看到拷贝镜像

  PS:我试验中没有动静 可能和报错 构建已中止:分配网络失败,不重新调度有关

  

  重启主机可以正常创建了 但是该目录还是没有文件增加

  原来是创建在控制节点上面去了,因为控制节点也设置成了计算节点调度到上面了

  

  创建快照

  是一个私有快照

Openstack创建镜像的更多相关文章

  1. openstack 创建镜像生成虚拟机不知道密码如何解决

    背景: openstack juno版本,使用glance创建centos7镜像,然后生成虚拟机. 操作步骤: 首先获取镜像http://cloud.centos.org/centos/7/image ...

  2. 利用OpenStack Rest API 创建镜像

    服务端点: image API: POST     /v2/images Request1:     Method:Post     Url: http://192.168.31.147:9292/v ...

  3. 制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)

    这是 OpenStack 实施经验分享系列的第 1 篇. OpenStack 的 instance 是通过 Glance 镜像部署的,所以准备镜像是必须要做的工作.本节介绍 Linux 镜像的制作方法 ...

  4. 制作 OpenStack Windows 镜像 - 每天5分钟玩转 OpenStack(152)

    这是 OpenStack 实施经验分享系列的第 2 篇. OpenStack 通过 Glance 镜像部署 instance,上一节我们介绍了 linux 镜像制作方法,windows 镜像与 lin ...

  5. OpenStack 创建虚机过程简要汇总

    1. 总体流程 翻译自原文(英文):https://ilearnstack.com/2013/04/26/request-flow-for-provisioning-instance-in-opens ...

  6. ubuntu openstack windows 镜像制作

    openstack  windows 镜像制作 首先下载windows所需要的驱动,virtio-win-1.1.16.vfd virtio-win-0.1-59.iso 下载的官方地址是: http ...

  7. openstack导入镜像

    本文以制作CentOS7.2镜像为例,详细介绍手动制作OpenStack镜像详细步骤,解释每一步这么做的原因.镜像上传到OpenStack glance,支持以下几个功能: 支持密码注入功能(nova ...

  8. VMware 接入 Openstack — 使用 Openstack 创建 vCenter 虚拟机

    目录 目录 软件环境 前言 Openstack 接口驱动 使用 KVM 在 Compute Node 上创建虚拟机的流程 使用 VCDirver 在 vCenter 上创建虚拟机的流程 配置 vCen ...

  9. openstack——glance镜像服务

    一.glance介绍:                Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查 ...

随机推荐

  1. C#指南,重温基础,展望远方!(5)C#语句

    程序操作使用语句进行表示. C# 支持几种不同的语句,其中许多语句是从嵌入语句的角度来定义的. 使用代码块,可以在允许编写一个语句的上下文中编写多个语句. 代码块是由一系列在分隔符 { 和 } 内编写 ...

  2. FZU 2087 统计树边【MST相关】

     Problem 2087 统计树边 Accept: 212    Submit: 651 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Prob ...

  3. Android五天乐(第一天)开发环境的部署,开发流程与调试

    由于项目要求參与无线端开发,本着技多不压身的指导精神,决定依旧从web转攻client! 由于之前自己玩过两个月android(实际上仅仅是做了两个有失水准的demo级app),本来以为这次再来学习将 ...

  4. NOJ 1012 进制转换(十进制转换成随意进制)

    题目: 进制转换 时间限制(普通/Java) : 1000 MS/ 3000 MS          执行内存限制 : 65536 KByte总提交 : 1819            測试通过 : ...

  5. Wpf 抽屉效果

    在android开发中有抽屉效果,就是在页面的边上有一个按钮,可以通过点击或者拖拽这个按钮,让页面显示.Wpf也可以实现相同的效果. 主要是通过一个DoubleAnimation和RectAnimat ...

  6. JVM虚拟机(一):java虚拟机的基本结构

    1: 类加载子系统(负责从文件系统或者网络中加载class信息,加载的类信息存放于一块成为方法区的内存空间.除了类信息外,方法区中可能还存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息 ...

  7. [elk]kibana搜索绘图

    kibana绘图 好些日志入库了需要分析. 1,首先分析top10 url的table和柱状分布 2,其次想着分析下404所占比例,以及404所对应的url table. 3,最后分析一下请求总数. ...

  8. 浅谈iOS 5的StoryBoard

    转自:http://blog.163.com/wangy_0223/blog/static/450146612012318113233218/ 示例代码的Github地址:https://github ...

  9. Thrall’s Dream 第四届山东省省赛 (直接暴力DFS)

    题目链接:题目 AC代码: #include<iostream> #include<algorithm> #include<vector> #include< ...

  10. Java 调用 C/C++ 之 JNA 系列实战篇 —— 输出char * (六)

    一. 工作环境 1. windows (64位), JDK (64位),dll文件 (64位) 2. Linux (64位),      JDK (64位),so文件 (64位) 3. JNA的官方资 ...