openstack学习二-虚拟机上手工最小化安装stein(1)

    openstack目前最新稳定版本是stein,通过手工安装一遍可以最大限度的了解openstack的架构,更加深刻的理解openstack各组件之间的关联关系,本次实验的目标是在一台虚拟机上通过手工最小化安装openstack的基础服务及keystone、glance、placement、nova、neutron组件安装,这些组件安装后即可通过openstack命令行来开通虚拟机,如果需要图形界面管理还需要安装horizon提供dashboard服务。

一、openstack整体组件架构图

openstack学习二-虚拟机上手工最小化安装stein(1)_第1张图片

上图是openstack官方网站架构图,各种组件的目标最终都是为了给VMs提供各类服务,比如最基本的认证、镜像、计算及网络服务,其它类似对象、块存储、大数据、编排等服务也是为了更好的为租户提供服务。学习openstack要知到这些服务并不是一开始被设计好的,而是随着openstack的推广应用逐渐扩展开来的,这里面只有nova、glance是最初的服务。

二、安装主机规划

主机名 cpu 内存 netcard1 netcard2
controller 4 16 ens192:10.37.6.23 ens224:10.37.9.171
compute 4 16 ens192:10.37.6.24 ens224:10.37.9.198

控制节点、计算节点的规划如下图两个实心框所示,虚线框是可选项,不在本次讨论之列,最小需要两台虚拟机,实际使用的配置如上。 

openstack学习二-虚拟机上手工最小化安装stein(1)_第2张图片

 

三、安装密码规划

 
用户账号

密码名称

密码

描述

root

root

root

数据库的root密码

admin

ADMIN_PASS

admin

用户密码 admin

cinder

CINDER_DBPASS

cinder

块存储服务的数据库密码

cinder

CINDER_PASS

cinder

Block Storage服务用户的密码 cinder

dashboard

DASH_DBPASS

dashboard

仪表板的数据库密码

demo

DEMO_PASS

demo

用户密码 demo

glance

GLANCE_DBPASS

glance

图像服务的数据库密码

glance

GLANCE_PASS

glance

图像服务用户的密码 glance

keystone

KEYSTONE_DBPASS

keystone

身份服务的数据库密码

metadata

METADATA_SECRET

metadata

元数据代理的秘密

neutron

NEUTRON_DBPASS

neutron

网络服务的数据库密码

neutron

NEUTRON_PASS

neutron

网络服务用户的密码 neutron

nova

NOVA_DBPASS

nova

Compute服务的数据库密码

nova

NOVA_PASS

nova

计算服务用户的密码 nova

placement

PLACEMENT_PASS

placement

展示位置服务用户的密码 placement

openstack

RABBIT_PASS

openstack

RabbitMQ用户的密码 openstack

四、基本环境安装

      1、配置网卡ip及主机名解析

           依据上面数据规划在分别将主机设置为controller、compute两个主机,分别配置上对应两个网卡的IP地址及设置好/etc/hosts文件内容。

      2、所有主机节点上安装NTP服务并验证
  yum install chrony
  vi /etc/chrony.conf 添加一行本地NTP服务器IP地址即可,如果使用互联网访问则不必修改使用默认配置即可。
      server 133.0.254.240 iburst

     systemctl enable chronyd.service
     systemctl start chronyd.service

在计算节点上修改chrony配置文件,将服务器指向为controller节点,用controller从高精度时间节点同步,然后在让计算节点通过controller节点同步时间。执行完后通过chronyc sources进行检查,在计算节点上第一个应该是controller。

openstack学习二-虚拟机上手工最小化安装stein(1)_第3张图片

  3、安装启用centos7的openstack安装库及客户端

extras存储库提供启用OpenStack存储库的RPM。CentOS extras默认包含存储库,因此您只需安装软件包即可启用OpenStack存储库。

   yum install centos-release-openstack-stein -y

RHEL和CentOS 默认启用SELinux。安装 openstack-selinux软件包以自动管理OpenStack服务的安全策略

   yum install python-openstackclient openstack-selinux -y

4、 安装配置数据库服务,该项目只需要在控制节点安装即可

 yum install mariadb mariadb-server python2-PyMySQL

创建和编辑/etc/my.cnf.d/openstack.cnf文件(/etc/my.cnf.d/如果需要,备份现有配置文件)并完成以下操作:

  • 创建一个[mysqld]部分,并将bind-address 密钥设置为控制器节点的管理IP地址,以允许其他节点通过管理网络进行访问。设置其他键以启用有用选项和UTF-8字符集:

    [mysqld]
    bind-address = 10.37.6.23
    
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation(初始化数据库安装配置)root密码按上表规划为root

5、消息队列安装

消息队列在控制器节点上运行,所以在主控节点上安装即可

  1. 安装包:

    # yum install rabbitmq-server
    
  2. 启动消息队列服务并将其配置为在系统引导时启动:

    # systemctl enable rabbitmq-server.service
    # systemctl start rabbitmq-server.service
    
  3. 添加openstack用户:

    # rabbitmqctl add_user openstack openstack
    
    Creating user "openstack" ...
  4. 允许用户进行配置,写入和读取访问 openstack

    # rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    
    Setting permissions for user "openstack" in vhost "/" ...
    
    

    5、打开rabbitmq的gui管理插件

          rabbitmq-plugins enable rabbitmq_management

openstack学习二-虚拟机上手工最小化安装stein(1)_第4张图片

   通过rabbitmq-plugins list查看插件打开情况,也可以通过netstat -ntlp查看,rabbitmq的管理插件会监听tcp端口15672

openstack学习二-虚拟机上手工最小化安装stein(1)_第5张图片 使用账号guest/guest登陆

openstack学习二-虚拟机上手工最小化安装stein(1)_第6张图片

可以发现guest是rabbitmq的默认管理员账号,openstack是我们自己创建的用户,后面的组件安装配置时会使用这个账号。 

6、memcached安装

服务的身份服务身份验证机制使用Memcached来缓存令牌。memcached服务通常在控制器节点上运行。

openstack使用memcached就是为了提升keystone的效率,在令牌没有过期期间大量缓存令牌,服务间交互令牌不在需要从数据库中读取,大幅提升keystone的处理效率,降低数据库的压力。

  • 安装 yum install memcached python-memcached -y
  • 配置
vi /etc/sysconfig/memecached 
## modify
OPTION="-l 127.0.0.1,::1,controller"
复制代码
  • 启动服务
systemctl start memcached
systemctl enable memcached

7、etcd安装

OpenStack服务可以使用Etcd,一种分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务生存和其他场景,该服务只在控制节点安装。

  1. 安装包:

    # yum install etcd
    
  1. 编辑/etc/etcd/etcd.conf文件并设置ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLSETCD_ADVERTISE_CLIENT_URLS, ETCD_LISTEN_CLIENT_URLS控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址:

    #[Member]
    ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
    ETCD_LISTEN_PEER_URLS="http://10.37.6.23:2380"
    ETCD_LISTEN_CLIENT_URLS="http://10.37.6.23:2379"
    ETCD_NAME="controller"
    #[Clustering]
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.37.6.23:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.37.6.23:2379"
    ETCD_INITIAL_CLUSTER="controller=http://10.37.6.23:2380"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
    ETCD_INITIAL_CLUSTER_STATE="new"
  2. 注意etcd_name配置值要与ETCD_INITIAL_CLUSTER配置的主机名一致,否则etcd服务无法启动。
  • 启用并启动etcd服务:

    # systemctl enable etcd
    # systemctl start etcd

在控制节点上通过netstat -ntlp查看已经安装好的服务。tcp25672是消息队列rabbitmq的监听端口。

openstack学习二-虚拟机上手工最小化安装stein(1)_第7张图片

8、批量打开上面所安装服务需要打开的防火墙端口 

firewall-cmd --zone=internal --add-port=3306/tcp --permanent

firewall-cmd --zone=internal --add-port=5672/tcp --permanent

firewall-cmd  --add-port=15672/tcp --permanent

firewall-cmd --zone=internal --add-port=11211 --permanent

firewall-cmd --zone=internal --add-port=2379/tcp --permanent

firewall-cmd --zone=internal --add-port=2380/tcp --permanent

firewall-cmd  --add-port=5000/tcp --permanent

firewall-cmd --reload

openstack学习二-虚拟机上手工最小化安装stein(1)_第8张图片

总结:至此,由两个主机构成的openstack最小集群已经具备了安装openstack组件的条件,后面具体介绍如何最小化安装必要组件。 

你可能感兴趣的:(Openstack学习)