zoukankan      html  css  js  c++  java
  • OpenStack+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置及基础服务创建

    摘要

    ①控制节点(controller)

    控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板。它还包括支持服务,如SQL数据库,消息队列和NTP。

    可选地,控制器节点运行块存储,对象存储,编排和遥测服务的部分。

    注:计算节点上需要至少配置两块网卡。

    ②计算节点(Nova)

    计算节点运行操作实例的 计算部分。默认情况下使用 :`KVM 或QUME作为hypervisor。计算节点同样运行网络服务代理,用来连接实例到虚拟网络,通过:security groups 为实例提供防火墙服务。instances via .

    注:可以部署超过一个计算节点。但每个结算节点至少需要两块网卡。

    ③块设备存储(Cinder)

    可选的块存储节点上包含了磁盘,块存储服务和共享文件系统会向实例提供这些磁盘。

    为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。

    注:可以部署超过一个块存储节点。但每个块存储节点要求至少一块网卡。

    ④对象存储

    可选的对象存储节点包含了磁盘。对象存储服务用这些磁盘来存储账号,容器和对象。

    为了简单起见,计算节点和本节点之间的服务流量使用管理网络。生产环境中应该部署一个单独的存储网络以增强性能和安全。

    一、部署环境

    主机名

    内存

    硬盘

    网卡

    系统

    ct

    8

    300+300

    VM1:192.168.100.100

    Centos7.6

    NAT:20.0.0.10

    c1

    8

    300+300

    VM1:192.168.100.101

    Centos7.6

    NAT:20.0.0.20

    c2

    8

    300+300

    VM1:192.168.100.102

    Centos7.6

    NAT:20.0.0.30

    二、基础环境配置(所有节点,ct上演示)

    2.1、修改主机名

    1 [root@server1 ~]#  hostnamectl set-hostname ct
    2 [root@server1 ~]#  su
    3 
    4 [root@server2 ~]#  hostnamectl set-hostname c1
    5 [root@server2 ~]#  su
    6 
    7 [root@server3 ~]#  hostnamectl set-hostname c2
    8 [root@server3 ~]#  su

    2.2、基础环境依赖包

    1 [root@ct ~]# yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre  pcre-devel expat-devel cmake  bzip2 
    2 [root@ct ~]# yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils
    1 python-openstackclient     #安装 OpenStack 客户端
    2 openstack-selinux             #RHEL和 CentOS 默认启用 SELinux 。安装 openstack-selinux 包实现对OpenStack服务的安全策略进行自动管理

    2.3、设置网卡参数

     1 配置NAT网卡
     2 [root@ct etcd]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
     3 TYPE=Ethernet
     4 PROXY_METHOD=none
     5 BROWSER_ONLY=no
     6 BOOTPROTO=static
     7 IPADDR=20.0.0.10
     8 NETMASK=255.255.255.0
     9 GATEWAY=20.0.0.2
    10 DNS=20.0.0.2
    11 DEFROUTE=yes
    12 IPV4_FAILURE_FATAL=no
    13 IPV6INIT=yes
    14 IPV6_AUTOCONF=yes
    15 IPV6_DEFROUTE=yes
    16 IPV6_FAILURE_FATAL=no
    17 IPV6_ADDR_GEN_MODE=stable-privacy
    18 NAME=ens33
    19 UUID=633054e7-1f23-4fd7-9007-24c491adff63
    20 DEVICE=ens33
    21 ONBOOT=yes
    22 
    23 配置VM1网卡
    24 [root@ct etcd]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
    25 [root@ct etcd]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
    26 TYPE=Ethernet
    27 PROXY_METHOD=none
    28 BROWSER_ONLY=no
    29 BOOTPROTO=static
    30 IPADDR=192.168.100.100
    31 NETMASK=255.255.255.0
    32 DEFROUTE=yes
    33 IPV4_FAILURE_FATAL=no
    34 IPV6INIT=yes
    35 IPV6_AUTOCONF=yes
    36 IPV6_DEFROUTE=yes
    37 IPV6_FAILURE_FATAL=no
    38 IPV6_ADDR_GEN_MODE=stable-privacy
    39 NAME=ens37
    40 DEVICE=ens37
    41 ONBOOT=yes
    42 
    43 重启网卡并查看
    44 [root@ct ~]# systemctl restart network
    45 [root@ct ~]# ip addr

    2.4、配置Hosts

     1 [root@ct ~]# vi /etc/hosts
     2 192.168.100.100  ct
     3 192.168.100.101  c1
     4 192.168.100.102  c2
     5 
     6 [root@ct ~]# systemctl stop firewalld
     7 [root@ct ~]# systemctl disable firewalld
     8 [root@ct ~]# setenforce 0
     9 [root@ct ~]# vim /etc/sysconfig/selinux 
    10 SELINUX=disabled

    2.5、免交互

    1 非对称密钥
    2 [root@ct ~]#  ssh-keygen -t rsa          #一直空格
    3 [root@ct ~]#  ssh-copy-id ct
    4 [root@ct ~]#  ssh-copy-id c1
    5 [root@ct ~]#  ssh-copy-id c2

    2.6、配置DNS

    1 [root@ct ~]# vim /etc/resolv.conf
    2 nameserver 8.8.8.8

    2.7、控制节点ct时间同步配置

     1 [root@ct ~]# yum install chrony -y
     2 [root@ct ~]# vim /etc/chrony.conf 
     3 #4-7行注释
     4 #8行ct添加两行
     5 server ntp6.aliyun.com iburst
     6 allow 192.168.100.0/24
     7 
     8 #8行另外两个节点上添加一行
     9 server ct iburst
    10 
    11 [root@ct ~]# systemctl enable chronyd
    12 [root@ct ~]# systemctl restart chronyd
    13 
    14 使用 chronyc sources 命令查询时间同步信息
    15 [root@ct ~]# chronyc sources
    16 210 Number of sources = 1
    17 MS Name/IP address         Stratum Poll Reach LastRx Last sample               
    18 ===============================================================================
    19 ^* 203.107.6.88                  2   9   377    73  -2993us[-4411us] +/-   19ms
    20 
    21 设置周期性任务
    22 [root@ct ~]# crontab -e
    23 */30 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log
    24 [root@ct ~]# crontab -l
    25 */2 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log

    三、配置服务(控制节点)

    3.1、安装、配置MariaDB

     1 [root@ct ~]# yum -y install mariadb mariadb-server python2-PyMySQL
     2 
     3 #此包用于openstack的控制端连接mysql所需要的模块,如果不安装,则无法连接数据库;此包只安装在控制端
     4 [root@ct ~]# yum -y install libibverbs    
     5 
     6 添加MySQL子配置文件,增加如下内容
     7 [root@ct ~]# vim /etc/my.cnf.d/openstack.cnf
     8 [mysqld]
     9 bind-address = 192.168.100.100   #控制节点局域网地址
    10 default-storage-engine = innodb    #默认存储引擎 
    11 innodb_file_per_table = on            #每张表独立表空间文件
    12 max_connections = 4096                 #最大连接数 
    13 collation-server = utf8_general_ci    #默认字符集 
    14 character-set-server = utf8
    15 
    16 开机自启动、开启服务
    17 [root@ct my.cnf.d]# systemctl enable mariadb
    18 [root@ct my.cnf.d]# systemctl start mariadb
    19 
    20 执行MariaDB 安全配置脚本
    21 [root@ct my.cnf.d]# mysql_secure_installation
    22 Enter current password for root (enter for none):             #回车
    23 OK, successfully used password, moving on...
    24 Set root password? [Y/n] Y
    25 Remove anonymous users? [Y/n] Y
    26  ... Success!
    27 Disallow root login remotely? [Y/n] N
    28  ... skipping.
    29 Remove test database and access to it? [Y/n] Y 
    30 Reload privilege tables now? [Y/n] Y     

    3.2、安装RabbitMQ

    所有创建虚拟机的指令,控制端都会发送到rabbitmq,node节点监听rabbitmq

     1 [root@ct ~]# yum -y install rabbitmq-server
     2 
     3 配置服务,启动RabbitMQ服务,并设置其开机启动
     4 [root@ct ~]# systemctl enable rabbitmq-server.service
     5 [root@ct ~]# systemctl start rabbitmq-server.service
     6 
     7 创建消息队列用户,用于controler和node节点连接rabbitmq的认证
     8 [root@ct ~]# rabbitmqctl add_user openstack RABBIT_PASS
     9 Creating user "openstack"
    10 
    11 配置openstack用户的操作权限(正则,配置读写权限)
    12 [root@ct ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    13 Setting permissions for user "openstack" in vhost "/"
    14 
    15 查看rabbitmq插件列表
    16 [root@ct ~]# rabbitmq-plugins list
    17  Configured: E = explicitly enabled; e = implicitly enabled
    18  | Status:   [failed to contact rabbit@ct - status not shown]
    19  |/
    20 [e ] amqp_client                       3.6.16
    21 [e ] cowboy                            1.0.4
    22 [e ] cowlib                            1.0.2
    23 [  ] rabbitmq_amqp1_0                  3.6.16
    24 [  ] rabbitmq_auth_backend_ldap        3.6.16
    25 [  ] rabbitmq_auth_mechanism_ssl       3.6.16
    26 [  ] rabbitmq_consistent_hash_exchange 3.6.16
    27 [  ] rabbitmq_event_exchange           3.6.16
    28 [  ] rabbitmq_federation               3.6.16
    29 [  ] rabbitmq_federation_management    3.6.16
    30 [  ] rabbitmq_jms_topic_exchange       3.6.16
    31 [E ] rabbitmq_management               3.6.16
    32 [e ] rabbitmq_management_agent         3.6.16
    33 [  ] rabbitmq_management_visualiser    3.6.16
    34 [  ] rabbitmq_mqtt                     3.6.16
    35 [  ] rabbitmq_random_exchange          3.6.16
    36 [  ] rabbitmq_recent_history_exchange  3.6.16
    37 [  ] rabbitmq_sharding                 3.6.16
    38 [  ] rabbitmq_shovel                   3.6.16
    39 [  ] rabbitmq_shovel_management        3.6.16
    40 [  ] rabbitmq_stomp                    3.6.16
    41 [  ] rabbitmq_top                      3.6.16
    42 [  ] rabbitmq_tracing                  3.6.16
    43 [  ] rabbitmq_trust_store              3.6.16
    44 [e ] rabbitmq_web_dispatch             3.6.16
    45 [  ] rabbitmq_web_mqtt                 3.6.16
    46 [  ] rabbitmq_web_mqtt_examples        3.6.16
    47 [  ] rabbitmq_web_stomp                3.6.16
    48 [  ] rabbitmq_web_stomp_examples       3.6.16
    49 [  ] sockjs                            0.3.4
    50 
    51 开启rabbitmq的web管理界面的插件,端口为15672
    52 [root@ct ~]# rabbitmq-plugins enable rabbitmq_management
    53 The following plugins have been enabled:
    54 mochiweb
    55 webmachine
    56 rabbitmq_web_dispatch
    57 amqp_client
    58 rabbitmq_management_agent
    59 rabbitmq_management
    60 
    61 Applying plugin configuration to rabbit@likeadmin... started 6 plugins.
    62 
    63 检查端口(25672 5672 1567264 [root@ct ~]# ss -anpt | grep 5672
    65 LISTEN     0      128          *:25672                    *:*                   users:(("beam.smp",pid=35087,fd=46))
    66 LISTEN     0      128          *:15672                    *:*                   users:(("beam.smp",pid=35087,fd=57))
    67 LISTEN     0      128         :::5672                    :::*                   users:(("beam.smp",pid=35087,fd=55))

    网页访问http://20.0.0.10:15672,默认账户密码均为guest

    3.3、安装memcached

    3.3.1、作用

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

    3.3.2、 安装Memcached

     1 [root@ct ~]# yum install -y memcached python-memcached
     2 #python-*模块在OpenStack中起到连接数据库的作用
     3 
     4 修改Memcached配置文件
     5 [root@ct ~]# cat /etc/sysconfig/memcached 
     6 PORT="11211"
     7 USER="memcached"
     8 MAXCONN="1024"
     9 CACHESIZE="64"
    10 OPTIONS="-l 127.0.0.1,::1,ct"
    11 
    12 [root@ct ~]# systemctl enable memcached
    13 [root@ct ~]# systemctl start memcached
    14 
    15 [root@ct ~]# netstat -nautp | grep 11211

    3.4、安装etcd

     1 [root@ct ~]# yum -y install etcd
     2 
     3 修改etcd配置文件
     4 [root@ct ~]# cd /etc/etcd/
     5 [root@ct etcd]# ls
     6 etcd.conf
     7 [root@ct etcd]# vim etcd.conf 
     8 ETCD_DATA_DIR="/var/lib/etcd/default.etcd"                     #数据目录位置
     9 ETCD_LISTEN_PEER_URLS="http://192.168.100.100:2380"             #监听其他etcd member的url(2380端口,集群之间通讯,域名为无效值) 
    10 ETCD_LISTEN_CLIENT_URLS="http://192.168.100.100:2379"           #对外提供服务的地址(2379端口,集群内部的通讯端口)    
    11 ETCD_NAME="ct"                                                 #集群中节点标识(名称)
    12 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.100.100:2380"
    13 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.100.100:2379
    14 ETCD_INITIAL_CLUSTER="ct=http://192.168.100.100:2380"           #该节点成员的URL地址,2380端口:用于集群之间通讯。    
    15 ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"                   #集群唯一标识
    16 ETCD_INITIAL_CLUSTER_STATE="new"                               #初始集群状态,new为静态,若为existing,则表示此ETCD服务将尝试加入已有的集群
    17 若为DNS,则表示此集群将作为被加入的对象
    18 
    19 开机自启动、开启服务,检测端口
    20 [root@ct ~]# systemctl enable etcd.service
    21 [root@ct ~]# systemctl start etcd.service
    22 [root@ct ~]# netstat -anutp |grep 2379
    23 [root@ct ~]# netstat -anutp |grep 2380

    注:至此OpenStack基础环境已基本搭建完成

  • 相关阅读:
    javascript 3秒钟后自动跳转到前一页面
    meta
    HTML 5 label
    WCF的ABC
    由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
    ECMASCRIPT5新特性(转载)
    bin目录正.pdb是什么文件?
    PS切图的相关技巧
    MongoVUE破解方法
    ASP.NET MVC Area操作
  • 原文地址:https://www.cnblogs.com/xuhao0705/p/14134113.html
Copyright © 2011-2022 走看看