采用命令方式搞定openstack
先上传镜像(glance组件)到控制节点
读取admin的环境变量,就相当于以后你输入每个命令都可以调用这个关于admin用户的变量,也就相当于进了web界面登录了admin用户
创建镜像文件
glance image-create –name myimg –disk-format qcow2 –container-format bare –file /root/small.img –is-public yes –is-protected yes –progress
创建租户
keystone tenant-create –name cangshui.EDU
设置配额(调用的是nova组件,因为是计算资源分配)
nova quota-update –cores 10 –ram 25600 –instance 10 7c5d2df2337e4341baf5585a62071213
针对租户创建登录用户(调用keystone组件)
keystone user-create –name user1 –pass redhat –tenant 7c5d2df2337e4341baf5585a62071213
然后创建关于user1的环境变量,也就是做好使用user1登录的准备
需要编辑用户密码,以及所属的租户ID,以及keystone
cp keystonerc_admin keystonerc_user1
vim keystonerc_user1
source keystonerc_user1
创建公共网络-(调用neutron组件)
创建网络名称为MYpublic 开启外部网络 和共享 admin用户创建
然后给公网创建ip段,叫做Mypublic73
source keystonerc_admin
neutron net-create Mypublic –shared –router:external=True
neutron subnet-create –name Mypublic73 Mypublic 192.168.73.0/24
切换成用户,去创建私有网net1
然后给公网创建ip段,叫做net100
source keystonerc_user1
neutron net-create net1
neutron subnet-create –name net100 net1 192.168.100.0/24
创建路由器-(调用neutron组件)
创建名为router路由器,创建好后会显示路由ID,然后拿着ID去给路由添加网关
neutron router-create router
创建好了路由器,我要连谁呢?
先看一下我们现在有哪些网络
neutron net-list
把Mypublic网络f8ab (不是子网ID)设置给路由器6200 作为网关
neutron router-gateway-set 62009860-b714-4b2c-a9e8-02120ec67aa1 f8abc050-1625-4a35-b907-0ac333a76d15
然后将我们创建的net1的子网98fe给路由器添加为接口
创建安全组-(调用neutron组件)
创建名为rule1 描述为中文 的安全组
neutron security-group-create rule1 –description 我是一个安全组
创建开放 进入 22的规则
neutron security-group-rule-create –protocol tcp –port-range-min 22 –port-range-max 22 rule1
创建秘钥对(调用nova组件)
nova keypair-add mykey
复制出来保存为文件备用
创建浮动IP(调用neutron组件)
分配公网IP
neutron floatingip-create Mypublic
然后我们需要创建一个主机类型,使用admin身份去创建
先看一下有啥类型
nova flavor-list
创建一个web主机类型
nova flavor-create –is-public true web 999 1024 20 1
切回user身份,去启动机器
注意,后面这个ID是net1的网络ID,绝对不能把连了外部网络的网络ID填在后面,启动不了的
nova boot –flavor web –image myimg –key-name mykey –security-group rule1 –nic net-id=33df8c1a-58f6-4b59-9561-f2fa25a70e33 server1
绑定浮动IP(之前分配的),这样这台主机就创建完成了
nova add-floating-ip server1 192.168.73.3
xshell导入刚刚复制出来的密钥,cloud-user登陆成功