openstack虚拟机创建流程,openstack搭建过程
简述OpenStack创建云主机的步骤?
登录OpenStack控制台,进入“云主机”页面。
点击“创建云主机”按钮,进入云主机创建向导。
选择云主机所在的项目和数据中心(或区域)。
选择云主机的镜像(即操作系统)和规格(即 CPU 和内存的大小)。
选择云主机所在的网络,并为云主机分配一个名称和密码。
如果需要,可以为云主机配置一个公共 IP 地址或一个密钥对。
点击“创建云主机”按钮,开始创建云主机。
创建过程中,OpenStack 会自动分配资源并安装所选操作系统。创建完成后,你就可以通过 SSH 客户端登录云主机并使用它了。
注意:这只是创建云主机的简要流程。实际操作中,还有很多其他选项和设置可供选择,比如磁盘配置、安全组规则、自定义脚本等。
Openstack概述 、 部署安装环境 、 部署Openstack 、 Openstack操作基础
案例1:配置yum仓库
案例2:测试时间服务器
案例3:配置yum仓库
案例4:检查基础环境
案例5:部署Openstack
案例6:网络管理
案例7:登录openstack
1 案例1:配置yum仓库
1.1 问题
本案例要求配置基本环境:
配置三台虚拟机
2CPU,6G 内存,50G 硬盘
2CPU,4.5G 内存,100G 硬盘
配置静态IP ifcfg-eth0
openstack : 192.168.1.10
nova: 192.168.1.11, 192.168.1.12
配置主机名 /etc/hosts,能够相互 ping 通
配置 dns 服务器 /etc/resolv.conf
1.2 方案
此实验的整体方案需要三台机器,openstack作为主节点,nova01 和 nova02作为额外节点,真机做为DNS转发和NTP的服务器(这里不再在表-1中体现),提供域名解析和时间同步服务,具体情况如表-1所示:
表-1
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:准备三台虚拟机
[student@room9pc01 images]$base-vm openstack nova01 nova02
[student@room9pc01 images]$virsh start openstack
[student@room9pc01 images]$virsh start nova01
[student@room9pc01 images]$virsh start nova02
2)opensatck主机扩容为50G
[student@room9pc01 images]$ virsh blockresize--path /var/lib/libvirt/images/openstack.img--size 100G openstack
[student@room9pc01 images]$ virsh console openstack
[root@localhost~]#/usr/bin/growpart /dev/vda1
[root@localhost~]#/usr/sbin/xfs_growfs /
[root@localhost~]# df-h
Filesystem? ? ? Size? Used Avail Use%Mounted on
/dev/vda1? ? ? ? 50G? 914M? 50G2%/
3)nova01 和 nova02 主机扩容为100G(以nova01为例)
[student@room9pc01 images]$ virsh blockresize--path /var/lib/libvirt/images/nova01.img--size 50G nova01
重新定义'/var/lib/libvirt/images/nova01.img'块设备大小
[root@localhost~]#/usr/bin/growpart /dev/vda1
[root@localhost~]#/usr/sbin/xfs_growfs? /
[root@localhost~]# df-h
Filesystem? ? ? Size? Used Avail Use%Mounted on
/dev/vda1? ? ? 100G? 917M? 100G1%/
4)三台主机配置静态ip(以一台为例)
openstack:192.168.1.10
nova01: 192.168.1.11
nova02: 192.168.1.12
[root@localhost~]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
PERSISTENT_DHCLIENT="yes"
IPADDR=192.168.1.10
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
5)三台主机修改主机名,配置/etc/hosts,和/etc/resolv.conf文件(以一台为例)
[root@localhost~]# hostname openstack
[root@localhost~]# echo openstack/etc/hostname
[root@localhost~]#vim /etc/hosts
192.168.1.10openstack
192.168.1.11nova01
192.168.1.12nova02
[root@localhost~]#vim /etc/resolv.conf//去掉search开头的行
;generatedby /usr/sbin/dhclient-script
nameserver192.168.1.254
6)修改三台主机的内存(openstack6G,nova01 和nova02 4G)
[student@room9pc01~]$ virsh edit openstack
...
memory unit='KiB'6588282/memory
currentMemory unit='KiB'6588282/currentMemory
...
[student@room9pc01~]$ virsh edit nova01
...
memory unit='KiB'4588282/memory
currentMemory unit='KiB'4588282/currentMemory
...
[student@room9pc01~]$ virsh start? openstack
域 openstack 已开始
[student@room9pc01~]$ virsh start? nova01
域 nova01 已开始
[student@room9pc01~]$ virsh start? nova02
域 nova02 已开始
2 案例2:测试时间服务器
2.1 问题
本案例要求掌握时间服务的配置:
修改 openstack,nova01,nova02 的时间服务器
重启服务后验证配置
2.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:修改openstack,nova01 和 nova02 的时间服务器(以一台为例)
[root@openstack~]#vim /etc/chrony.conf
...
server192.168.1.254iburst
[root@openstack~]# systemctl restart chronyd
步骤二:验证
[root@openstack~]# chronyc sources-v
...
||||\
MSName/IP address? ? ? ? Stratum Poll Reach LastRx Last sample
===============================================================================
^*gateway36376-93ns[+903ns]+/-26ms
步骤三:两台虚拟机配置静态ip
注意:两台主机同样操作,改一下ip即可(以openstack.tedu.cn为例)
[root@localhost~]# echo openstack.tedu.cn/etc/hostname
[root@localhost~]# hostname openstack.tedu.cn
//另外一台主机改名为nova.tedu.cn,配置ip为1.20
[root@openstack~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.10"
PREFIX=24
GATEWAY=192.168.1.254
[root@openstack~]# systemctl restart network
3 案例3:配置yum仓库
3.1 问题
本案例要求配置yum仓库:
配置 yum 源,软件仓库一共 4 个
3.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:三台主机配置yum源(以一台主机为例,共10670个软件包)
[student@room9pc01~]$cd /linux-soft/04/openstack/
[student@room9pc01 openstack]$ ls
cirros.qcow2? RHEL7-extras.iso? RHEL7OSP-10.iso? small.qcow2
[student@room9pc01 openstack]$mkdir /var/ftp/RHEL7-extras
[student@room9pc01 openstack]$mkdir /var/ftp/RHEL7OSP-10
[student@room9pc01 openstack]$ mount RHEL7-extras.iso? /var/ftp/RHEL7-extras/
mount:/dev/loop1 写保护,将以只读方式挂载
[student@room9pc01 openstack]$ mount RHEL7OSP-10.iso /var/ftp/RHEL7OSP-10/
mount:/dev/loop2 写保护,将以只读方式挂载
[root@openstack~]#vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever-Base
baseurl=""
enabled=1
gpgcheck=1
[RHEL7-extras]
name=RHEL7-extras
baseurl=""
enabled=1
gpgcheck=0
[RHEL7OSP-package]
name=RHEL7OSP-package
baseurl=""
enabled=1
gpgcheck=0
[RHEL7OSP-devtools]
name=RHEL7OSP-devtools
baseurl=""
enabled=1
gpgcheck=0
[root@openstack~]#scp /etc/yum.repos.d/local.repo192.168.1.11:/etc/yum.repos.d/
root@192.168.1.11's password:
local.repo? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 490? 484.4KB/s? 00:00? ?
[root@openstack ~]# scp /etc/yum.repos.d/local.repo 192.168.1.12:/etc/yum.repos.d/
root@192.168.1.12's password:
local.repo
4 案例4:检查基础环境
4.1 问题
本案例要求准备基础环境,为安装openstack做准备:
安装额外的软件包
是否卸载firewalld 和 NetworkManager
检查配置主机网络参数(静态IP)
主机名必须能够相互 ping 通
检查配置主机yum源(4个,10670)
依赖软件包是否安装
检查NTP服务器是否可用
检查 /etc/resolv.conf 不能有 search 开头的行
4.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:检查基础环境
1)安装额外软件包(三台机器操作,这里以一台为例)
[root@openstack yum.repos.d]# yum install-y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
2)是否卸载firewalld 和 NetworkManager
[root@openstack~]# rpm-qa|grep NetworkManager*
[root@openstack~]# rpm-qa|grep firewalld*
3)检查配置主机网络参数
[root@openstack~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
PERSISTENT_DHCLIENT="yes"
IPADDR=192.168.1.10
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
4)验证主机名是否互通
[root@openstack~]# ping openstack
...
64bytes fromopenstack(192.168.1.10):icmp_seq=1ttl=255time=0.023ms
64bytes fromopenstack(192.168.1.10):icmp_seq=2ttl=255time=0.027ms
...
[root@openstack~]# ping nova01
PINGnova01(192.168.1.11)56(84)bytes of data.
64bytes fromnova01(192.168.1.11):icmp_seq=1ttl=255time=0.139ms
...
[root@openstack~]# ping nova02
PINGnova02(192.168.1.12)56(84)bytes of data.
64bytes fromnova02(192.168.1.12):icmp_seq=1ttl=255time=0.251ms
...
5)检查配置主机yum源
[root@openstack~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 源名称? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 状态
RHEL7-extras? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RHEL7-extras76
RHEL7OSP-devtools? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RHEL7OSP-devtools3
RHEL7OSP-package? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RHEL7OSP-package680
local_repo? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CentOS-7-Base9,911
repolist:10,670
6)检查时间同步是否可用
[root@openstack~]# chronyc? sources-v
210Numberof sources=1
....
||||\
MSName/IP address? ? ? ? Stratum Poll Reach LastRx Last sample
===============================================================================
^*gateway3737728+31us[+89us]+/-25ms
[root@openstack~]#
7)检查/etc/resolv.conf 不能有 search 开头的行
[root@openstack~]#cat /etc/resolv.conf
;generatedby /usr/sbin/dhclient-script
nameserver192.168.1.254
5 案例5:部署Openstack
5.1 问题
本案例要求通过packstack完成以下配置:
通过packstack部署Openstack
根据相关日志文件进行排错
5.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:安装packstack
[root@openstack~]# yum install-y openstack-packstack
[root@openstack~]# packstack--gen-answer-file answer.ini
//answer.ini与answer.txt是一样的,只是用vim打开answer.ini文件有颜色
Packstack changed given value? to requiredvalue /root/.ssh/id_rsa.pub
[root@openstack~]# vim answer.ini
42CONFIG_SWIFT_INSTALL=n
45CONFIG_CEILOMETER_INSTALL=n//计费相关模块
49CONFIG_AODH_INSTALL=n//计费相关模块
53CONFIG_GNOCCHI_INSTALL=n//计费相关模块
75CONFIG_NTP_SERVERS=192.168.1.254//时间服务器的地址
98CONFIG_COMPUTE_HOSTS=192.168.1.11
102CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11
333CONFIG_KEYSTONE_ADMIN_PW=a//修改管理员的密码
840CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan//驱动类型
876CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
//设置组播地址,最后一个随意不能为0和255,其他固定
910CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex//物理网桥的名称
921CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
//br-ex桥的名称与eth0连接,管理eth0,网桥与哪个物理网卡连接
1179CONFIG_PROVISION_DEMO=n//DEMO是否测试
[root@openstack~]# packstack--answer-file=answer.ini
Welcome to the Packstack setup utility
The installation log file is available at:/var/tmp/packstack/20190423-170603-b43g_i/openstack-setup.log
Installing:
Clean Up[DONE]
Discovering ip protocol version[DONE]
root@192.168.1.11's password:
root@192.168.1.10's password:
Setting up ssh keys
****Installation completed successfully******//出现这个为成功
6 案例6:网络管理
6.1 问题
本案例要求运用OVS完成以下配置:
查看外部OVS网桥及其端口
验证OVS配置
6.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:查看外部OVS网桥
1)查看br-ex网桥配置(br-ex为OVS网桥设备)
[root@openstack~]#cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.10"
PREFIX=24
GATEWAY=192.168.1.254
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge
2)查看eth0网卡配置(该网卡为OVS网桥的接口)
[root@openstack~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
3)验证OVS配置
[root@openstack~]# ovs-vsctl show
Bridge br-ex
Controller"tcp:127.0.0.1:6633"
is_connected:true
fail_mode:secure
Port br-ex
Interface br-ex
type:internal
Port phy-br-ex
Interface phy-br-ex
type:patch
options:{peer=int-br-ex}
Port"eth0"
Interface"eth0"
ovs_version:"2.5.0"
7 案例7:登录openstack
7.1 问题
本案例要求通过Horizon完成以下操作:
修改/etc/httpd/conf.d/15-horizon_vhost.conf 配置文件,使其可以成功登录openstack
7.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:浏览器访问openstack
1)浏览器访问
[root@openstack~]# firefox192.168.1.10//访问失败
2)需要改配置文件并重新加载
[root@openstack~]#
[root@openstack conf.d]# vi15-horizon_vhost.conf
35WSGIProcessGroup apache
36WSGIApplicationGroup%{GLOBAL}//添加这一行
[root@openstack conf.d]# apachectl? graceful//重新载入配置文件
3)浏览器访问,出现页面,如图-6所示:
图-6
3)查看用户名和密码
[root@openstack conf.d]# cd
[root@openstack~]# ls
answer.ini? keystonerc_admin//keystonerc_admin生成的文件,里面有用户名和密码
[root@openstack~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
exportOS_USERNAME=admin//用户名
exportOS_PASSWORD=a//密码
exportOS_AUTH_URL=
exportPS1='[\u@\h \W(keystone_admin)]\$ '
exportOS_TENANT_NAME=admin
exportOS_REGION_NAME=RegionOne
4)在火狐浏览器中输入用户名和密码,登录后页面如图-7所示:
图-7
安装openstack可能会出现的错误以及排错方法
1)ntp时间不同步,如图-2所示:
图-2
解决办法:查看ntp时间服务器,是否出现*号,若没有,查看配置文件,配置ntp服务器步骤在案例3,可以参考
[root@room9pc01~]# chronyc sources-v//出现*号代表NTP时间可用
^*120.25.115.20261762-753us[-7003us]+/-24ms
[root@openstack~]# chronyc sources-v
^*192.168.1.25439377504+50us[-20us]+/-24ms
[root@nova~]# chronyc sources-v
^*192.168.1.25439377159-202us[-226us]+/-24ms
2)网桥名称写错,如图-3所示:
图-3
解决办法:检查配置文件
[root@openstack~]# vim answer.ini
...
921CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
//br-ex桥的名称与eth0连接,管理eth0,网桥与哪个物理网卡连接
...
3)若/root/.ssh/id_rsa.pub,提示password,同样是配置文件没有写对,如图-4所示:
图-4
4)yum源没有配置正确,如图-5所示:
图-5
解决办法:检查yum是否为10853个软件包,查看是否是yum源没有配置正确,之后安装oprnstack-dashboard
5)出现Cannot allocate memory,如图-6所示:
图-6
解决办法:
内存不足,重新启动主机
6)出现/usr/bin/systemctl start openvswith ... falied,说明是ssse3指令集的错误,如图-7所示:
图-7
解决办法:编辑openstack的xml文件,在里面添加
cpu mode='host-passthrough'
/cpu
7)若出现 Could not prefetch... ‘openstack’。 如图-8所示:
图-8
配置文件里面有中文符号
9)访问openstack出错
图-9
没有修改Apache配置文件
4)创建名为myproject的项目
[root@openstack~]# source~/keystonerc_admin? //初始化环境变量
[root@openstack~(keystone_admin)]# openstack project create myproject
+-------------+----------------------------------+
|Field|Value|
+-------------+----------------------------------+
|description|None|
|enabled|True|
|id|f73949e2701346328faf5c1272414cd0|
|name|myproject|
+-------------+----------------------------------+
5)查看项目信息
[root@openstack~(keystone_admin)]# openstack project list
+----------------------------------+-----------+
|ID|Name|
+----------------------------------+-----------+
|3fd5bffd734543d39cf742492273a47f|services|
|7f0b43274a9f4e149357fc8393ff2c68|admin|
|f73949e2701346328faf5c1272414cd0|myproject|
+----------------------------------+-----------+
6)更新vcpu配额为30
[root@openstack~(keystone_admin)]# nova quota-update--cores30myproject
7)删除myproject
[root@openstack~(keystone_admin)]# openstack projectdeletemyproject

Openstack 虚机实例操作总结
Openstack作为常见的IAAS服务,其最核心的对象就是虚机实例,而Openstack下支持的虚机操作有很多种,有些是特别常见的虚机操作比如创建虚机、启动虚机、删除虚机等,而有些虚机操作则是针对特定场景下比如出现故障而提供的保护/恢复虚拟机资源的各种解决方案,下面先通过一张图总体了解一下Openstack的各种虚机操作及及其应用场景:
文章余下部分将借助上图中常规操作和故障操作这两大应用场景来对Openstack各种虚机实例的操作一一展开说明。
所谓常规操作,这里是指日常对Openstack虚机最基本的操作,且Openstack集群及虚机运行状态良好的情况下。
创建虚机,Openstack专业术语:启动虚机实例,根据已经定义好的主机类型、存储资源、网络资源等从无到有新建一个虚拟机。如果底层的虚拟化基于KVM,相当于先编辑一个虚机的 XML 文件然后进行 DEFINE 。
以上两种操作后的虚机实例,都可以通过其他Openstack的接口重新恢复(Pause-- Unpause,Suspend-- Resume)虚机,并且显然经过Pause操作的虚机实例恢复要快的多。
对应Openstack Resize操作,用来修改虚机实例的规格,当原始的主机类型(Flavor)无法满足其上运行的业务需求时,通过新的Flavor在当前宿主机或者新的宿主机上重新启动一个新的虚机,但是这个虚机的资源比如网络资源、OS版本等还是跟之前的虚机是一样的,只是扩展了CPU Core数目、内存和磁盘大小,提高了虚机性能。
对应Openstack Snapshot操作,用来作备份恢复的,将某个状态下的虚机导出image并上传至Glance管理,方便以后通过快照来恢复一个出现故障的虚机,另外Openstack快照跟传统意义的快照不是一个含义。
对应Openstack Lock操作,用来作资源保护,如果为防止误操作或者不想让某些人操作虚机实例可以执行此操作,当然可以通过Unlock操作来解除锁定。
首先解释一下,这里的故障操作不是指错误操作或者误操作,而是Openstack虚机实例或者其它组件出现故障时应对的措施或者操作。
冷迁移(Migrate)和热迁移(Live Migrate)最大的区别在于将虚机实例从一个计算节点迁移到另一个计算节点的过程中是不是做了虚机关闭的操作。
对应Openstack Shelve操作,用作释放暂不使用的虚机资源。
对于暂时不用的虚机如前文所述可以通过Pause/Suspend来暂停以节约成本,不过这两种操作下虚机实例需要的比如CPU、内存等资源宿主机仍然要维护,如果想从底层来释放这些资源可以执行Shelve操作,它的原理是释放虚机之前先会对虚机做快照并上传Glance,然后才从宿主机删除虚机,当然如果想恢复则可以执行Unshelve操作。
当虚机实例因为某个文件系统误删或者权限导致虚机实例无法正常开启时,可以执行Rescue操作来尝试恢复:选择一个虚机image来引导虚机正常起来,同时把之前的系统盘作为数据盘挂载到起来的虚机OS下,修复好之后使用Unrescue操作从原启动盘重新引导虚机。
对应Openstack Rebuild操作,当虚机实例损坏无法正常开启,而一般的修复操作比如Rescue不起作用,此时可以考虑在原先虚机实例的基础上利用虚机镜像或者快照进行Rebuild操作,它的原理替换原先虚机实例的镜像文件,同时保持虚机其他比如网络资源、其他分配属性不变而实现虚机正常开启。
上述的操作都是在宿主机ok的情况下进行的,如果虚机实例的宿主机直接挂掉该怎么办呢?还好有Evacuate操作,它能够在当前宿主机宕掉的情况,将其上的虚机实例迁移到其它正常的计算节点,不过它需要满足共享存储(比如后端采用NFS、CEPH等)。
以上基本上就是目前Openstack所支持的对虚机实例的所有操作,实际使用中需要结合具体的业务场景。
如何使用API创建OpenStack虚拟机
在安装时OpenStack会加载配置信息。有不同的虚拟机模板而且与在Amazon
EC2以及其他平台上看到的完全一样。这些配置是内存、vCPU、磁盘容量等的组合,定义了虚拟机的大小及容量。可以使用如下命令列出配置信息:
nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs |
RXTX_Factor | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0
| True | | 2 | m1.small | 2048 | 20 | 0 |
| 1 | 1.0 | True | | 3 | m1.medium | 4096 | 40
| 0 | | 2 | 1.0 | True | | 4 | m1.large
| 8192 | 80 | 0 | | 4 | 1.0 | True
| | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0
| True |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
我们使用代码创建一个OpenStack虚拟机,在源头进行修改。我对必须进行修改的部分进行了加粗显示: #!/usr/bin/env
python import time import os execfile('credentials.py') from
novaclient.client import Client try: credentials =
get_nova_credentials_v2() nova_client = Client(**credentials)
image = nova_client.images.find(name="cirros-0.3.3-x86_64")
flavor = nova_client.flavors.find(name="m1.tiny") net =
nova_client.networks.find(label="demo-net") nics = [{'net-id':
net.id}] instance = nova_client.servers.create(name="vm2",
image=image, flavor=flavor,
key_name="demo-key",nics=nics) print("Sleeping for 5s after
create command") time.sleep(5) print("List of VMs")
print(nova_client.servers.list()) finally: print("Execution
Completed") 以下内容取决于设置时使用了什么值: flavor =
nova_client.flavors.find(name="m1.tiny") net =
nova_client.networks.find(label="demo-net") key_name="demo-key"
现在你可以运行Python代码并查看是否创建了一个虚拟机。显然如果没有成功,那么必须回退到OpenStack安装过程以查看哪部分有问题。基于个人经验,可能要尝试几次才能成功,因为配置有很多部分构成。
openstack安装怎么创建虚拟机
1、由于openstack的各种服务都需要经过授权才能够使用,而在授权过程中会使用到OS_PROJECT_NAME,OS_USERNAME和ADMIN_PASSWORD三个openstack环境变量,devstack为我们提供了设置这三个变量的openrc脚本,因此只需devstack目录下运行openrc脚本即可完成这些配置。以下从openrc中截取的片段是默认的设置和运行openrc的方法:
我们可以在终端中执行source openrc admin admin配置这些变量。如下图:
此处WARNING的输出是正常的。
怎样在openstack中创建虚拟机
按照官网,创建外网和内网及其子网,创建路由,通过虚拟路由将内外网连接,在将虚拟机绑定内网IP,虚拟机即可上网。