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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM