HCIP云计算之openstack
文章目录
OpenStack概览
- 1.1 用户能够通过web界面、命令行或API接口配置。
- 1.2 虚拟化是OpenStack的底层技术实现手段之一。
1.3keystone 提供身份验证,认证与其他组件交互最多。horizon提供基于web的控制界面。glance镜像服务提供发现、注册和检索虚拟机镜像的功能。Nova,计算服务,调用其他服务。cinder块存储服务。swift对象存储服务,存储大量数据高效,安全。neutron 网络服务,二层交换,三层路由,负载均衡。heat编排服务为云应用程序编排OpenStack基础架构资源。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
1.lscpu 查看cpu,Socket(几个物理cpu),thread线程*core核数*socket=总线程数。 2.egrep -c "(svm|vmx)" /proc/cpuinfo 24 看svm和vmx 数,确定bios里面cpu虚拟化是否打开。 cat /proc/cpuinfo 看flags里面的vmx svm 3.systemctl status libivrtd (管理工具服务确认启动状态active(runnig)) vim /usr/lib/systemd/system/libvirtd.service 看启动这个服务要启动那些基础服务 vim /etc/fstab 准备挂载的文件 mount -l 已经挂载的文件 journalctl -nl 看日志 4.cd /etc/libvirt/ ls vim libvirt.conf cd qemu/ (模拟io设备运行在用户空间) ls vim guest07.xml (xml配置文件) 5.cd networks ls vim default.xml ps -ef | grep dnsm (dhcp dns ) netstat -ltpn | grep 59 搜索vnc 监听端口为59 开始的 监听地址设为0.0.0.0 6. file guest04.vol 看vol 是什么类型的文件,(vol 数据文件) 7.virt-sysprep -a rhe17.5.qcow2 模板 guestfish -a rhe17.5.qcow2 --network 8.rpm -qa | grep kvm 搜索一下装了那些软件包 systemctl enable libvirtd 9. 嵌套虚拟化,虚拟机里面装虚拟机, vim /etc/modprobe.d/kvm-nested.conf 打开嵌套虚拟化功能加如下: options kvm-intel nested=1 options kvm-intel enable_shadow_vmcs=1 options kvm-intel enable_apicv=1 options kvm-intel ept=1 modprobe -a kvm-intel 添加 modprobe -r kvm-intel 移除 有正在运行的虚假机,移除失败 history | grep sys cat /sys/module/kvm_intel/parameters/nested 10.openstack 部署方式:eg,puppet ,ansible systemctl restart vsftpd 启动 ftp服务 df -Th 看光盘是否挂载 yum install openstack-packstack 安装 rpm -qa | grep packstack 看包是否安装好 packstack --gen-answer-file=/tmp/1.txt 生产自动应答文件 vim /tmp.1.txt
快速搭建OpenStack实验环境流程
一、pc/服务器——>virtualBox/kvm——>openstack computer node 二、labs-master
- 打开修改lab-master\labs\osbash\wbatch\create_ubuntu_cluster_node(262行调整内存为2048,266行计算节点cpu调整为4,311行第二块磁盘容量调整为12800)
打开修改lab-smaster\labs\osbash\scripts\ubuntu\ apt_init (40行修改镜像下载地址为sudo sed -i ’s/us.archive.ubuntu.com/mirrors.huaweicloud.com/g’ /etc/apt/sources.list,)打开apt_pre-download.sh (为了防止下载超时导致下载失败,在第15行加一个循环语句
1 2 3 4 5 6 7 8 9 10 11 12
function apt_download { n=0 until [ $n -ge 5 ] do echo "apt_download: $*" &&sudo apt install -y --download-only "$@" && break n=$[$n+1] sleep 15 done } )
执行create_hostnet.bat 创建计算机节点与控制节点通信的hostonly网络,去virtualbox 主机网络管理器界面中验证。
打开修改create_base.bat (88行ubuntu对应版本,为了下载时间节省提前去下载执行第2. 修改的文件好ubuntu的iso放在img文件下)执行create_base.bat,在img文件夹下生成bas开头的Ubuntu iso 后期计算节点控制节点基于此iso。
执行第1. 步修改的create_ubuntu_cluster_node 文件,在img文件下伸出计算机节点computer1与控制节点control
OpenStack操作界面管理
- 2.1Horizon, 提供web界面,管理员admin账号登录与myuser功能区别。CLI时要先source。
2.2使用OpenStack Dashboard方式发放虚拟机实例cirros, 1. 镜像image2.admin下flavor规格3.project下networks4.project 下instance中选1.2.3.
实操
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
ssh -p 2230 osbash@127.0.0.1 osbash admin admin_user_secret myuser myuser_user_pass cirros gocubsgo *每次打开第一步*: cat admin-openrc.sh 查看 . admin-openrc.sh 导入用户环境变量定义文件就进入管理员视图了 cat demo-openrc.sh 查看 . demo-openrc.sh 导入用户环境变量定义文件就进入普通成员视图了 发放虚拟机: openstack image list openstack flavor list openstack server create --image cirros --flavor flavor_web cirros_cli 创建虚拟机 openstack server list 查看发放的虚拟机
OpenStack认证管理
- 3.2keystone对象模型,是公开的一组内部服务,内部服务以组合方式使用。Keystone对象模型中的-resource为domain(域)和其中project提供数据。-Assignment 提供角色和角色分配的数据。-Token提供服务的凭证,相当于身份证,-catalog服务提供用于查询端点的端点注册表,以便外部访问openstack服务。
- 3.3keystone 认证工作原理和流程,基于令牌(认证请求发送时添加一个X-auth-Token的http头,keystone检查http头中的token值, 并与数据库的令牌进行对比验证),基于外部认证,基于本地。基于令牌的UUID , PKI, PkIZ, fernet, 其中只有pki和pkiz支持本地认证和keystone负载小和存储与数据库和非对称加密。Uuid: 无需维护秘钥,负载较低/region较少。pki需要妥善保管私钥。Fernet: 周期性维护秘钥,负载较高,region较多。目前新版openstack都采用fernet令牌。RBAC: 基于角色的访问控制。1. 申请token, 用户user_a2. 创建项目,head中携带token, url中携带操作。3. 从token中解析出用户的权限信息,根据policy.json策略配置文件,判断权限是否满足操作要求。
发放token, 验证token, 通过policy.json实现权限控制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
项目 组 用户 角色 :一个用户可以在不同项目中担任不同的角色或者相同的角色 ,一个用户也可以同时在不同的组中。 1.openstack role create role_cli openstack role list 2.openstack user create --domain default --project admin --password-prompt user_cli openstack user list 3.openstack role add --project admin --user user_cli role_cli openstack role assignment list --name| grep role_cli 4.cp admin-openrc.sh user-openrc.sh vi user-openrc.sh . user-openrc.sh openstack project list 5.openstack group create --domain default group_cli openstack group list openstack group add user group_cli user_web_01 openstack group contains user group_cli user_web_01 openstack group remove user group_cli user_web_01 openstack group contains user group_cli user_web_01 6.openstack user set --disable user_cli openstack user show user_cli openstack user set --enable user_cli openstack user show user_cli openstack user delete user_cli openstack user list 7.openstack project create --domain default project_cli openstack project list openstack role add --project project_cli --user user_web_01 admin openstack role assignment list --name | grep user_web_01 8.项目配额操作: openstack quota show project_cli openstack quota show project_cli | egrep "instances|volumes|networks" openstack quota set --instances 20 --volumes 20 --networks 200 project_cli openstack quota show project_cli | egrep "instances|volumes|networks" 9.创建服务和端点(必须cli命令模式下才可创建) openstack service create --name swift --description "openstack object storage " object-store openstack service list openstack endpoint list openstack endpoint create --region Regionone swift public http://controller:8080/v1 openstack endpoint create --region Regionone swift admin http://controller:8080/v1 openstack endpoint create --region Regionone swift internal http://controller:8080/v1 |
OpenStack镜像管理
OpenStack计算管理
OpenStack存储管理
OpenStack网络管理
OpenStack编排管理
OpenStack故障处理
华为openstack增强商用解决方案
文章作者 周军
上次更新 2020-09-05