zoukankan      html  css  js  c++  java
  • A01. openstack架构实战-openstack基本环境准备

    本次所有原理,操作可以使用官方链接进行参考

    https://docs.openstack.org/

    环境要求:

    • 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储

    • 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储

    controller01

    10.100.201.201 

    computer01  10.100.214.201

    前提准备:防火墙,selinux关闭

    sed  -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

    systemctl stop  firewalld && systemctl disable firewalld

    hosts域名解析:

    安装虚拟化组件工具

    yum install libvirt -y

    [root@controller01 ~]# tail /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.100.201.201 controller01
    10.100.214.202 computer01

    一:配置时间同步:

    controller01配置:

    [root@controller01 ~]# yum install chrony -y 

    配置ntp时间服务器主的config文件,修改一下图中两个地方:

    vim /etc/chrony.conf

     启动服务:

    [root@controller01 ~]# systemctl start chronyd  && systemctl enable  chronyd && systemctl status chronyd 

    computer时间同步配置:

    [root@compute01 ~]# yum install chrony -y 

     启动服务:

    [root@compute01 ~]# systemctl start chronyd  && systemctl enable  chronyd && systemctl status chronyd 

    验证是否时间同步正常:

    [root@compute01 ~]# chronyc sources
    210 Number of sources = 1
    MS Name/IP address Stratum Poll Reach LastRx Last sample
    ===============================================================================
    ^* controller01 3 6 377 18 +70us[ +619us] +/- 23ms

    [root@compute01 ~]# timedatectl
    Local time: Sat 2020-05-23 19:53:34 CST
    Universal time: Sat 2020-05-23 11:53:34 UTC
    RTC time: Sat 2020-05-23 11:53:34
    Time zone: Asia/Shanghai (CST, +0800)
    NTP enabled: yes
    NTP synchronized: yes
    RTC in local TZ: no
    DST active: n/a

    二:安全包

    1:安装需要的源

    我们这里使用阿里的源

    准备阿里源的base源:

    [root@controller01 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

    [root@controller01 yum.repos.d]# ls

    CentOS-Base.repo

    [root@node76 ~]# yum list | grep openstack

    centos-release-openstack-queens.noarch      1-2.el7.centos             extras   

    centos-release-openstack-rocky.noarch       1-1.el7.centos             extras   

    centos-release-openstack-stein.noarch       1-1.el7.centos             extras   

    centos-release-openstack-train.noarch       1-1.el7.centos             extras  

    [root@controller01 ~]# yum install centos-release-openstack-queens.noarch  -y 

    [root@compute01 ~]# yum install centos-release-openstack-queens.noarch  -y

    注意此处如果没有,请更改为图片中的阿里源

    2:安装openstack的客户端和openstack-selinux

    [root@controller01 ~]# yum install python-openstackclient openstack-selinux -y

    三:安装数据库

    大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。

    python2-PyMySQL:openstack架构是由python进行编写的,所以在每个组件进行存储信息的时候需要这个mysql的模块

     

    1:安装软件包:

    [root@controller01 ~]# yum install mariadb mariadb-server python2-PyMySQL -y

    2:配置数据库:

    innodb_file_per_table:使每个数据库的表都有独立的文件

    创建并编辑 /etc/my.cnf.d/openstack.cnf,然后完成如下动作

    [mysqld]

    bind-address = 10.100.201.201

    default-storage-engine = innodb

    innodb_file_per_table

    max_connections = 4096

    collation-server = utf8_general_ci

    character-set-server = utf8

    3:启动mariadb服务

    [root@controller01 ~]# systemctl start mariadb && systemctl enable mariadb 

    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

    4:为mariadb数据库配置root密码

    [root@controller01 ~]# mysql_secure_installation

    四:安装消息队列

    OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQQpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。本指南安装 RabbitMQ 消息队列服务,因为大部分发行版本都支持它。如果你想安装不同的消息队列服务,查询与之相关的文档。

    1:安装包

    [root@controller01 ~]# yum install rabbitmq-server -y

    2:启动消息队列服务并将其配置为随系统启动

    [root@controller01 ~]# systemctl start rabbitmq-server && systemctl enable rabbitmq-server 

    Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

    3:添加 openstack 用户:

    rabbitmq安装之后会后一个rabbitmqctl的命令用来管理rabbitmq服务

    [root@controller01 ~]# rabbitmqctl add_user openstack huayun

    Creating user "openstack"

    4:给``openstack``用户 “配置” “写” 和 “读” 权限

    [root@controller01 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

    Setting permissions for user "openstack" in vhost "/"

    5:启动rabbitmq_management 插件

    rabbitmq_management是rabbitmq的管理插件:

    当rabbitmq启动时候会有两个端口启动:5672和25672两个段

    5672是为对外服务客户端提供;25672端口是为了支持rabbitmq的集群之间的通信

    [root@controller01 ~]# rabbitmq-plugins  enable rabbitmq_management 

    The following plugins have been enabled:

      amqp_client

      cowlib

      cowboy

      rabbitmq_web_dispatch

      rabbitmq_management_agent

      rabbitmq_management

     

    Applying plugin configuration to rabbit@controller01... started 6 plugins.

    当启动rabbitmq的管理插件之后又会出现一个新的端口15672

    15672端口会提供一个web界面:默认的登入用户名/密码: guest/guest

     

    五:memcached的安装

    认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。

    当我们去读取数据的时候,会去数据库读取数据,当读取数据之后会在memcached中进行缓存,当下次读取的时候直接从缓存空间中返回给客户端,这个就加快了访问的速度

    1:安装包:

    [root@controller01 ~]# yum install memcached python-memcached -y 

    2:编辑/etc/sysconfig/memcached文件并完成以下操作:

    • 配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问:

    [root@controller01 ~]# sed  -i 's/127.0.0.1/10.100.201.201/g' /etc/sysconfig/memcached

    3:启动服务:

    [root@controller01 ~]# systemctl enable memcached.service && systemctl start  memcached.service

    Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.

    启动服务之后检测是否有11211的端口监听

    六:安装etcd服务(openstack集群需要进行安装,这里不是集群不进行安装)

    OpenStack服务可以使用Etcd(分布式可靠键值存储)来进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。

    etcd服务在控制器节点上运行。

    主要作用是:管理网络通过其他节点的访问的管理IP地址:

    最小化openstack的基础服务到此结束,谢谢

  • 相关阅读:
    Javaweb开发环境与搭建
    剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)
    剑指Offer:面试题31——连续子数组的最大和(java实现)
    剑指Offer:面试题30——最小的k个数(java实现)
    剑指Offer:面试题29——数组中出现次数超过一半的数字(java实现)
    剑指Offer:解决难题时的三大方法
    剑指Offer:面试题28——字符串的排列(java实现)(待序)
    剑指Offer:面试题27——二叉搜索树与双向链表(java实现)
    剑指Offer:面试题26——复制复杂的链表(java实现)
    剑指Offer:面试题25——二叉树中和为某一值的路径(java实现)
  • 原文地址:https://www.cnblogs.com/zhaopei123/p/12944695.html
Copyright © 2011-2022 走看看