尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Linux学习22-openstack部署与使用

Linux学习22-openstack部署与使用 openstack云计算平台简介OpenStack是一款开源的云计算管理平台项目它允许企业或组织在自己的硬件基础设施上搭建和管理私有云或混合云环境提供类似公有云如AWS、Azure的弹性计算、存储和网络资源服务开源云计算操作系统OpenStack并非单一软件而是一系列开源项目的集合它像“云操作系统”一样将分散的物理服务器、存储设备和网络资源整合成一个统一的、可灵活调度的资源池基础设施即服务IaaS实现它主要提供IaaS层能力让用户可以通过Web界面、命令行或API来创建和管理虚拟机、云硬盘、虚拟网络等计算资源无需直接操作底层硬件环境与组OpenStack采用模块化设计各组件分工协作共同构建完整的云服务计算服务Nova负责虚拟机的生命周期管理支持多种虚拟化技术如KVM、VMware网络服务Neutron提供软件定义网络SDN功能管理虚拟网络、IP地址、防火墙和安全组存储服务包括块存储Cinder为虚拟机提供持久化磁盘和对象存储Swift用于存储海量非结构化数据身份认证Keystone统一管理用户身份、权限和服务目录保障平台安全镜像服务Glance存储和管理虚拟机模板镜像方便快速部署新实例仪表盘Horizon提供图形化Web管理界面降低使用门槛件准备部署环境配置新建centos虚拟机最低4G内存打开虚拟化引擎添加网络适配器禁用网络管理器修改网卡配置名字与设备名改为eth0以eth0和eth1做标识重启使服务生效查看成功添加网卡设置主机名添加解析下载chrony确保时间同步同样还有selinuxfirewalld都需要关闭启动服务验证open stack库下载openstack的mitaka版本解压到opt修改配置文件指定安装软件的路径升级所有软件包重启查看确认内核版本验证是否生效数据库下载依赖组件修改配置文件绑定到控制节点 IP允许其他节点远程连接使用 InnoDB 引擎OpenStack 各组件数据库的强制要求最大连接数设为 4096OpenStack 组件多连接数需求大utf8 字符集 确保数据存储不出现中文/特殊字符乱码启动服务执行 MariaDB 的安全初始化脚本选项全部选择Y需要记住自己设定的新密码进入mysql数据库已就绪消息队列下载消息队列rabbitmq启动服务添加用户用户名与密码相同给予open stack用户全部权限启动管理器插件消息队列就绪查看端口浏览器访问出现登录界面默认使用guest guest登录进入主页可以看到刚才创建的openstack用户缓存下载memcache分布式内存对象缓存系统启动服务缓存就绪查看端口发现为回环地址需要修改修改配置将option改为空则memcache将默认监听所有网卡重启服务查看端口成功keystone身份认证服务进入mysql新建数据库给予新用户keystone所有权限本地和远程连接密码与用户名相同下载keystone服务生成一个随机值在初始的配置中作为管理员的令牌修改keystone的配置文件这里填入刚才生成的令牌Keystone 刚装好时还没有任何用户需要用这个 token 作为钥匙完成第一次登录创建出第一个 admin 用户设定 Keystone连接keystone数据库keystone/keystone账号/密码主机名是 controller指定使用 Fernet 算法来生成和管理用户的 Token初始化身份认证服务的数据库进入mysql验证成功初始化Fernet keys出现fernet-keys配置 Apache HTTP 服务器修改 Apache Web 服务器的配置文件指定服务器名称新建文件指定Apache监听 5000 端口供外部和普通服务使用的 Public API和 35357 端口供管理员使用的 Admin API当有用户或其他 OpenStack 组件访问这两个端口时Apache 会把接收到的 HTTP 请求通过 WSGI 协议转交给后台的 Keystone 程序去处理直接粘贴以下文本Listen 5000Listen 35357VirtualHost *:5000WSGIDaemonProcess keystone-public processes5 threads1 userkeystone groupkeystone display-name%{GROUP}WSGIProcessGroup keystone-publicWSGIScriptAlias / /usr/bin/keystone-wsgi-publicWSGIApplicationGroup %{GLOBAL}WSGIPassAuthorization OnErrorLogFormat %{cu}t %MErrorLog /var/log/httpd/keystone-error.logCustomLog /var/log/httpd/keystone-access.log combinedDirectory /usr/binRequire all granted/Directory/VirtualHostVirtualHost *:35357WSGIDaemonProcess keystone-admin processes5 threads1 userkeystone groupkeystone display-name%{GROUP}WSGIProcessGroup keystone-adminWSGIScriptAlias / /usr/bin/keystone-wsgi-adminWSGIApplicationGroup %{GLOBAL}WSGIPassAuthorization OnErrorLogFormat %{cu}t %MErrorLog /var/log/httpd/keystone-error.logCustomLog /var/log/httpd/keystone-access.log combinedDirectory /usr/binRequire all granted/Directory/VirtualHost启动apache服务查看端口验证创建服务实体和API端点使用刚才生成的token指定命令行连接 Keystone 的 Admin API35357端口走 v3 版本明确使用 Identity API v3 协议创建服务实体和身份认证服务创建认证服务的 API 端点从上至下分别为公共内部管理员总览接口查看服务列表创建域、项目、用户和角色创建默认域创建管理员项目创建管理员用户密码为admin创建管理员角色添加admin 角色到 admin 项目和用户上用以管理新创建service项目常规非管理任务应该使用无特权的项目和用户以下面的demo为例创建demo项目创建demo用户密码为demo创建user用户普通角色添加user角色到demo项目和用户验证重置OS_TOKEN和OS_URL 环境变量切换为正常认证模式作为 admin 用户请求认证令牌输入密码成功作为demo 用户请求认证令牌可以发现用户项目id不同代表不同用户与项目创建 OpenStack 客户端环境脚本创建admin-openrc文件内容如下创建demo-openrc文件内容如下给两个文件加上可执行权限加载并执行脚本里的环境变量通过执行不同脚本切换不同角色从而获得不同的权限同一条命令admin可执行而demo普通用户没有得到授权glance镜像服务配置用数据库连接客户端以 root 用户连接到数据库服务器创建 glance 数据库对glance数据库授予恰当的权限先执行admin脚本以获得权限创建 glance 用户添加 admin 角色到 glance 用户和 service 项目上创建glance服务实体创建镜像服务的 API 端点公共内部管理员安装软件包编辑文件配置数据库访问配置认证服务访问配置本地文件系统存储和镜像文件位置编辑文件配置数据库访问配置认证服务访问写入镜像服务数据库出现不推荐使用的提示为正常情况启动镜像服务验证保证处于admin脚本运行状态下载镜像源使用 QCOW2 磁盘格式 bare 容器格式上传镜像到镜像服务并设置公共可见这样所有的项目都可以访问确认镜像的上传并验证属性nova计算服务加入计算节点新虚拟机前置工作与controller相同做到open stack库配置完成控制节点配置用数据库连接客户端以 root 用户连接到数据库服务器创建 nova_api 和 nova 数据库对数据库进行正确的授权保证admin脚本运行创建 nova 用户给 nova 用户添加 admin 角色创建 nova 服务实体创建 Compute 服务 API 端点公共内部管理员下载软件包编辑文件只启用计算和元数据API配置数据库的连接配置 “RabbitMQ” 消息队列访问配置认证服务访问配置my_ip 来使用控制节点的管理接口的IP 地址使能 Networking 服务注意这里的use少了一个u之后排查会很麻烦use_neutron Ture配置VNC代理使用控制节点的管理接口IP地址配置镜像服务 API 的位置配置锁路径同步compute数据库忽略出现的警告启动服务计算节点配置转到新建的计算节点安装软件包编辑文件配置RabbitMQ消息队列的连接配置认证服务访问配置 my_ip 选项使能 Networking 服务启用并配置远程控制台访问配置镜像服务 API 的位置配置锁路径确定计算节点是否支持虚拟机的硬件加速如果这个命令返回了大于等于1的值则计算节点支持硬件加速且不需要额外的配置。如果这个命令返回了0则计算节点不支持硬件加速必须配置 libvirt 来使用 QEMU 去代替 KVM在 /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑[libvirt]...virt_type qemuKVM硬件加速速度快Kernel-based Virtual Machine基于内核的虚拟机将 Linux 内核变成一个 Hypervisor利用 CPU 硬件本身的虚拟化功能Intel 叫 vmxAMD 叫 svm来跑虚拟机。特点因为直接调用了硬件所以性能极高和物理机几乎没区别QEMU纯软件模拟速度慢Quick Emulator一个纯软件模拟器特点当 CPU 不支持硬件虚拟化比如在虚拟机里安装 OpenStack或者版本低的物理机或者返回值为 0 时QEMU 就会用纯代码去“模拟”出一套 CPU、内存和硬盘性能差启动服务回到控制节点列出服务组件以验证是否成功启动并注册了每个进程neutron网络服务控制节点配置用数据库连接客户端以 root 用户连接到数据库服务器创建neutron 数据库对neutron 数据库授予合适的访问权限创建neutron用户添加admin 角色到neutron 用户创建neutron服务实体创建网络服务API端点配置公共网络controller安装组件修改配置文件配置数据库访问启用ML2插件并禁用其他插件配置 “RabbitMQ” 消息队列的连接配置认证服务访问配置网络服务来通知计算节点的网络拓扑变化配置锁路径修改文件启用flat和VLAN网络禁用私有网络启用Linuxbridge机制启用端口安全扩展驱动配置公共虚拟网络为flat网络启用 ipset 增加安全组规则的高效性修改文件将公共虚拟网络和公共物理网络接口对应起来禁止VXLAN覆盖网络启用安全组并配置 Linuxbridge iptables firewall driver修改文件配置Linuxbridge驱动接口DHCP驱动并启用隔离元数据这样在公共网络上的实例就可以通过网络来访问元数据配置元数据代理修改文件配置元数据主机以及共享密码为控制节点配置网络服务修改文件配置访问参数启用元数据代理并设置密码创建软链接同步数据库结果为ok则正常重启计算api服务启动服务计算节点配置安装软件包修改文件配置 “RabbitMQ” 消息队列的连接配置认证服务访问配置锁路径配置公共网络compute修改文件将公共虚拟网络和公共物理网络接口对应起来禁止VXLAN覆盖网络启用安全组并配置 Linuxbridge iptables firewall driver为计算节点配置网络服务修改文件配置访问参数重启计算服务启动Linuxbridge代理并配置开机自启动验证因为使用了公共网络所以可以以下面的命令验证启动实例创建虚拟网络创建provider网络保证admin脚本运行创建网络在网络上创建一个子网创建m1.nano规格主机默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的我们推荐创建只需要64 MB的m1.nano规格的主机。若单纯为了测试的目的请使用m1.nano规格的主机来加载CirrOS镜像查看生成键值对运行demo脚本使用普通用户身份生成和添加秘钥对验证增加安全组规则允许icmpping允许ssh在公有网络上创建实例确保demo脚本运行查看可用的镜像网络安全规则若使用了公共网络则网络这一栏中无selfservice启动实例检查状态使用虚拟控制台访问实例获取实例的 Virtual Network Computing (VNC) 会话URL并从web浏览器访问如果windows上没有controller的解析可以用controller的ip替换controller查看检查能否ping通网关检查能否ping通互联网回到controller查看能否ping通实例ssh链接是否正常若此步骤失败在计算节点清空iptables规则重启服务再次尝试修复过程horizon仪表盘服务部署下载软件包编辑文件配置仪表盘以使用 OpenStack 服务许所有主机访问仪表板配置 memcached 会话存储服务启用第3版认证API通过仪表盘创建的用户默认角色配置为 user启用对域的支持配置API版本过仪表盘创建用户时的默认域配置为 default禁用支持3层网络服务如果选择网络参数1选择时区可选重启服务浏览器访问controller/dashboard默认域admin登录密码也为admin进入界面可以看到项目用户使用情况等再以demo用户登录密码为demo使用可以再dashboard上进行删除添加云主机的操作这里删除之前在虚拟机上创建的云主机查看是否删除成功再以admin登录admin状态下可以删除网络删除成功再来创建一个网络创建成功再创建一个子网创建成功还可以创建云主机类型创建成功还可以创建镜像再进入demo用户下的云主机创建一个新云主机成功创建回到controller查看验证是否成功创建
返回列表