openstack基础环境部署以及openstack部署架构图

安装 openstack 基础组件准备

本次安装 T 版,各种组件最好安装正式版

Alpha:是内部测试版,一般不向外部发布,通常只在软件开发者内部交流,该版本软件的 Bug较多,需要继续修改。

Dev:在软件开发中多用于开发软件的代号,相比于 beta 版本,dev 版本可能出现的更早,甚至还没有发布。这也就意味着,dev 版本的软件通常比 beta 版本的软件更不稳定

Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。

RC:(Release Candidate) 就是发行候选版本,RC 版不会再加入新的功能了,主要着重于除错。

GA:General Availability,正式发布的版本。

Release:该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。

注意事项

1、openstack管理端需要运行多个服务,所以内存需要大一些,最少4G;openstack管理端是不运行虚拟机的,可以不开启内核的虚拟化功能;

2、安装openstack时先安装认证服务,只有安装完认证服务(认证服务是使用apache运行的)之后,才可以创建账号进行管理,然后安装镜像服务、计算服务、网络服务,计算服务和网络服务分为管理端和客户端,所以需要在openstack的管理端安装计算服务和网络服务的管理端,在创建虚拟机的node节点上安装计算服务和网络服务的客户端,最后安装dashboard服务,openstack各种组件的API都是通过apache运行的;
openstack的管理端负责创建虚拟机时的调度;
通过openstack管理端创建虚拟机的相关数据最终都会记录到mysql中;node节点没有权限往数据库中写数据,只有控制端有权限,并且node节点与控制端通讯是通过rabbitmq间接通讯,node节点会监听rabbitmq,控制端也会监听rabbitmq,控制端把创建虚拟机的指令发送到rabbitmq,由监听rabbitmq指定队列的node节点接收消息并创建虚拟机;

3、在使用RDO软件包时(安装openstack时)禁用EPEL,因为EPEL中的更新会破坏向后兼容性。或者,最好是使用yum-versionlock插件固定封装版本。

安装前准备

1、yum list centos-release-opensack*  #查看yum能够安装的openstack版本

实现架构

(01)

openstack-controler

https://docs.openstack.org/install-guide/overview.html #安装openstack前需要的硬件及系统配置

https://docs.openstack.org/install-guide/environment-packages-rdo.html #安装参考文档

1、hostnamectl set-hostname openstack-controler1.example.local  #修改控制端主机名

2、yum install centos-release-openstack-train.noarch -y  
#安装官方openstack T版的yum源;node节点、controler节点、mysql服务器都需要安装

3、yum install https://rdoproject.org/repos/rdo-release.rpm  
#安装RDO存储库RPM以启用OpenStack存储库;安装rdo源,这个源中保存了比较新并且稳定的openstack的包;node节点、controler节点、mysql服务器都需要安装

4、yum install python-openstackclient -y
#安装openstack客户端,会生成openstack的相关命令;只安装在node节点和controler节点

5、yum install openstack-selinux -y
#如果启用SELinux。安装 openstack-selinux 软件包以自动管理OpenStack服务的安全策略,就算没有启用selinux也可以安装;只安装在node节点和controler节点

6、yum install python2-PyMySQL -y
#此包用于openstack的控制端连接mysql所需要的模块,如果不安装,则无法连接数据库;此包只安装在控制端

7、yum install python-memcached -y
#安装python连接memcached的模块,只安装在控制端;如果不安装,则无法连接到memcached,无法连接到memcached,则账号就无法登录,因为账号信息是写入到memcache中的

准备mysql服务器

https://docs.openstack.org/install-guide/environment-sql-database-rdo.html #配置数据库

1、hostnamectl set-hostname openstack-mysql.example.local

2、yum install centos-release-openstack-train.noarch -y 
#在openstack环境中,安装数据库及其他组件都需要使用openstack的官方源安装,否则会出现版本不兼容;openstack官方源中的数据库版本比centos的更新一些

3、yum install https://rdoproject.org/repos/rdo-release.rpm

4、yum install mariadb mariadb-server -y

5、vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 0.0.0.0         #指定监听地址

default-storage-engine = innodb  
innodb_file_per_table = on
max_connections = 4096         #指定最大连接
collation-server = utf8_general_ci   #字符集
character-set-server = utf8 

6、systemctl start mariadb

7、systemctl enable mariadb

准备haproxy服务器

1、hostnamectl set-hostname openstack-ha1.example.local

2、yum install keepalived haproxy -y

3、vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_iptables     #centos必须添加此选项,否则会生成iptables规则,造成无法访问
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 58
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.31.7.248 dev eth0 label eth0:0
    }
}

4、systemctl restart keepalived.service

5、systemctl enable keepalived.service

6、其余节点尝试VIP是否能够ping通:ping 172.31.7.248

7、vim /etc/haproxy/haproxy.cfg
listen openstack-mysql-3306
 mode tcp
 bind 172.31.7.248:3306
 server 172.31.7.103 172.31.7.103:3306 check inter 3s fall 3 rise 5

listen openstack-rabbitmq-5672
 mode tcp
 bind 172.31.7.248:5672
 server 172.31.7.103 172.31.7.103:5672 check inter 3s fall 3 rise 5

listen openstack-memcached-11211
 mode tcp
 bind 172.31.7.248:11211
 server 172.31.7.103 172.31.7.103:11211 check inter 3s fall 3 rise 5
 
8、systemctl restart haproxy.service

9、systemctl enable haproxy.service 

10、在控制端通过telnet命令,测试这几个端口是否能够访问:telnet 172.31.7.248 5672

安装rabbitmq

https://docs.openstack.org/install-guide/environment-messaging-rdo.html #centos帮助文档

所有创建虚拟机的指令,控制端都会发送到rabbitmq,node节点监听rabbitmq
rabbitmq可以与mysql在同一个机器

1、vim /etc/hosts     #rabbitmq需要识别主机名才能够启动,需要把主机名解析放到本地的hosts文件中
172.31.7.103 openstack-mysql.example.local openstack-mysql
#添加本机IP地址解析,并且必须是一个全称主机名,一个是短主机名

2、yum install rabbitmq-server -y  
#必须安装官方openstack源,这样rabbitmq版本才会新一些,与其他组件才兼容

3、systemctl start rabbitmq-server.service  #监听端口是5672

4、systemctl enable rabbitmq-server.service

5、rabbitmqctl add_user openstack openstack123
#创建一个openstack账号,用于controler和node节点连接rabbitmq的认证

6、rabbitmqctl set_permissions openstack ".*" ".*" ".*"
#给openstack账号正则配置,拥有读写权限

7、rabbitmq-plugins list
   rabbitmq-plugins enable rabbitmq_management  #开启rabbitmq的web管理界面的插件,端口为15672
   
8、浏览器访问 http://172.31.7.103:15672   #账号名密码都是guest   

安装memcached

https://docs.openstack.org/install-guide/environment-memcached-rdo.html #centos参考文档

安装memcached是用于存储session信息;服务身份验证机制使用Memcached来缓存令牌
在登录openstack的dashboard时,会产生一些session信息,这些session信息会存放到memcached中

1、yum install memcached -y

2、vim /etc/sysconfig/memcached
PORT="11211"      #监听端口
USER="memcached"
MAXCONN="1024"
CACHESIZE="1024"  #指定memcached使用的内存大小
OPTIONS="-l 0.0.0.0,::1"  #指定监听地址

3、systemctl start memcached.service

4、systemctl enable memcached.service 
原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299808.html