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

制作centos7 :https://docs.openstack.org/image-guide/centos-image.html

手动创建OpenStack镜像:

上传centos7.iso 到/tmp下

1.创建虚拟磁盘
qemu-img create -f qcow2 /tmp/centos.qcow2 10G 2.创建虚拟机

  

virt-install --virt-type kvm --name Centos7-x86_64 --ram 1024 \
--cdrom=/tmp/CentOS-7-x86_64-DVD-1810.iso \
--disk path=/tmp/centos.qcow2 \
--network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

  

如果不能创建的 类型换成 qemu

如报错:ERROR    主机不支持 任意虚拟化选项
原因是没有安装qemu-kvm软件包,安装即可
yum -y install qemu-kvm 创建虚拟机:网络如果选择默认:network=default 就要有虚拟桥接网卡,也就是如下:virbr0与virbr0-nic 是按装libvirt 自动创建的。 [root@linux-node1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master brqecad9a89-d0 state UP group default qlen 1000
link/ether 00:0c:29:d1:eb:67 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fed1:eb67/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:7c:7b:42 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:7c:7b:42 brd ff:ff:ff:ff:ff:ff
5: tap676e4377-48@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master brqecad9a89-d0 state UP group default qlen 1000
link/ether 66:1e:88:49:1e:ab brd ff:ff:ff:ff:ff:ff link-netnsid 0
6: brqecad9a89-d0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:d1:eb:67 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.230/24 brd 192.168.1.255 scope global brqecad9a89-d0
valid_lft forever preferred_lft forever
inet6 fe80::9472:d0ff:fe29:dcc5/64 scope link
valid_lft forever preferred_lft forever 如果没有虚拟网络就改成如下:bridge=brqecad9a89-d0 即可
virt-install --virt-type kvm --name centos --ram 1024 \
--disk /tmp/centos.qcow2,format=qcow2 \
--network bridge=brqecad9a89-d0 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=centos7.0 \
--location=/tmp/CentOS-7-x86_64-DVD-1810.iso 注意:虚拟机不分交换分区 3.启动虚拟机并用vnc链接
virsh list --all
virsh start centos 4.安装默认需要的软件
配置虚拟机网络,删除UUID,ONBOOT=yes,如果不用ipv6的话就删掉,PEERNDS=yes要删掉,因为他是默认使用NetworkManager来管理的,删掉PEERROUTES=yes,删掉DEFROUNT=yes
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl start network
vim /etc/resolv.conf
ping www.baidu.com 关闭selinux,防火墙,postfix
yum install acpid
systemctl enable acpid

  

yum install net-tools tree screen wget git vim salt-minion zabbix-agent
内部yum源
内部DNS
等 设置key,编写脚本
vim /opt/init.sh
#!/bin/bash set_key(){
if [ ! -d /root/.ssh ]; then
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi # Fetch public key using HTTP
for ((i=1;i<=5;i++)); do
if [ ! -f /root/.ssh/authorized_keys ]; then
curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/metadata-key 2>/dev/null
if [ $? -eq 0 ]; then
cat /tmp/metadata-key >> /root/.ssh/authorized_keys
chmod 0600 /root/.ssh/authorized_keys
restorecon /root/.ssh/authorized_keys
rm -f /tmp/metadata-key
echo "Successfully retrieved public key from instance metadata"
echo "*****************"
echo "AUTHORIZED KEYS"
echo "*****************"
cat /root/.ssh/authorized_keys
echo "*****************"
fi
fi
done
} set_hostname(){
PRE_HOSTNAME=$(curl -s http://169.254.169.254/2009-04-04/meta-data/hostname)
#echo $PRE_HOSTNAME > /etc/hostname
hostnamectl set-hostname `echo $PRE_HOSTNAME`
} set_static_ip(){
PRE_IP=$(curl -s http://169.254.169.254/2009-04-04/meta-data/local-ipv4)
NET_FILE=/etc/sysconfig/network-scripts/ifcfg-eth0
echo "TYPE=Ethernet" > $NET_FILE
echo "BOOTPROTO=none" >> $NET_FILE
echo "NAME=eth0" >> $NET_FILE
echo "ONBOOT=yes" >> $NET_FILE
echo "DEVICE=eth0" >> $NET_FILE
echo "IPADDR=${PRE_IP}" >> $NET_FILE
echo "PREFIX=24" >> $NET_FILE
echo "GATEWAY=192.168.1.1" >> $NET_FILE
#echo "DNS1=192.168.1.1" >> $NET_FILE
}
#如果需要挂载数据云盘可编写 main(){
set_key;
set_hostname;
set_static_ip;
echo > /opt/init.sh
reboot
}

main
chmod +x init.sh
chmod +x /etc/rc.d/rc.loca
vim /etc/rc.d/rc.loca
/bin/bash /tmp/init.sh poweroff 5.上传镜像:
openstack image create "Centos-7-x86_64" --file /tmp/centos.qcow2 --disk-format qcow2 --container-format bare --public https://www.cnblogs.com/linuxk/p/9455206.html
http://blogs.studylinux.net/?p=3481

  

021-制作OpenStack镜像官方文档的更多相关文章

  1. hbase官方文档(转)

    FROM:http://www.just4e.com/hbase.html Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Soft ...

  2. 【Docker官方文档】理解Docker

    本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行 ...

  3. HBase 官方文档

    HBase 官方文档 Copyright © 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Revision ...

  4. Hive官方文档

    Hive官方文档     内容列表 Cloudera制作的Hive介绍视频 安装与配置 系统需求 安装Hive发行版 从Hive源码编译 运行Hive 配置管理概览 运行时配置 Hive, Map-R ...

  5. HBase官方文档

    HBase官方文档 目录 序 1. 入门 1.1. 介绍 1.2. 快速开始 2. Apache HBase (TM)配置 2.1. 基础条件 2.2. HBase 运行模式: 独立和分布式 2.3. ...

  6. 【Phabricator】教科书一般的Phabricator安装教程(配合官方文档并带有踩坑解决方案)

    随着一声惊雷和滂沱的大雨,我的Phabricator页面终于在我的学生机上跑了起来. 想起在这五个小时内踩过的坑甚如大学隔壁炮王干过的妹子,心里的成就感不禁油然而生. 接下来,我将和大家分享一下本人在 ...

  7. 2DToolkit官方文档中文版打地鼠教程(二):设置摄像机

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

  8. Ionic2系列——Ionic 2 Guide 官方文档中文版

    最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情确实比较费精力,不知道什么时 ...

  9. 一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍

    我们在前一篇文章微软新神器-Power BI,一个简单易用,还用得起的BI产品中,我们初步介绍了Power BI的基本知识.由于Power BI是去年开始微软新发布的一个产品,虽然已经可以企业级应用, ...

随机推荐

  1. session与cookie区别与联系

    一.Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标 ...

  2. CentOS 6.7与CentOS 7.3内存查看命令free、top的差异对比

    https://www.centos.bz/2017/08/centos-6-7-centos-7-3-free-top/

  3. lambda表达式匿名函数

    匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用.可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数. C# 中委托的发展 在 C# 1.0 中,您通 ...

  4. datalist的模板里的label要绑定一个函数

    列下如何在前台绑定数据时呼叫後台方法 如下GetInfoByID是后台方法,Eval("ID").ToString()是你在前台绑定数据传入的字段名 <asp:Label I ...

  5. 阶段3 1.Mybatis_09.Mybatis的多表操作_3 完成account的一对一操作-通过写account的子类方式查询

    先把多表查询的sql语句写出来 想要显示的字段 创建一个AccountUser类 继承Account.这样它就会从父类上继承一些信息 这里只需要定义username和address就可以了 .然后生成 ...

  6. 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用

    这里的userSex是实体类里面的属性名,而不是数据库内的字段名称 一个老王改成性别女,为了区分一下 增加sex字段的查询 where标签 用上where和刚才的执行效果是一样的 where标签使我们 ...

  7. 系统分析与设计HW7

    XX 建模练习 要求: 练习文档编写 选择一个你喜欢的 移动App 或 其中某业务 参考 Asg_RH 文档格式 编写软件描述 文档要包含一个业务的完整过程 建模要求包括(用例图.XX业务或用例的活动 ...

  8. Python中的Django框架中prefetch_related()函数对数据库查询的优化

    实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  9. 2018.03.30 abap屏幕标签保存之前执行过的状态

    REPORT ZZJX_TEST09. *&---------------------------------------------------------------------* TAB ...

  10. Oracle 启用登录终端超时锁定功能

    远程连接oracle 会出现超时连接断开的问题,所以需要修改oracle配置. 修改超时时间10分钟 ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 查询修改后的超 ...