Openstack(N版)
---openstack基础及其RabbitMQ
openstack介绍:
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。OpenStack是一个为公共及私有云的建设与管理提供软件的开源项目。
1、openstack是开源的。Openstack是云平台管理的项目。
2、Openstack四个最基本的项目:
1)Openstack Dashboard是web的一个管理界面,可以通过它去管理openstack。
2)Compute是openstack中用于计算的项目。
3)Networking是openstack中网络项目。
4)Storage是openstack中存储的项目。
3、Openstack管理了三大资源池:
Compute(计算资源,主要通过kvm管理虚拟机)、networking(通过管理IP地址、路由、网关等)、
Storage(openstack管理云硬盘)
Ps:这三个资源池通过对外提供API,Dashboard通过API来访问openstack。
4、openstack组件:
Horizon(Python编写的单独web界面)、Nova(计算使用)、Neutron(管理网络使用)、Swift(对象存储)、Glance(镜像服务)、keystone(即管理认证服务,又管理服务的注册)、Cinder(为虚拟机提供块存储)、Cellometer(做各个服务及虚拟机监控使用)、Heat(做编排的)、Trove和Sahara(数据和大数据)、
5、openstack版本历史:
6、opens tack支持好几种消息队列服务包括:Rabbitmq、Opid和ZeroMQ。openstack默认用到的消息队列是RabbitMQ。如果RabbitMQ挂掉,会造成虚拟机无法创建。
7、RabbitMQ分布式消息队列、通信枢纽、支持集群。
8、除了Horizon,openstack其他组件都需要连接数据库,除了Horizone和KeyStone,其他组件都需要连接RabbitMQ.
9、openstack:
Openstack环境部署及RabbitMQ
RabbitMQ介绍:
Rabbitmq是一套用erlang语言基于AMQP协议开发的,可复用的企业消息系统,它遵循Mozilla public license开源协议。
操作系统:Centos 7.2
IP地址:192.168.56.11
192.168.56.12
详细请参考:官方网站。
在生产环境下openstack,需要有ntp时间服务器,保证时间的同步。
在node1和node2上都安装:
1、生产环境中,需要有ntp时间服务器,在这里没有时间服务器,就自己yum安装一个ntpdate服务 :
yum -y install ntpdate
ntpdate time1.aliyun.com
2、安装仓库:
yum install centos-release-openstack-newton
3、安装openstack客户端:
yum -y install python-openstackclient
yum install openstack-selinux
4、由于Python访问MySQL的模块,需要安装:
yum install mariadb mariadb-server python2-PyMySQL
在node1上安装如下:
5、安装数据库:
yum install mariadb mariadb-server python2-PyMySQL
Ps:Python访问MySQL的模块
6、由于在/etc/my.cnf中,只要把配置文件写在includedir的目录里就可以,也是为了看上去不会太乱,方便管理。在node1上/etc/my.cnf.d下创建一个openstack.cnf
vim openstack.cnf
[mysqld]
bind-address = 192.168.56.11
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
7、安装消息对列:(如果生产环境比较大,rabbitmq需要独立的物理机做集群)
yum -y install rabbitmq-server
8、安装keystone认证
yum -y install openstack-keystone httpd mod_wsgi
注意:httpd会使用mod_wsgi模块和openstack-keystone进行通信
9、安装glance镜像安装包:
yum install openstack-glance
10、安装Nova的控制节点安装包:
yum install openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler
Ps:openstack-nova-api(如果nova访问不了,则openstack-nova-api挂了)、openstack-nova-conductor(数据的中间件,如果数据库访问不了,则conductor挂了)、openstack-nova-console(控制界面)、openstack-nova-novncproxy(代理,如果web界面打不开则novncproxy挂了)、openstack-nova-scheduler(调度,如果创建不了虚拟机,则openstack-nova-scheduler挂了)
11、安装网络的控制节点包:
yum install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables
12、启动mariadb服务并设为开机自启动:
systemctl enable mariadb.service
systemctl start mariadb.service
13、安全初始化数据库
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 ####设置root密码
New password: ####输入密码
Re-enter new password: ####再次输入密码
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y ####是否去除匿名用户
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y ####是否禁止root用于远程登陆
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y ####是否删除测试使用的数据库
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y ####是否reload授权表
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
14、启动rabbitmq服务并设置开机自启动:
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
15、添加openstack用户(需要连接opens tack消息队列就需要有用户)
rabbitmqctl add_user openstack openstack(用户名和密码都是opens tack)
16、给opens tack配置读写的权限:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Ps:rabbitmq默认有一个web的监控的插件,如何查看这些插件。
17、查看rabbitmq的web的所有插件:
rabbitmq-plugins list
18、启动rabbitmq web插件:(rabbitmq_management这个插件可以启动一个web界面让我们去管理rabbitmq)
rabbitmq-plugins enable rabbitmq_management
19、查看端口:
lsof -i:15672
Ps:可以看到已经监听。
访问rabbitmq,可以正常访问。
由于openstack用户不是超级管理员,不能登录web界面,需要使用guest用户。
用户名:guest 密码:guest
登录后的rabbitmq界面,如何更改openstack呢?
点击Admin,再点击openstack就可以修改。
简单的搭建已经完毕了,下面我们来学习openstack的认证服务Keystone。