OpenStack——云平台使用

时间:2024-03-05 10:11:00

一、如何创建云主机

使用双节点部署,控制节点(controller):192.168.16.10,计算节点(compute):192.168.16.20

(一)、创建镜像

1、在控制节点中找到qcow2镜像

[root@controller ~]# cd /opt/iaas/images/
[root@controller images]# ls
CentOS_6.5_x86_64_XD.qcow2 CentOS_7.2_x86_64_XD.qcow2 MySQL_5.6_XD.qcow2

2、通过glance命令,将qcow2镜像上传到平台

[root@controller images]# source /etc/keystone/admin-openrc.sh
[root@controller images]# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2

(二)、创建网络

打开浏览器,访问http://192.168.16.10/dashboard地址,域:demo,用户名:admin,密码:000000。

1、创建外部网络
选择菜单栏:项目 -> 网络 -> 网络。单击“创建网络”,来创建虚拟机网络。

创建网络名称为net-gre,配置子网名称为net-subnet,网络地址为192.168.20.0/24,网关为192.168.20.2。

再配置DHCP地址池,激活DHCP,配置DNS为114.114.114.114。点击“已创建”创建网络。

选择菜单栏:管理员 -> 系统 -> 网络。对已创建的net-gre网络,点击 “编辑网络”,在弹框中勾选“外部网络”。

2、创建内部网络
选择菜单栏:项目 -> 网络 -> 网络。单击“创建网络”,来创建虚拟机网络。

创建网络名称为int-gre,配置子网名称为int-subnet,网络地址为10.10.0.0/24,网关为10.10.0.1。

配置DHCP地址池,激活DHCP。点击“已创建”创建网络。

(三)、创建路由

1、创建路由
选择菜单栏:项目 -> 网络 -> 路由。单击“新建路由”,来创建路由。

创建路由名称为route,外部网络选择“net-gre”。点击“新建路由”创建路由。

2、添加内部网络端口
单击新建的路由名称,选择“接口”标签。点击“增加接口”按钮。

在弹框中,选择“int-gre”内部网络,再点击“提交”。

(四)、管理安全组

1、管理default默认安全组
选择菜单栏:项目 -> 计算 -> 访问&安全。单击default安全组“管理规则”按钮。

2、添加放行策略
点击“添加规则”,选择“所有ICMP协议”,单击“添加”按钮;选择“所有TCP协议”,单击“添加”按钮;选择“所有UDP协议”,单击“添加”按钮。

(五)、创建云主机

1、创建云主机
选择菜单栏:项目 -> 计算 -> 云主机。单击“创建云主机”按钮。

云主机名称为:test,数量为:1。选择centos7.2镜像;选择m1.small资源类型;选择int-gre网络。然后单击“启动实例”按钮创建实例。

2、绑定浮动IP
在主机下拉框中选择“绑定浮动IP”菜单命令。

在弹框中点击“+”分配一个地址,单击“分配IP”按钮。点击“关联”按钮,关联浮动IP地址。

(六)、连接云主机

1、测试连通性
创建完成后,可看到创建的云主机状态为“运行”。打开CMD窗口,通过ping命令测试连通云主机。

2、连接云主机
使用secureCRT工具,连接云主机,用户名:root,密码:000000。


二、Keystone服务操作

Keystone是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服务目录(指引路径)、以及基于用户角色的访问控制。

(一)、keystone运维命令

1、环境配置
[root@controller ~]# source /etc/keystone/admin-openrc.sh

2、创建用户
语法:openstack user create --password 用户的密码 --email 邮箱 --domain demo 用户名
[root@controller ~]# openstack user create --password 000000 --email wzg@example.com --domain demo wzg

3、创建项目
语法:openstack project create --domain demo 项目名
[root@controller ~]# openstack project create --domain demo acme

4、创建角色
语法:openstack role create 角色名
[root@controller ~]# openstack role create compute-user

5、绑定用户和项目权限
语法:openstack role add --user 用户名 --project 项目名 角色名
[root@controller ~]# openstack role add --user wzg --project acme compute-user

(二)、keystone查询命令

1、查询用户列表
[root@controller ~]# openstack user list

2、查询wzg用户的详细信息
[root@controller ~]# openstack user show wzg

3、查询项目列表
[root@controller ~]# openstack project list

4、查询acme项目的详情信息
[root@controller ~]# openstack project show acme

5、查询角色列表
[root@controller ~]# openstack role list

6、查询compute-user角色的详细信息
[root@controller ~]# openstack role show compute-user

7、查看平台所有服务所使用的端点地址
[root@controller ~]# openstack endpoint list


三、Neutron服务操作

Neutron是一个用python写的分布式软件项目,用来实现OpenStack中的网络服务。

(一)、网络管理

1、查看网络列表
[root@controller ~]# neutron net-list

2、创建外部网络
语法:neutron net-create --shared --router:external=true --provider:network_type 网络类型 外网名称
[root@controller ~]# neutron net-create --shared --router:external=true --provider:network_type gre net-gre

3、创建内部网络
语法:neutron net-create --shared --provider:network_type 网络类型 内网名称
[root@controller ~]# neutron net-create --shared --provider:network_type gre int-gre

4、查看网络详情信息
[root@controller ~]# neutron net-show int-gre

5、更新网络
语法:penstack network set 网络名称 --name 新网络名称 --disable --no-share
[root@controller ~]# openstack network set nett-gre --name net-gre01 --disable --no-share

6、删除网络
[root@controller ~]# neutron net-delete int-gre

(二)、子网管理

1、查看子网列表
[root@controller ~]# neutron subnet-list

2、创建外网子网
语法:neutron subnet-create 外网名称 外网网段 --name 外网子网名称 --gateway 网关地址 --allocation-pool start=开始地址,end=结束地址 --enable-dhcp --dns-nameserver 8.8.8.8
[root@controller ~]# neutron subnet-create net-gre 192.168.20.0/24 --name net-subnet01 --gateway 192.168.20.2 --allocation-pool start=192.168.20.101,end=192.168.20.200 --enable-dhcp --dns-nameserver 8.8.8.8

3、创建内网子网
语法:neutron subnet-create 内网名称 内网网段 --name 内网子网名称 --gateway 网关地址 --allocation-pool start=开始地址,end=结束地址 --enable-dhcp
[root@controller ~]# neutron subnet-create int-gre 10.10.1.0/24 --name int-subnet01 --gateway 10.10.1.2 --allocation-pool start=10.10.1.101,end=10.10.1.200 --enable-dhcp

4、查看子网详细信息
[root@controller ~]# neutron subnet-show net-subnet01

5、修改子网
语法:neutron subnet-update 子网名称 --name 新子网名称 --no-gateway(不加网关) --allocation-pool start=开始地址,end=结束地址
[root@controller ~]# neutron subnet-update net-subnet01 --name net-subnet-test --no-gateway --allocation-pool start=192.168.20.101,end=192.168.20.200

6、删除子网
[root@controller ~]# neutron subnet-delete int-subnet01

(三)、路由管理

1、查看路由列表
[root@controller ~]# neutron router-list

2、创建路由
语法:neutron router-create 路由名称
[root@controller ~]# neutron router-create router

3、查看路由详情信息
[root@controller ~]# neutron router-show router

4、删除路由
[root@controller ~]# neutron router-delete router

5、添加外部网关
语法:neutron router-gateway-set 路由名称 外网名称(用neutron net-list查看)
[root@controller ~]# neutron router-gateway-set router net-gre

6、删除外部网关
[root@controller ~]# neutron router-gateway-clear router

7、查看路由端口信息列表
[root@controller ~]# neutron router-port-list router

8、添加内部接口
语法:neutron router-interface-add 路由名称 内网名称(用neutron int-list查看)
[root@controller ~]# neutron router-interface-add router int-subnet01

9、删除内部接口
语法:neutron router-interface-delete 路由名称 subnet=内网名称
[root@controller ~]# neutron router-interface-delete router subnet=int-subnet

(四)、端口管理

1、查看端口列表
[root@controller ~]# neutron port-list

2、创建端口
语法:neutron port-create 内网名称 --name 端口名称
[root@controller ~]# neutron port-create int-gre --name test-port

3、修改端口
语法:neutron port-update 端口名称 --name 新端口名称 --security-group 安全组
[root@controller ~]# neutron port-update test-port --name test-port-8080 --security-group 54c9ccb7-7f00-4485-898f-e4bbebafa73b

4、查看端口详情信息
语法:neutron port-show 端口id
[root@controller ~]# neutron port-show 1b46a0d6-0df6-4f96-b3a3-d47aae6ed589

5、删除端口
[root@controller ~]# neutron port-delete test-port

四、Nova组建操作

Nova是Openstack云中的计算组织控制器;管理OpenStack云中实例的生命周期的所有活动;是管理计算资源、网络认证所需的可扩展性平台。

(一)、安全组操作:

1、查看安全组列表
[root@controller ~]# nova secgroup-list

2、创建安全组
语法:nova secgroup-create 安全组名称 \'描述信息\'
[root@controller ~]# nova secgroup-create wzg \'Most great security group\'

3、更新安全组
语法:nova secgroup-update ID号 新名称 \'新描述信息\'
[root@controller ~]# nova secgroup-update 218faa36-c250-40d5-9775-534049e5771a wzg01 \'One of the most great security group\'

4、删除安全组
[root@controller ~]# nova secgroup-delete wzg

5、查看安全组规则详情信息
[root@controller ~]# nova secgroup-list-rules wzg

6、添加安全组规则

[root@controller ~]# nova secgroup-add-rule wzg icmp -1 -1 0.0.0.0/0
[root@controller ~]# nova secgroup-add-rule wzg udp 1 65535 0.0.0.0/0
[root@controller ~]# nova secgroup-add-rule wzg tcp 1 65535 0.0.0.0/0

7、删除安全组规则
[root@controller ~]# nova secgroup-delete-rule wzg icmp -1 -1 0.0.0.0/0

(二)、云主机类型操作

1、查看云主机类型列表
[root@controller ~]# nova flavor-list

2、添加云主机类型
语法:nova flavor-create 类型名称 ID号 1024 10 1
[root@controller ~]# nova flavor-create m1.wzg 6 1024 10 1

点击查看详情
[root@controller ~]# nova flavor-create m1.wzg 6 1024 10 1
+----+--------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name   | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+--------+-----------+------+-----------+------+-------+-------------+-----------+
| 6  | m1.wzg | 1024      | 10   | 0         |      | 1     | 1.0         | True      |
+----+--------+-----------+------+-----------+------+-------+-------------+-----------+

3、查看云主机类型详情信息
[root@controller ~]# nova flavor-show m1.wzg

4、删除云主机类型
[root@controller ~]# nova flavor-delete m1.wzg

(三)、云主机实例操作

1、查看实例列表
[root@controller ~]# nova list

2、创建实例
语法:nova boot --image --availability-zone nova --flavor --security-groups --nic <net-id=net-uuid>
[root@controller ~]# nova boot --image centos7.2 --availability-zone nova --flavor m1.wzg --security-groups wzg --nic net-id=64306052-bcec-4209-ac4c-45b9d2de4dde wzg-server

注意:需要先查找出:

1)查看镜像
[root@controller ~]# glance image-list
2)查看规格(云主机类型)
[root@controller ~]# nova flavor-list
3)查看安全组
[root@controller ~]# nova secgroup-list
4)查看可用的网络
[root@controller ~]# neutron net-list

3、查看实例详情信息
[root@controller ~]# nova show wzg-server

4、启动实例
[root@controller ~]# nova start wzg-server

5、停止实例
[root@controller ~]# nova stop wzg-server

6、重启实例
[root@controller ~]# nova reboot wzg-server

7、挂起实例
[root@controller ~]# nova pause wzg-server

8、删除实例
[root@controller ~]# nova delete wzg-server


(四)、浮动IP

1、查看浮动IP列表
[root@controller nova]# nova floating-ip-list

2、创建浮动IP
语法:nova floating-ip-create 浮动IP地址池
[root@controller nova]# nova floating-ip-create net-gre

3、查看浮动IP地址池信息
[root@controller nova]# nova floating-ip-pool-list

4、查看浮动IP详细信息
语法:openstack ip floating show 浮动IP
[root@controller nova]# openstack ip floating show 192.168.100.4

5、关联浮动IP实例
语法:nova floating-ip-associate 云主机名称 浮动ip
[root@controller nova]# nova floating-ip-associate wzg-server 192.168.100.4

6、解除关联浮动IP实例
语法:nova floating-ip-disassociate 云主机名称 浮动ip
[root@controller nova]# nova floating-ip-disassociate wzg-server 192.168.100.4

7、删除浮动IP
[root@controller nova]# nova floating-ip-delete 192.168.100.4

(五)、密钥管理

1、查看密钥列表
[root@controller ~]# nova keypair-list

2、创建密钥
语法:nova keypair-add 密钥名称 --key-type ssh
[root@controller ~]# nova keypair-add wzg --key-type ssh

3、查看密钥详情信息
[root@controller ~]# nova keypair-show wzg

4、删除密钥
[root@controller ~]# nova keypair-delete wzg

(六)、云主机卷挂载操作

1、查看所有挂载到云主机上的卷
语法:nova volume-attachments 云主机名
[root@controller cinder]# nova volume-attachments test

2、卷挂载到云主机
语法:nova volume-attach 云主机名 卷ID []
[root@controller cinder]# nova volume-attach test111 f594e936-05e2-4a8c-b4c9-b96bbe7e2c82 /dev/vdb

3、卷从云主机上卸载
语法:nova volume-detach 云主机名 卷ID
[root@controller ~]# nova volume-detach test f594e936-05e2-4a8c-b4c9-b96bbe7e2c82

五、Cinder组件

(一)、Volume管理

1、查看卷列表
[root@controller ~]# cinder list

2、创建卷
语法:cinder create [--name 卷名称, --volume-type 卷类型 --description 描述 --availability-zone nova] 卷大小(GB)
[root@controller ~]# cinder create --name test --description \'new volume\' --availability-zone nova 2

3、查看卷详情信息
[root@controller ~]# cinder show test

4、更新卷
4.1重命名
语法:cinder rename 旧名称 新名称
[root@controller ~]# cinder rename test test01

4.2修改状态
可修改的状态:"available", "error", "creating", "deleting", "in-use", "attaching", "detaching", "error_deleting" and "maintenance".
附加状态:"attached" , "detached" 默认状态为:None.

语法:cinder reset-state [--state 状态, --attach-status 附加状态, --reset-migration-status] 卷名称
[root@controller ~]# cinder reset-state --state deleting test

4.3修改类型

操作步骤:

#1)修改卷状态为available
#**注意:**修改类型时卷状态必须是available状态
[root@controller ~]# cinder reset-state --state available test

#2)查看卷类型,如果没有需要先创建
[root@controller ~]# cinder type-list
[root@controller ~]# cinder type-create lvm

#3)修改为对应的类型
#语法:cinder retype 卷名称 卷类型ID
[root@controller ~]# cinder retype test 5780bda0-0ac4-4f5a-a8c4-807980c28aaa

5、扩容
语法:cinder extend 卷名称 扩容大小
[root@controller ~]# cinder extend test 5

6、卷删除
[root@controller ~]# cinder delete test

(二)、Type管理

1、查看类型列表
[root@controller ~]# cinder type-list

2、创建类型
语法:cinder type-create [--description 描述信息, --is-public ] 类型名称
[root@controller ~]# cinder type-create lvm

3、查看类型详情信息
[root@controller ~]# type-show lvm

4、修改类型
语法:cinder type-update [--name 新名称,--description 描述信息,--is-public ] 类型ID
[root@controller ~]# cinder type-update --name ssd --description \'best of all\' b16ab5aa-f9d2-4402-89a8-1a72e9c51914

5、删除类型
语法:cinder type-delete 类型ID
[root@controller ~]# cinder type-delete ac57dcb7-d157-419f-bd63-3ea0eb6ff940

卷挂载操作步骤
1、卷创建
[root@controller ~]# cinder create --name test --description \'new volume\' --availability-zone nova 2

2、修改卷状态为available
[root@controller ~]# cinder reset-state --state available test

3、卷列表查看
[root@controller ~]# cinder list

4、卷挂载到云主机
[root@controller cinder]# nova volume-attach wzg-server f594e936-05e2-4a8c-b4c9-b96bbe7e2c82 /dev/vdb

5、查看所有挂载到云主机上的卷
[root@controller cinder]# nova  volume-attachments wzg-server

声明:未经许可,不得转载