我以创建一台云主机的整体思路来贯彻每个组件的增、删、改、查。因此,创建一台虚拟机需要有flavor、image、neutron、secgroup、service、keypair、floatingip。

1.flavor:
$ nova flavor-list         #列出所有云主机类型
$ nova flavor-show 00fc2b8e-d5d7-4629-a9fb-04709193b979(flavorID)  #某一个云主机类型的详情
$ nova flavor-create --is-public true FLAVOR_NAME FLAVOR_ID RAM_IN_MB ROOT_DISK_IN_GB NUMBER_OF_VCPUS  #自定义flavor(云主机类型)      
eg:nova flavor-create --is-public false anliu02 102 2048 20 2 
$ openstack flavor set     #修改云主机类型
$ nova flavor-delete flavorID      #删除云主机类型          
123456
2.image:
$ openstack image list        #列出所有镜像
$ glance image-list    #列出所有镜像
$ openstack image create --name 镜像名 --container-format bare --disk-format qcow2/raw(默认)          #创建镜像
$ openstack image delete 镜像名/ID    #删除镜像
$ openstack image set test01 --disk-format raw #修改镜像属性
12345
3.neutron:

四个条件:网络、子网、路由、浮动ip

$ openstack network list   #列出所有网络 
$ neutron net-list   #列出当前租户所有的网络(这种查询的命令马上被废除了,以后主要使用openstack network list)
$ neutron net-show NET_ID     #查看网络的详细信息
$ neutron net-create test     #创建一个网络(vlan/flat)
1234
$ neutron subnet-list    #列出所有子网
$ neutron subnet-create test 12.12.12.0/24 --name test --dns-nameserver 8.8.4.4 --gateway 12.12.12.1    #创建子网
12
$ neutron router-list    #查看路由
$ neutron router-interface-delete 路由id 子网id   #从路由上解绑子网
$ neutron router-interface-add 路由id 子网id   #从路由上绑定子网
$ neutron router-create test   #创建一个路由
$ neutron router-interface-add test(路由) test(子网)   #路由绑定子网     neutron router-port-list test   #查看端口
$ neutron router-gateway-set test provider    #路由绑定公共网络
123456
$ neutron floatingip-list   #列出浮动ip
$ neutron floatingip-create net_name(现有的,存在的,真实的网络)   #创建浮动ip
$ neutron floatingip-delete   net_name(现有的,存在的,真实的网络)  #删除浮动ip
$ neutron floatingip-associate   #映射:在浮动IP和固定IP之间创建一个映射。
$ neutron floatingip-disassociate   #取消映射
12345
4.secgroup:
$ openstack security group list   #安全组列表
$ openstack security group create name      #创建安全组
$ openstack security group delete name      #删除安全组
$ openstack  security group rule list    #安全组规则列表
$ openstack security group rule create name tcp 22 22 0.0.0.0/0   #添加安全组规则
$ openstack security group rule delete name     #删除安全组规则
$ openstack  security group rule show 43ca8e73-6bc9-4cdf-8700-aef0b5a7191f(rule_id) #某规则详情
1234567
$ openstack security group list   #安全组列表
$ openstack security group create name      #创建安全组
$ openstack security group delete name      #删除安全组
$ openstack  security group rule list    #安全组规则列表
$ openstack security group rule create name tcp 22 22 0.0.0.0/0   #添加安全组规则
$ openstack security group rule delete name     #删除安全组规则
$ openstack  security group rule show 43ca8e73-6bc9-4cdf-8700-aef0b5a7191f(rule_id) #某规则详情
1234567
5.service:
$ nova service-list   #列出服务列表
$ nova service-delete service_id   #删除对应service
$ nova service-enable service_id  #启用对应服务
$ nova service-disable service_id  #禁用对应服务
$ nova service-force-down service_id  #强制关闭对应服务
12345
6.keypair:
$ nova keypair-list   #密钥列表
$ nova keypair-add --pub-key ~/.ssh/id_rsa.pub mykey(keypair_name)   #创建密钥
$ nova  keypair-delete mykey(keypair_name)      #删除密钥
$ nova  keypair-show mykey(keypair_name)    #某密钥详情
1234

有了这些需求,那我们就能来创建一台云主机了。

$ nova boot --flavor xxx --image xxx --nic net-id=xxx --security-group xxx --availability-zone (nova service-list:Host)  --key-name (nova keypair-list:name)  虚拟机名字
1

之后,你是不是应该看看创建好了没有?以及该云主机的详细信息?

$ nova list  #云主机列表
$ nova show Name/ID  #某云主机详情
12

此时,如果你想对云主机进行一些操作,该怎么办呢?

$ nova list #查看云主机
$ nova list --all-tenants  #列出所有租户的云主机
$ nova stop [vm-name]或[vm-id]  #关闭云主机
$ nova start [vm-name]或[vm-id]  #启动云主机
$ nova suspend [vm-name]或[vm-id]  #暂停云主机
$ nova resume [vm-name]或[vm-id]  #启动暂停的云主机
$ nova delete [vm-name]或[vm-id]  #删除云主机
$ nova  reset-state --active  40307531-7440-4beb-81de-b15e3c1ba850(该云主机ID)  #重置云主机状态
12345678

接着,就是你的云主机如果坏了,或者部署服务到了必须重新部署的阶段,怎么办呢?那就要用到snapshot(快照)。

$ openstack snapshot list    #列出现有快照列表
$ cinder snapshot-list(优选)   #列出现有快照列表
$ cinder cgsnapshot-create   #创建快照组
$ cinder snapshot-create       #创建快照
$ openstack snapshot create(前提是有volume)     #创建快照
12345

可以看到,创建快照你得先有足够的volume。

$ cinder type-list   #查看volume类型
$ cinder type-create lvm   #创建volume类型
$ cinder create --volume-type xxx  --display-name VOLNAME SIZE(SIZE的单位为GB)#创建存储卷(必须加volume类型)
$ cinder create --name test --image-id IMAGE_ID SIZE_IN_GB    #创建基于镜像的块设备
1234

最后,就是大前提下,你需要有用户身份管理。

• 用户User
• 租户Tenant
• 角色Role

$ openstack domain list    #查看域
$ openstack project list    #查看项目(K版本以前,叫租户(tenant)keystone tenant-list)
$ nova quota-show 租户ID    显示用户或者租户的配额情况
$ nova quota-update --ram 4096 --cores 5 --instances 5 项目ID
$ openstack user list(找出userID) #查看用户列表
$ openstack user show userID   #查看用户详细信息
$ openstack user set userID    #修改用户信息
$ openstack user password    #修改用户密码
$ openstack user create    #用户创建
$ openstack user delete    #删除用户
$ openstack group create    #创建用户组
$ openstack group delete    #删除用户组
$ openstack role create name  #创建角色
$ openstack role delete name  #删除角色
$ openstack role show name #某角色详细信息
$ openstack role set  #修改角色信息
12345678910111213141516
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐