Openstack之路(一)基础环境
Openstack的概述Openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
Openstack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。Openstack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。Openstack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
Openstack官方网站
Openstack官方文档
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的安装
环境规划
序号
主机名
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
3
linux-node3
eth0:192.168.56.13
计算节点
CentOS Linux release 7.2
系统优化
[*]关闭selinux和iptables
# setenforce 0
# getenforce
Disabled
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
# systemctl disable firewalld
# systemctl stop firewalld
[*]同步网络时间服务器
# ntpdate 0.pool.ntp.org
10 Jan 12:38:28 ntpdate: adjust time server 120.25.115.20 offset 0.048309 sec
# hwclock
Wed 10 Jan 2018 08:31:31 PM CST-0.944430 seconds
# crontab -e
####Synchronization Network Time Server####
*/5 * * * * /usr/sbin/ntpdate 0.pool.ntp.org &>/dev/null
# crontab -l
####Synchronization Network Time Server####
*/5 * * * * /usr/sbin/ntpdate 0.pool.ntp.org &>/dev/null
基础服务安装
[*]添加Openstack仓库,安装Newton版
# yum -y install centos-release-openstack-newton
# rpm -qa centos-release-openstack-newton
centos-release-openstack-newton-1-2.el7.noarch
[*]安装Openstack客户端
# yum -y install python-openstackclient openstack-selinux
# rpm -qa python-openstackclient openstack-selinux
python-openstackclient-3.2.1-1.el7.noarch
openstack-selinux-0.8.11-1.el7.noarch
基础服务MySQL
大多数Openstack服务使用SQL数据库来存储信息(生产环境建议做集群)。 典型地,数据库运行在控制节点上。当然了Openstack服务也支持其他SQL数据库,包括PostgreSQL。
[*]安装MariaDB数据库
# yum -y install mariadb mariadb-server python2-PyMySQL
# rpm -qa mariadb mariadb-server python2-PyMySQL
python2-PyMySQL-0.7.9-2.el7.noarch
mariadb-10.1.20-1.el7.x86_64
mariadb-server-10.1.20-1.el7.x86_64
[*]创建并编辑/etc/my.cnf.d/openstack.cnf,添加如下内容
# vim /etc/my.cnf.d/openstack.cnf
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
[*]启动mariadb,并配置为开机自启
# systemctl enable mariadb.service
# systemctl start mariadb.service
# systemctl status mariadb.service
[*]为了保证数据库服务的安全性,运行mysql_secure_installation脚本
# mysql_secure_installation
基础服务RabbitMQ
Openstack使用message queue协调操作和各服务的状态信息(生产环境建议做集群)。消息队列服务一般运行在控制节点上。Openstack支持好几种消息队列服务包括RabbitMQ,Qpid, 和ZeroMQ。不过,大多数发行版本的Openstack包支持特定的消息队列服务。这里安装RabbitMQ消息队列服务,因为大部分发行版本都支持它。如果你想安装不同的消息队列服务,查询与之相关的文档。
[*]安装RabbitMQ消息队列
# yum -y install rabbitmq-server
# rpm -qa rabbitmq-server
rabbitmq-server-3.6.5-1.el7.noarch
[*]启动rabbitmq,并配置为开机自启
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
# systemctl status rabbitmq-server.service
[*]查看端口状态,默认监听在5672端口
# lsof -i:5672
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 4570 rabbitmq 48uIPv629455 0t0TCP *:amqp (LISTEN
[*]添加openstack用户
# rabbitmqctl add_user openstack openstack
Creating user "openstack" ...
[*]配置openstack用户写和读权限
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
[*]启动Web管理插件,默认监听在15672端口
# rabbitmq-plugins list
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@linux-node1
|/
[] amqp_client 3.6.5
[] cowboy 1.0.3
[] cowlib 1.0.1
[] mochiweb 2.13.1
[] rabbitmq_amqp1_0 3.6.5
[] rabbitmq_auth_backend_ldap 3.6.5
[] rabbitmq_auth_mechanism_ssl 3.6.5
[] rabbitmq_consistent_hash_exchange 3.6.5
[] rabbitmq_event_exchange 3.6.5
[] rabbitmq_federation 3.6.5
[] rabbitmq_federation_management 3.6.5
[] rabbitmq_jms_topic_exchange 3.6.5
[] rabbitmq_management 3.6.5
[] rabbitmq_management_agent 3.6.5
[] rabbitmq_management_visualiser 3.6.5
[] rabbitmq_mqtt 3.6.5
[] rabbitmq_recent_history_exchange1.2.1
[] rabbitmq_sharding 0.1.0
[] rabbitmq_shovel 3.6.5
[] rabbitmq_shovel_management 3.6.5
[] rabbitmq_stomp 3.6.5
[] rabbitmq_top 3.6.5
[] rabbitmq_tracing 3.6.5
[] rabbitmq_trust_store 3.6.5
[] rabbitmq_web_dispatch 3.6.5
[] rabbitmq_web_stomp 3.6.5
[] rabbitmq_web_stomp_examples 3.6.5
[] sockjs 0.3.4
[] webmachine 1.10.3
# 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 6 plugins.
# lsof -i:15672
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam 4570 rabbitmq 50uIPv431327 0t0TCP *:15672 (LISTEN)
[*]浏览器访问192.168.56.11:15672,默认账号guest,密码:guest
基础服务Memcached
各类服务的身份认证机制使用Memcached缓存令牌。缓存服务Memecached通常运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。
[*]安装Memcached缓存
# yum -y install memcached python-memcached
# rpm -qa memcached python-memcached
memcached-1.4.39-1.el7.x86_64
python-memcached-1.54-3.el7.noarch
[*]编辑/etc/sysconfig/memcached文件,更改监听地址
# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 192.168.56.11,::1"
[*]启动memcached,并配置为开机自启
# systemctl enable memcached.service
# systemctl start memcached.service
# systemctl status memcached.service
页:
[1]