OpenStack基础环境 [一]

本文是OpenStack基础环境的介绍,涵盖了OpenStack的项目简介、版本选择、架构解析、核心服务和环境准备,如MySQL、RabbitMQ的安装与配置。OpenStack是一个云平台管理项目,用于管理和分配数据中心的资源。文章还强调了版本选择和时间同步的重要性,并详细讲解了数据库和消息队列在OpenStack中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenStack基础环境 [一]

标签(空格分隔): openstack
时间:2016年11月22日
博客地址:www.abcdocker.com

openstack介绍

 openstack是一个云平台管理的项目,它不是一个软件。也就是说我们可以使用openstack来管理我们一个数据中心大量资源池。它里面包含了很多子项目

image_1b25l8lci9tvktkei712s8un59.png-46.2kB

openstack包含三大项:计算 网络 存储
  openstack主要目标是来简化资源的管理和分配,把计算 网络 存储。三大项虚拟成三大资源池,例如需要计算资源我这里可以提供,需要网络资源这里也可以提供以及存储资源的需求,对外提供api,通过api进行交互
  openstack的设计基本上是按照亚马逊进行设置的,我们可以将openstack理解为开源版本的aws。因为它很多地方都参考亚马逊进行操作的,而且openstack的很多api跟亚马逊是相通的。
  openstack火起来的原因首先是apache旗下的开源软件,第二它是由python进行编写
(因为python比较简单,深受技术人员的喜欢)

openstack官方网站:http://www.openstack.org

openstack版本介绍

image_1b25lemg8s41aji1c30vkivq2m.png-143.1kB
 openstack版本是每6个月发布一次,每次版本的顺序按照A-Z进行排序。
那么我们应该如何选择版本呢?
  我们选择版本的时候,除了新版本的那些功能不得不用,那我们可以选择新的版本。其实我们可以选择稍微落后的一个版本。上述图不够准确,现在已经达到N版。国内openstack是从E班开始火的。因为E版本当时是比较完善的,国内openstack最火的时候是在G版的时候。现在国内不论是传统行业还是互联网行业都在使用openstack

openstack架构

image_1b25lh9fd4bs1cb6q8g1v0r67f13.png-40.3kB

服务名称 项目名称 描述
Dasgviard Horizon 基于Openstack API接口使用diango开发的Web管理
Compute Nova 通过虚拟化技术提供计算资源池
Networking Neutron 实现了虚拟机的网络资源管理。
Storage (存储)
Object Storage Swift 对象存储,适用于“一次写入、多次读取”
Block Storage Cinder 块存储,提供存储资源池
Share Services (共享服务)
Identify Service Keystone 认证管理
Image Service Glance 提供虚拟镜像的注册和存储管理
Telemetry Ceilometer 提供监控和数据采集、计量服务
Higher-level Services (高层服务)
Orchestration Heat 自动化部署的组件
Database Service Trove 提供数据库应用服务

image_1b25lidia998o14cdh1mk0doo9.png-112.2kB

解释:这里面所有的服务都是围绕着VM进行提供服务的,虚拟机需要什么资源,我们就提供什么资源

  我们可以将服务分为两大类,一个是服务的提供者,一个是服务的消费者。提供者是我可以提供某个服务,消费者是我可以用到这个服务。
  openstack默认是没有创建虚拟机的功能,是通过调用KVM来创建虚拟机还可以调用esxi

<think>根据用户需求,我们需要在CentOS7上配置OpenStack基础环境OpenStack个开源的云计算管理平台,提供基础设施即服务(IaaS)的解决方案。配置过程包括系统环境准备、安装OpenStack包、配置网络等步骤。以下是在CentOS7上配置OpenStack基础环境的步骤:###1.系统环境准备####1.1配置主机名和网络-设置主机名(例如:controller)```bashsudo hostnamectlset-hostname controller``` -配置静态IP(编辑网络配置文件)```bashsudovi /etc/sysconfig/network-scripts/ifcfg-ens33```修改内容如下:```iniBOOTPROTO=staticONBOOT=yesIPADDR=10.0.0.11#根据实际网络修改NETMASK=255.255.255.0GATEWAY=10.0.0.2DNS1=10.0.0.2```重启网络服务:```bashsudosystemctlrestart network``` ####1.2关闭防火墙和SELinux-关闭防火墙:```bashsudo systemctl stopfirewalldsudosystemctldisable firewalld``` -关闭SELinux:```bashsudosetenforce0sudosed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config```####1.3配置主机名解析编辑`/etc/hosts`文件,添加所有节点的主机名和IP地址:```bash10.0.0.11 controller10.0.0.12compute1```####1.4安装依赖包```bashsudoyuminstall -y net-toolsbash-completion vim gcc gcc-c++ makepcrepcre-develexpat-develcmakebzip2``` ###2.安装OpenStack客户端和SELinux管理包```bashsudo yum install-ycentos-release-openstack-trainsudo yum update-ysudoyuminstall -y python-openstackclient openstack-selinuxopenstack-utils```- `python-openstackclient`:OpenStack命令行客户端- `openstack-selinux`:自动管理OpenStack服务的安全策略- `openstack-utils`:OpenStack实用工具###3.配置时间同步(NTP) 确保所有节点时间同步: ```bashsudo yum install-ychronysudosystemctlenable chronydsudo systemctl startchronyd```###4.安装数据库(MariaDB)OpenStack使用数据库存储信息: ```bashsudo yum install-ymariadbmariadb-serverpython2-PyMySQLsudo systemctl enablemariadbsudosystemctlstart mariadb``` 运行安全配置脚本: ```bashsudo mysql_secure_installation```###5.安装消息队列(RabbitMQ) OpenStack使用消息队列协调服务: ```bashsudo yum install-yrabbitmq-serversudo systemctl enablerabbitmq-serversudo systemctl startrabbitmq-server``` 添加OpenStack用户:```bashsudorabbitmqctl add_user openstack RABBIT_PASS#替换RABBIT_PASS为实际密码sudo rabbitmqctlset_permissions openstack ".*"".*" ".*"``` ###6.安装Memcached身份认证服务(Keystone)使用Memcached缓存令牌: ```bashsudo yum install-ymemcached python-memcachedsudosystemctlenable memcachedsudosystemctlstart memcached```###7.安装身份认证服务(Keystone) Keystone是OpenStack的身份认证服务:```bashsudo yum install-yopenstack-keystone httpd mod_wsgi``` 配置Keystone(编辑`/etc/keystone/keystone.conf`): ```ini[database] connection= mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone#替换KEYSTONE_DBPASS[token]provider =fernet```初始化数据库: ```bashsudo su-s/bin/sh -c "keystone-managedb_sync"keystone```初始化Fernet密钥: ```bashsudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystonesudo keystone-manage credential_setup--keystone-userkeystone--keystone-groupkeystone```引导身份服务:```bashsudokeystone-managebootstrap --bootstrap-passwordADMIN_PASS \--bootstrap-admin-urlhttp://controller:5000/v3/ \--bootstrap-internal-url http://controller:5000/v3/\--bootstrap-public-url http://controller:5000/v3/\--bootstrap-region-idRegionOne```配置ApacheHTTP服务器: ```bashsudo ln-s/usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ sudosystemctlenable httpdsudo systemctl starthttpd```配置环境变量:```bashexportOS_USERNAME=adminexport OS_PASSWORD=ADMIN_PASSexport OS_PROJECT_NAME=adminexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_DOMAIN_NAME=DefaultexportOS_AUTH_URL=http://controller:5000/v3exportOS_IDENTITY_API_VERSION=3```###8.创建项目、用户和角色创建服务项目: ```bashopenstackproject create--domaindefault --description "Service Project" service```创建用户(例如demo): ```bashopenstackuser create--domaindefault --password-prompt demo```创建角色: ```bashopenstackrole createuser``` 将角色添加到用户和项目:```bashopenstack roleadd --project demo--userdemo user```###9.验证安装```bashopenstack tokenissue``` 如果成功返回令牌信息,则Keystone安装成功。 ###后续步骤以上是OpenStack基础环境配置的第步(Keystone身份服务)。接下来需要安装其他核心服务:- Glance(镜像服务) -Nova(计算服务)- Neutron(网络服务) -Horizon(仪表盘服务) ###注意事项1.所有密码(如`ADMIN_PASS`、`RABBIT_PASS`等)应替换为实际强密码。2.确保所有服务启动后正常运行,检查日志(`/var/log/keystone/keystone.log`等)排查问题。 3.在生产环境中,建议配置TLS加密通信。 §§相关问题§§1.如何安装和配置OpenStack的Glance镜像服务? 2.如何配置OpenStack的Nova计算节点? 3. OpenStack Neutron网络服务如何配置? 4.如何部署OpenStack仪表盘(Horizon)?5.OpenStack多节点部署需要注意哪些问题?</think>### 在 CentOS 7 上配置 OpenStack 基础环境 以下是分步配置指南,基于 CentOS 7 系统部署 OpenStack 基础环境: #### 、系统环境准备 ```bash # 1. 安装基础依赖包 sudo yum install -y net-tools bash-completion vim gcc gcc-c++ make pcre pcre-devel expat-devel cmake bzip2 # 2. 配置主机名(示例) sudo hostnamectl set-hostname controller echo "10.0.0.11 controller" | sudo tee -a /etc/hosts # 3. 关闭防火墙和SELinux sudo systemctl stop firewalld sudo systemctl disable firewalld sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 4. 配置静态IP(示例) sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 ``` 配置内容示例: ```ini BOOTPROTO=static ONBOOT=yes IPADDR=10.0.0.11 NETMASK=255.255.255.0 GATEWAY=10.0.0.2 DNS1=10.0.0.2 ``` #### 二、安装 OpenStack 基础包 ```bash # 1. 添加 OpenStack Train 仓库 sudo yum install -y centos-release-openstack-train # 2. 更新系统 sudo yum update -y # 3. 安装核心组件 sudo yum install -y python-openstackclient openstack-selinux openstack-utils # 4. 配置 pip 源(可选) mkdir ~/.pip cat > ~/.pip/pip.conf <<EOF [global] trusted-host = mirrors.aliyun.com index-url = http://mirrors.aliyun.com/pypi/simple EOF ``` #### 三、配置数据库(MariaDB) ```bash # 1. 安装 MariaDB sudo yum install -y mariadb mariadb-server python2-PyMySQL # 2. 创建配置文件 sudo tee /etc/my.cnf.d/openstack.cnf <<EOF [mysqld] bind-address = 10.0.0.11 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 EOF # 3. 启动服务 sudo systemctl enable mariadb sudo systemctl start mariadb # 4. 安全配置 sudo mysql_secure_installation ``` #### 四、安装消息队列(RabbitMQ) ```bash # 1. 安装 RabbitMQ sudo yum install -y rabbitmq-server # 2. 启动服务 sudo systemctl enable rabbitmq-server sudo systemctl start rabbitmq-server # 3. 添加 OpenStack 用户 sudo rabbitmqctl add_user openstack RABBIT_PASS sudo rabbitmqctl set_permissions openstack ".*" ".*" ".*" ``` #### 五、安装缓存服务(Memcached) ```bash # 1. 安装 Memcached sudo yum install -y memcached python-memcached # 2. 配置服务 sudo sed -i 's/127.0.0.1/10.0.0.11/g' /etc/sysconfig/memcached # 3. 启动服务 sudo systemctl enable memcached sudo systemctl start memcached ``` #### 六、安装身份认证服务(Keystone) ```bash # 1. 创建数据库 mysql -u root -p -e "CREATE DATABASE keystone;" mysql -u root -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';" mysql -u root -p -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';" # 2. 安装软件包 sudo yum install -y openstack-keystone httpd mod_wsgi # 3. 配置 /etc/keystone/keystone.conf sudo crudini --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone sudo crudini --set /etc/keystone/keystone.conf token provider fernet # 4. 初始化数据库 sudo su -s /bin/sh -c "keystone-manage db_sync" keystone # 5. 初始化 Fernet 密钥 sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 6. 引导身份服务 sudo keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne ``` #### 七、配置 Apache HTTP 服务器 ```bash # 1. 配置虚拟主机 sudo ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ # 2. 启动服务 sudo systemctl enable httpd sudo systemctl start httpd ``` #### 八、创建 OpenStack 环境变量 ```bash cat >> ~/.bashrc <<EOF export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 EOF source ~/.bashrc ``` #### 九、验证安装 ```bash # 1. 创建服务项目 openstack project create --domain default --description "Service Project" service # 2. 验证令牌 openstack token issue ``` ### 关键配置说明 1. **网络规划**: ```mermaid graph LR A[外部网络] --> B(OpenStack API) B --> C[管理网络 10.0.0.0/24] C --> D[控制节点] C --> E[计算节点] ``` 2. **服务端口**: | 服务 | 端口 | 协议 | |------------|--------|-------| | Keystone | 5000 | HTTP | | MariaDB | 3306 | TCP | | RabbitMQ | 5672 | AMQP | | Memcached | 11211 | TCP | ### 验证步骤 ```bash # 1. 检查服务状态 sudo systemctl status mariadb rabbitmq-server memcached httpd # 2. 测试API访问 curl -s http://controller:5000/v3 | python -m json.tool # 3. 检查数据库同步 mysql -u keystone -p -e "USE keystone; SHOW TABLES;" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值