OpenStack入门篇(六)之OpenStack环境准备
一、Openstack的概述
Openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
Openstack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。Openstack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。Openstack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
Openstack官方网站: https://www.openstack.org/
Openstack官方文档:https://docs.openstack.org/pike/
二、Openstack的组件
序号 | 服务名称 | 项目名称 | 描述 |
---|---|---|---|
1 | Dashboard | Horizon | 为Openstack用户提供一个Web的自服务Portal |
2 | Compute service | Nova | 管理VM的生命周期,是Openstack中最核心的服务 |
3 | Networking service | Neutron | 提供网络连接服务,负责创建和管理L2、L3网络,为VM提供虚拟网络和物理网络连接 |
4 | Object Storage service | Swift | 提供对象存储服务。VM可以通过RESTful API存放对象数据。作为可选的方案,Glance可以将镜像存放在Swift中;Cinder也可以将Volume备份到Swift中 |
5 | Block Storage service | Cinder | 为VM提供块存储服务。Cinder提供的每一个 Volume在VM看来就是一块虚拟硬盘,一般用作数据盘 |
6 | Identity service | Keystone | 为Openstack的各种服务提供认证和权限管理服务。简单的说,Openstack上的每一个操作都必须通过Keystone的审核 |
7 | Image service | Glance | 管理VM的启动镜像,Nova创建VM时将使用Glance提供的镜像 |
8 | Telemetry service | Ceilometer | 提供Openstack监控和计量服务,为报警、统计或计费提供数据 |
9 | Orchestration service | Heat | 自动化部署的组件 |
10 | Database service | Trove | 提供数据库应用服务 |
三、Openstack的安装
1、环境规划
序号 | 主机名 | IP地址 | 描述 | 系统版本 |
---|---|---|---|---|
1 | linux-node1 | eth0:192.168.56.11 | 控制节点 | CentOS Linux release 7.2 |
2 | linux-node2 | eth0:192.168.56.12 | 计算节点 | CentOS Linux release 7.2 |
2、系统优化
- 关闭selinux和iptables
- [root@linux-node1 ~]# setenforce
- [root@linux-node1 ~]# getenforce
- Disabled
- [root@linux-node1 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
- [root@linux-node1 ~]# systemctl disable firewalld
- [root@linux-node1 ~]# systemctl stop firewalld
- 同步网络时间服务器
- [root@linux-node1 ~]# ntpdate .pool.ntp.org
- Jan :: ntpdate[]: adjust time server 120.25.115.20 offset 0.048309 sec
- [root@linux-node1 ~]# hwclock
- Wed Jan :: PM CST -0.944430 seconds
- [root@linux-node1 ~]# crontab -e
- ####Synchronization Network Time Server####
- */ * * * * /usr/sbin/ntpdate .pool.ntp.org &>/dev/null
- [root@linux-node1 ~]# crontab -l
- ####Synchronization Network Time Server####
- */ * * * * /usr/sbin/ntpdate .pool.ntp.org &>/dev/null
3、基础服务安装
- 添加Openstack仓库,安装Newton版
- [root@linux-node1 ~]# yum -y install centos-release-openstack-newton
- [root@linux-node1 ~]# rpm -qa centos-release-openstack-newton
- centos-release-openstack-newton--.el7.noarch
- 安装Openstack客户端
- [root@linux-node1 ~]# yum -y install python-openstackclient openstack-selinux
- [root@linux-node1 ~]# rpm -qa python-openstackclient openstack-selinux
- python-openstackclient-3.2.-.el7.noarch
- openstack-selinux-0.8.-.el7.noarch
4、基础服务MySQL
大多数Openstack服务使用SQL数据库来存储信息(生产环境建议做集群)。 典型地,数据库运行在控制节点上。当然了Openstack服务也支持其他SQL数据库,包括PostgreSQL。
tips:除了Horizon,OpenStack其他组件都需要连接数据库
除了Horizon和Keystone,其他组件都需要连接RabbitMQ
- 安装MariaDB数据库
- [root@linux-node1 ~]# yum -y install mariadb mariadb-server python2-PyMySQL
- [root@linux-node1 ~]# rpm -qa mariadb mariadb-server python2-PyMySQL
- python2-PyMySQL-0.7.-.el7.noarch
- mariadb-10.1.-.el7.x86_64
- mariadb-server-10.1.-.el7.x86_64
- 创建并编辑/etc/my.cnf.d/openstack.cnf,添加如下内容
- [root@linux-node1 ~]# vim /etc/my.cnf.d/openstack.cnf
- [mysqld]
- bind-address = 192.168.56.11 #绑定ip地址
- default-storage-engine = innodb #默认存储引擎
- innodb_file_per_table #使用独立表空间
- max_connections = 4096 #最大连接数
- collation-server = utf8_general_ci
- character-set-server = utf8 #字符集设置
- 启动mariadb,并配置为开机自启
- [root@linux-node1 ~]# systemctl enable mariadb.service
- [root@linux-node1 ~]# systemctl start mariadb.service
- [root@linux-node1 ~]# systemctl status mariadb.service
- 为了保证数据库服务的安全性,运行mysql_secure_installation脚本
[root@linux-node1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password: 123456
Re-enter new password: 123456
Password updated successfully!
Reloading privilege tables..
... Success!
5、基础服务RabbitMQ
Openstack使用message queue协调操作和各服务的状态信息(生产环境建议做集群)。消息队列服务一般运行在控制节点上。Openstack支持好几种消息队列服务包括RabbitMQ,Qpid, 和ZeroMQ。不过,大多数发行版本的Openstack包支持特定的消息队列服务。这里安装RabbitMQ消息队列服务,因为大部分发行版本都支持它。如果你想安装不同的消息队列服务,查询与之相关的文档。
- 安装RabbitMQ消息队列
- [root@linux-node1 ~]# yum -y install rabbitmq-server
- [root@linux-node1 ~]# rpm -qa rabbitmq-server
- rabbitmq-server-3.6.-.el7.noarch
- 启动rabbitmq,并配置为开机自启
- [root@linux-node1 ~]# systemctl enable rabbitmq-server.service
- [root@linux-node1 ~]# systemctl start rabbitmq-server.service
- [root@linux-node1 ~]# systemctl status rabbitmq-server.service
- 查看端口状态,默认监听在5672端口
- [root@linux-node1 ~]# lsof -i:
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- beam rabbitmq 48u IPv6 0t0 TCP *:amqp (LISTEN
- 添加openstack用户
- [root@linux-node1 ~]# rabbitmqctl add_user openstack openstack
- Creating user "openstack" ...
- 配置openstack用户写和读权限
- [root@linux-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
- Setting permissions for user "openstack" in vhost "/" ...
- 启动Web管理插件,默认监听在15672端口
- [root@linux-node1 ~]# rabbitmq-plugins list
- Configured: E = explicitly enabled; e = implicitly enabled
- | Status: * = running on rabbit@linux-node1
- |/
- [ ] amqp_client 3.6.
- [ ] cowboy 1.0.
- [ ] cowlib 1.0.
- [ ] mochiweb 2.13.
- [ ] rabbitmq_amqp1_0 3.6.
- [ ] rabbitmq_auth_backend_ldap 3.6.
- [ ] rabbitmq_auth_mechanism_ssl 3.6.
- [ ] rabbitmq_consistent_hash_exchange 3.6.
- [ ] rabbitmq_event_exchange 3.6.
- [ ] rabbitmq_federation 3.6.
- [ ] rabbitmq_federation_management 3.6.
- [ ] rabbitmq_jms_topic_exchange 3.6.
- [ ] rabbitmq_management 3.6.
- [ ] rabbitmq_management_agent 3.6.
- [ ] rabbitmq_management_visualiser 3.6.
- [ ] rabbitmq_mqtt 3.6.
- [ ] rabbitmq_recent_history_exchange 1.2.
- [ ] rabbitmq_sharding 0.1.
- [ ] rabbitmq_shovel 3.6.
- [ ] rabbitmq_shovel_management 3.6.
- [ ] rabbitmq_stomp 3.6.
- [ ] rabbitmq_top 3.6.
- [ ] rabbitmq_tracing 3.6.
- [ ] rabbitmq_trust_store 3.6.
- [ ] rabbitmq_web_dispatch 3.6.
- [ ] rabbitmq_web_stomp 3.6.
- [ ] rabbitmq_web_stomp_examples 3.6.
- [ ] sockjs 0.3.
- [ ] webmachine 1.10.
- [root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_management
- The following plugins have been enabled:
- mochiweb
- webmachine
- rabbitmq_web_dispatch
- amqp_client
- rabbitmq_management_agent
- rabbitmq_management
- Applying plugin configuration to rabbit@linux-node1... started plugins.
- [root@linux-node1 ~]# lsof -i:
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- beam rabbitmq 50u IPv4 0t0 TCP *: (LISTEN)
- 浏览器访问192.168.56.11:15672,默认账号
guest
,密码:guest
6、基础服务Memcached
各类服务的身份认证机制使用Memcached缓存令牌。缓存服务Memecached通常运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。
- 安装Memcached缓存
- [root@linux-node1 ~]# yum -y install memcached python-memcached
- [root@linux-node1 ~]# rpm -qa memcached python-memcached
- memcached-1.4.-.el7.x86_64
- python-memcached-1.54-.el7.noarch
- 编辑/etc/sysconfig/memcached文件,更改监听地址
- [root@linux-node1 ~]# vim /etc/sysconfig/memcached
- PORT=""
- USER="memcached"
- MAXCONN=""
- CACHESIZE=""
- OPTIONS="-l 192.168.56.11,::1"
- 编辑/etc/memcached.conf文件并配置这个服务使用控制节点的管理地址。这是为了让其它节点可以通过管理网络进行访问。
- [root@linux-node1 ~]# vim /etc/memcached.conf
- 192.168.56.11
- 启动memcached,并配置为开机自启
- [root@linux-node1 ~]# systemctl enable memcached.service
- [root@linux-node1 ~]# systemctl start memcached.service
- [root@linux-node1 ~]# systemctl status memcached.service
7、linux-node1节点安装各项服务
①认证服务keystone,wsgi是用于apache与pythone进行通信的模块
- [root@linux-node1 ~]# yum install -y openstack-keystone httpd mod_wsgi
②镜像服务glance
- [root@linux-node1 ~]# yum install -y openstack-glance
③计算服务nova
- [root@linux-node1 ~]# yum install -y openstack-nova-api openstack-nova-conductor \
- openstack-nova-console openstack-nova-novncproxy \
- openstack-nova-scheduler
④网络服务neutron
- [root@linux-node1 ~]# yum install -y openstack-neutron openstack-neutron-ml2 \
- openstack-neutron-linuxbridge ebtables
OpenStack入门篇(六)之OpenStack环境准备的更多相关文章
- 【SSRS】入门篇(六) -- 分组和总计
原文:[SSRS]入门篇(六) -- 分组和总计 通过[SSRS]入门篇(五) -- 设置报表格式的设计,一份简单格式的报表已产生,如下图: 这节来说说分组和总计: 根据日期.订单对数据进行分组 添加 ...
- Openstack入门篇(十一)之neutron服务(控制节点)的部署与测试
1.Neutron的介绍 Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 *** 等.Neutron 提供了一个灵活的框架,通过配置,无论是开 ...
- OpenStack入门篇(九)之nova服务(控制节点)的部署与测试
1.Nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点 ...
- OpenStack入门篇(二)之OpenStack架构
1.OpenStack 架构 中间菱形是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍. Nova:管理 VM ...
- Openstack入门篇(十六)之Cinder服务的部署与测试
1.理解块存储服务 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系统:或者直接使用裸硬盘存储数据(数据库) 通 ...
- OpenStack入门篇(七)之认证服务Keystone
一.Keystone的概述 Keystone是Openstack的组件之一,用于为Openstack家族中的其它组件成员提供统一的认证服务,包括身份验证,令牌的发放和校验,服务列表,用户权限的定义等. ...
- Openstack入门篇(十三)之云主机创建
1.知识回顾与端口总结 service 功能 MySQL 为各个服务提供数据存储 RabbitMQ 为各个服务之间通信提供交通枢纽 Keystone 为各个服务器之间通信提供认证和服务注册 Glanc ...
- OpenStack入门篇(四)之KVM虚拟机介绍和管理
1.查看虚拟机,启动虚拟机 [root@linux-node1 ~]# virsh list --all Id Name State --------------------------------- ...
- OpenStack入门篇(一)之云计算的概念
1.云计算 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少 ...
随机推荐
- nowcoder模拟赛
R1 D1 普及组... T1/T2 咕 T3 链接:C 小A有一个只包含左右括号的字符串S.但他觉得这个字符串不够美观,因为它不是一个合法的括号串.一个合法的括号串是这样定义的: ()是合法的括号串 ...
- 算法——(4)哈希、hashmap、hashtable
1. Hash 把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值.拥有四个特性: 1. 拥有无限的输入域和固定大小的输出域 2. 如果输入值相同,返回值一样 3. 如果输入值不相同 ...
- [转]基于C#的开源GIS项目介绍之SharpMap篇
我是一个刚毕业的GIS本科毕业生,目前在杭州从事GIS软件应用开发.在项目开发中总感觉自己的编程水平还不够,于是想找些开源GIS小项目来研究研究,借以提高自己的编程能力和项目开发能力.在网上搜了一下“ ...
- ASP.Net GridView 基础
SP.NET 在开发过程中经常使用的微软提供的服务器控件(GridView),但在开发中很少使用界面化来操作.导致了有点不太会使用界面化操作了,还有就是一些不经常使用的属性也没什么印象了,在网上找了好 ...
- Android的JNI调用(一)
Android提供NDK开发包来提供Android平台的C++开发,用来扩展Android SDK的功能.主要包括Android NDK构建系统和JNI实现与原生代码通信两部分. 一.Android ...
- FLV封装格式分析
FLV官方文档:https://github.com/jiayayao/DataSheet/tree/master/media%20format/flv 一.FLV格式 FLV包括文件头(FLV he ...
- [java之设计模式]策略模式
策略模式(strategy pattern) 定义>> 将一系列的算法封装到一些列的类里面,并且可以相互替换 作用>> 将算法的变化独立于客户端,将算法的指责和算法的行为分开, ...
- 2017年秋招美团Java程序员开发,看我如何拿到offer
本人是一名本科毕业非计算机专业的程序员,面了阿里,结果没过,最后面上了美团,热乎乎的面经,昨天面的美团,虽然面完了HR面,但是感觉希望不大,希望能走运拿到offer吧.记性不是太好,有一些问题没能记住 ...
- Linux-- 目录基本操作(2)
cp 复制文件或目录 用法:cp [OPTION] SOURCE源文件 DIRECTORY目标文件,具体可以查看 man cp 以常用的参数举例 [root@hs-192-168-33-206 tom ...
- vux使用过程中遇到的问题
1.使用confirm.prompt组件时,ios下点击输入框很难获得焦点 解决思路:使用confirm.show方法,自定义content内容,show方法里面设置input的focus方法 let ...