人的一生,有许多事情,是需要放在心里慢慢回味的,过去的就莫要追悔,一切向前看吧 任何打击都不足以成为你堕落的借口,即使你改变不了这个世界,你却依然可以改变自己,选择条正确的路永远走下去。
返回顶部

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基础环境已基本搭建完成

 

posted @ 2020-12-14 16:49  yy1299050947  阅读(775)  评论(0编辑  收藏  举报