以下内容来自OpenStack官方文档。
在命令行创建虚拟机的命令如下:
openstack server create
(--image <image> | --image-property <key=value> | --volume <volume>)
--flavor <flavor>
[--security-group <security-group>]
[--key-name <key-name>]
[--property <key=value>]
[--file <dest-filename=source-filename>]
[--user-data <user-data>]
[--availability-zone <zone-name>]
[--block-device-mapping <dev-name=mapping>]
[--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid,auto,none>]
[--network <network>]
[--port <port>]
[--hint <key=value>]
[--config-drive <config-drive-volume>|True]
[--min <count>]
[--max <count>]
[--wait]
<server-name>
--image
<image>:指定通过镜像文件创建虚拟机的启动盘,image可以是名字或id号。
--image-property
<key=value>:指定image的属性。
--volume <volume>:指定通过volume创建虚拟机的启动盘。如果设置了volume选项,系统将自动创建一个块设备映射(
block device mapping),在许多hypervisor(
例如libvirt/kvm)上,这个设备为vda,不要再使用
–block-device-mapping选项为这volume创建块设备映射。
--flavor
<flavor>:指定待创建虚拟机的配置:vCPU的个数、内存容量、磁盘容量,flavor可以是名字或id号。
--security-group <security-group>:设置待创建虚拟机的安全组,一个虚拟机可以属于多个安全组,如果要设置多个安全组,可以重复使用该选项,security-group可以是名字或id号。
--key-name
<key-name>:往待创建虚拟机中注入秘钥,可以通过key-name从系统中获取key-data。
--property
<key=value>:为待创建虚拟机设置属性,可以通过重复使用该选项设置多个属性,如
–property description=”My Server” 选项为服务器添加一个描述
--file <dest-filename=source-filename>:在虚拟机启动之前,把文件注入到image中,如
--file /root/.ssh/authorized_keys=special_authorized_keysfile 选项指定在创建虚拟机时,将虚拟机中的文件“/root/.ssh/authorized_keys”替换成文件“/root/.ssh/authorized_keys”
--user-data <user-data>:
当虚拟机启动时,用本地文件为虚拟机传递用户数据,如
--user-data cloudinit.file:用户数据文件cloudinit.file
--availability-zone
<zone-name>:为虚拟机选择一个可用的zone。
--block-device-mapping <dev-name=mapping>:为虚拟机创建一个块设备,块设备的映射格式为
<dev-name>=<id>:<type>:<size(GB)>:<delete-on-terminate> <dev-name>,<dev-name>为块设备的名称,如vdb, xvdc,<id>:为volume或snapshot的id号,<type>:指明是volume还是snapshot,如果不填,默认为volume,<size(GB)>为volume的大小,如果是从snapshot创建的,则需要指定,<delete-on-terminate>虚拟机终止运行时,是否删除这个块设备,默认是否。
--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid,auto,none>:为虚拟机创建一个网卡,可以通过重复使用该选项创建多个网卡,net-id和port-id两者只能选一个,net-id选项通过id号指定该网卡链接的网络,port-id选项通过id号指定网卡链接的port,
v4-fixed-ip:给网卡配置的IPv4地址,v6-fixed-ip:给网卡配置的IPv6地址,none:(v2.37)版本之后才支持,指定该网卡不链接任何网络,auto: (v2.37)版本之后才支持,系统自动为网卡分配一个网络。
--network <network>:为虚拟机创建一个网卡,并将其链接到一个网络,可以重复多次使用以创建多个网卡。
--port <port>:为虚拟机创建一个网卡,并将其链接到一个port,可以重复多次使用以创建多个网卡。
--hint
<key=value>:为虚拟机调度增加过滤条件(这个选项和下一个选项的解释来自网上的博文),如,
--hint group=group_id:
Server group 有两种policy:affinity 和anti-affinity。
affinity:表示尽量把vm都安排到一个host上面。如果不添加policy选项,默认使用affinity。
anti-affinity:表示尽量把vm安排到不同的host上面。
在创建云主机中加入--hint选项,就会将云主机加入相应的ServerGroup的member中,相同server group的成员按照相应的策略进行调度。
--config-drive <config-drive-volume>|True:
使用指定的卷作为配置驱动器,或“True”使用临时驱动器。
--min
<count>:创建的虚拟机的最小个数,默认为1。
--wait:一直等待,直到虚拟机创建结束。
server-name:指定待创建虚拟机的名字。
--max
<count>:创建虚拟机的最大个数,默认为1。