openstack基础架构
为什么要用 Openstack
kvm宿主机 2000台
查看每一个宿主机有多少台虚拟机?
查看每一个宿主机还剩多少资源?
查看每一台宿主机,每一个虚拟机的ip地址?
excel 资产管理 cmdb
kvm管理平台,数据库工具 Openstack
信息:宿主机,总配置,剩余的总配置
虚拟机的信息,配置信息,ip地址,操作系统
带计费功能的kvm管理平台,openstack ceilometer计费 ecs IAAS层
自动化管理kvm宿主机,云主机定制化操作
服务器, 20核心 1T内存 96T
资源浪费,linux环境特别乱,,kvm虚拟机
使用脚本自动化部署openstack M版
部署openstack
克隆一台openstack模板机:
all-in-one
4G内存,开启虚拟化,挂载centos7.6的光盘保证磁盘启动成功
修改网卡配置文件 IP 为10.0.0.11
上传选中的环境软件
解压openstack_rpm.tar.gz的压缩包
执行脚本
脚本执行完成后访问提示的网站
域为 default
用户名为admin
密码为ADMIN_PASS创建一台实例
启动实例
可以上网
创建项目
测试是否可以连接
连接成功
添加规则
手动添加镜像
增加一个计算节点
按上面的添加步骤添加一台IP为10.0.0.12的主机
上传需要的文件和压缩包
解压到/opt/下
修改脚本文件
执行脚本
维护openstack平台的考虑因素
#1 安装部署
#2 上传镜像
centos7
centos6
ubuntu
debian
windows server R2
中国家科技大学的源
http://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/
3 给开发开通账户,跳转默认资源配额,脚本创建用户
shell脚本
4.增加计算节点
a.给物理服务器装系统,cobbler无人安装操作系统
b.ansible批量操作
c.测试
5.监控,高可用
zabbix
mysql高可用
rabbitmq高可用(消息队列)
OpenStack常用命令手册
主机常用命令
查询类
网络接口查询
查询网络配置 cat /etc/sysconfig/network-scripts/ifcfg-ens160
1
主机ip信息查询
查看主机网卡 ifconfig
查看主机名 cat /etc/hostname
查看主机名对应的IP信息 cat /etc/hosts
12345
编辑类
网络接口编辑
编辑网络配置 vim /etc/sysconfig/network-scripts/ifcfg-ens160
1
主机ip信息编辑
查看主机名对应的IP信息 vim /etc/hosts
1
认证服务常用命令
查询类
Apache http服务状态查询
命令语句 systemctl status httpd.service
1
Apache http 服务日志查询
命令语句 cd /etc/httpd/logs tail 文件名
选择日志文件
12
OpenStack域列表查询
命令语句 openstack domain list
注意 ID:每个域的唯一ID; Name:域的名称; Enabled:是否启用 Description:对域的描述。
12
OpenStack 服务列表查询
命令语句 openstack service list
注解: ID:服务唯一ID; Name:服务名称; Type:服务类型。
12
OpenStack 节点列表查询
命令语句 openstack endpoint list
注解:Service Name:服务名称; Service Type:服务类型; Interface:连接对象; URL:服务所在IP:端口号/版本号。
12
编辑类
创建域
命令语法 openstack domain create --description”对创建域的描述” 域名
创建域样例 openstack domain create --description “An Example Domain” example
12
创建服务
命令语法 openstack service create --name 服务名 --description “对服务的描述” 类型
创建服务样例 openstack service create --name glance --description “OpenStack Image” image
12
创建api端点
#命令语法
openstack endpoint create --region RegionOne 服务类型 连接对象 http://ip地址:端口号
#创建api
端点样例 openstack endpoint create --region RegionOne \
image public http://172.26.128.126:9292
openstack endpoint create --region RegionOne
image internal http://172.26.128.126:9292
openstack endpoint create --region RegionOne
image admin http://172.26.128.126:9292
#创建成功显示
注意:创建一个服务api控制端点需要创建三个连接对象,在这里为public、internal
、admin。
123456789101112131415
镜像服务常用命令
查询类
镜像服务查询
命令语句 systemctl status openstack-glance-api.service openstack-glance-registry.service
服务注解:
【1】openstack-glance-api.service glance-api是整个glance的入口,负责接受用户的各种请求
【2】openstack-glance-registry.service 一个glance的镜像仓库服务,负责和后台数据库进行交互。
1234
镜像服务列表查询
命令语句 openstack image list
注解
ID:镜像文件的唯一ID ;Name:自定义的镜像名称;Status:是否可用 active表示可用。
1234
查看某个具体的镜像
命令语句 openstack image show image_name
1
查看安全组
命令语句 openstack group list
1
编辑类
上传镜像
#命令语法
openstack image create “自定义镜像名” --file 镜像文件名称 --disk-format 格式化类型 --container-format bare --public
#样例
第一步:下载镜像文件
wget http://download.cirros-cloud.net/0.3.4/cirros-0.5.1-x86_64-disk.img
第二步:上传镜像文件
openstack image create “test1” --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public
注:格式化类型有raw、qcow2、vmdk等
123456789
增加安全组
命令语句 openstack group create group_name --description “”
1
计算服务常用命令
查询类
查看计算服务整体运行状态
#命令语法
systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service libvirtd.service openstack-nova-compute.service
#服务注解:
【1】openstack-nova-api.service nova-api是整个nova的入口,负责接受和响应终端用户有关虚拟机呵呵云硬盘盘的请求。
【2】openstack-nova-consoleauth.service 守护进程,由用户的console控制台代理提供授权tokens,两种模式nova-novncproxy和nova-xvpnvcproxy
【3】openstack-nova-scheduler.service 负责调度虚拟机在哪个物理宿主机上部署,接受消息队列指令并执行。
【4】openstack-nova-conductor.service nova-conductor模式,介于nova-computer和database之间,设计目的在于消除直接nova-computer直接访问云数据库。
【5】openstack-novncproxy.service 守护进程,提供了VNC连接访问正在运行的实例的代表,基于novnc客户浏览器
【6】openstack-nova-compute.service 两个职责,其一,是守护进程,负责基于各种虚拟化技术Hypervisior实现创建和终止虚拟机;其二,整合了计算资源CPU,存储,网络三类资源部署管理虚拟机,实现计算能力的交付。
12345678910
查询nova服务的命令
命令语句 openstack compute service list
1
查询nova组件的更新检查
命令语句 nova-status upgrade check
1
编辑类
维护编辑nova配置
命令语句 vim /etc/nova/nova.conf
1
网络服务常用命令
查询类
查看网络服务状态
#命令语句
systemctl status neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
#服务注解:
【1】neutron-server.service 用于接受apI请求创建网络,子网,路由器等。
neutron-linuxbridge-agent.service 负责三个任务,第一,报告状态;第二,处理RPC API;第三,实现neutron中定义的网络拓扑。
【2】neutron-dhcp-agent.service 用于创建和管理虚拟DHCP Server。
【3】neutron-metadata-agent.service neutron-metadata-agent运行在网络节点上,作为中间人是instance可以访问请求nova-api-metadata。
12345678
查询网络信息
命令语句 openstack network list
1
查看端口信息
命令语句 openstack port list
1
编辑类
维护编辑neutron配置
命令语法 vim /etc/neutron/neutron.conf
1
维护编辑ml2配置
命令语句 vim /etc/neutron/plugins/ml2/ml2_conf.ini
#解析:
openstack中使用的ml2模块是用来管理Layer2,Modular Layer 2 是一个可以同时管理多种Layer2技术的框架。
1234
维护编辑linuxbridge_agent配置
命令语句 vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
解析:linuxbridge_agent相当于物理机与dhcp server 之间的媒介
123
维护编辑dhcp_agent配置
命令语句 vim /etc/neutron/dhcp_agent.ini
#解析:
为各个租户网络提供DHCP服务,部署在网络节点上,各个插件也是使用这一个代理。
1234
维护编辑metadata_agent配置
命令语句 vim /etc/neutron/metadata_agent.ini
#解析:
Metadata_agent用于连接Nova Metadata服务和网络在namespace中的虚机的,其中,Nova Metadata存储了Metadata和 user data。
1234
块存储常用命令
查询类
查看块存储服务及依赖服务状态
命令语句 systemctl status openstack-cinder-volume.service target.service openstack-cinder-api.service openstack-cinder-scheduler.service
#服务注解
【1】openstack-cinder-volume.service 通过相关驱动程序架构直接与块存储服务进行交互。
【2】 openstack-cinder-api.service 进入Cinder的HTTP接口。
【3】openstack-cinder-scheduler.service 根据预定的策略选择合适的cinder-volume节点来处理用户的请求。
123456
查看块存储服务组件信息
命令语句 cinder service-list
1
编辑类
维护编辑cinder配置
命令语句 vim /etc/cinder/cinder.conf
1
虚拟机管理常用命令
查询类
查看opens tack环境主机列表
命令语句 openstack host list
1
查看某台主机资源情况
命令语句 openstack host show compute04
1
查看虚拟机列表
命令语句 openstack server list
1
查看虚拟机详情
命令语句 openstack server show 虚机名
#样例
openstack server show test06
1234
编辑类
创建虚拟机
启动一个虚拟机必要的信息是镜像,规格,网络。从前面学习到的image操作中找到镜像,从flavor操作中找到合适的规格,从网络操作中找到网络。
创建虚机步骤如下
#第一步:
命令语句 openstack network list
输出结果
注解:在输出结果中,需要记下你所构建的网络的“ID”(编号)。之后你创建虚机时,要用到这个编号。
#第二步:
命令语句 openstack flavor list
输出结果
注解:此命令用于查询你想创建的虚拟机的类型
#第三步:
命令语句 openstack image list
输出结果
注解:选择虚机的镜像文件
#第四步:
命令语句 openstack security group list
输出结果
注解:选择虚机所要使用的安全组的类型。
#第五步:
命令语句 openstack server create --image 镜像名 --flavor flavor规格名 –security-groups 安全组名 --nic net-id=网络ID 虚机名
样例:
openstack server create --image centos7.4-cloud --flavor vm-ram-01 --nic net-id=e7f65cb4-1896-46b9-ae09-2fa141f1757c test06
输出结果
创建成功后,使用opensatck server list
123456789101112131415161718192021222324252627
虚拟机暂停
命令语句 openstack server pause 虚机名
样例 openstack server pause vm-szy-03
注解:可使用openstack server list 查看虚机状态
123
虚拟机启动
命令语句 openstack server unpause 虚机名
样例 openstack server unpause vm-szy-03
12
虚拟机重启
命令语句 openstack server reboot 虚机名
样例 openstack server reboot vm-szy-03
注意:
nova reboot是软重启虚拟机
nova reboot --hard 是硬重启虚拟机
nova reset-state 是重置虚拟机状态
1234567
虚拟机删除
命令语句 openstack server delete 虚机名
样例 openstack server delete vm-szy-03
12
项目、用户、角色管理
项目管理
查询类
项目列表查询
命令语句 openstack project list
ID:项目的唯一ID; Name:项目名称。
12
项目详情查询
命令语句 openstack project show 项目名
样例 openstack project show service
12
查询某一项目下的所有用户
命令语句 openstack user list --project=项目名
样例 openstack user list --projected=service
12
编辑类
创建项目
命令语法 openstack project create --domain 域名 --description”对创建项目的描述” 项目名
#创建项目样例
openstack project create --domain default --description "Service Project" service
1234
更新项目名称
命令语法 openstack project set ID/name --name project-new
样例 openstack project set demo –name test
12
删除项目
命令语法 openstack project delete project-name
样例 openstack project delete demo
12
用户管理
查询类
用户列表查询
命令语句 openstack user list
ID:用户的唯一ID; Name:用户名称。
12
查询用户详情
命令语法 opensatck user show 用户名
样例 openstack user show demo
12
查询某一用户与项目、角色的关系
命令语法 openstack role assignment list --user=用户名
样例 openstack role assignment list --user=nova
#注解:
使用openstack assignment list 查询处的role、user、project显示都为唯一ID值,可以配合openstack role/user/project list 来使用。
12345
编辑类
创建用户
命令语法 openstack user create --domain 域名 --password-prompt 用户名
#创建用户样例
openstack user create --domain default --password-prompt demo
User Password:123
Repeat User Password:123
123456
启用用户
命令语法 openstack user set user_name --enable
样例 openstack user set demo --enable
12
禁止用户
命令语法 openstack user set user_name --disable
样例 openstack user set demo --disable
12
更新用户名
命令语法 openstack user set user_name --name username_new
样例 openstack user set demo –name test02
12
删除用户
命令语法 openstack user delete user_name
样例 openstack user delete demo
12
角色管理
查询类
角色列表查询
命令语句 openstack role list
ID:角色的唯一ID; Name:角色的名称
12
角色详情查询
命令语法 opensatck role show 角色名
样例 openstack role show admin
12
编辑类
创建角色
命令语法 openstack role create 角色名
样例 openstack role create user
12
将项目和用户加入到角色中
命令语法 openstack role add --project 项目名 --user 用户名 角色名
样例 openstack role add --project hzab --user hq woker
12
将role移除项目和用户
命令语法 openstack role remove --user 用户名 --project 项目名 角色名
样例 Openstack role remove --user=hzab --project=admin hsjn