安装openstack基础服务
1.控制节点安装时间同步服务(chrony)
(1)时间同步大体来说有两种方式:
一种是自己搭建时间同步服务器,各个需要同步时间的节点,与其同步时间
另一种则是使用ntpdate命令直接同步网络中已存在的时间服务器(如阿里云的服务器,地址为ntp.aliyun.com)
这里我是用后者进行时间同步,这样比较方便.如果在企业中主机可以联网的情况下,可以选择与网络时间同步.
1 [root@controller ~]# ntpdate ntp.aliyun.com
(2)date命令查看同步后的系统时间
1 同步前的系统时间 2 [root@controller ~]# date 3 Sun Dec 22 11:00:07 CST 2019 4 [root@controller ~]# 5 与阿里云时间服务器进行同步 6 [root@controller ~]# ntpdate ntp.aliyun.com 7 查看同步后的系统时间 8 [root@controller ~]# date 9 Sun Dec 22 19:09:22 CST 2019 10 写入到系统硬件中 11 [root@controller ~]# hwclock -w
2.控制节点安装数据库服务(mariadb)
(1)安装基础软件包
自从mysql被oracle后,centos7中默认使用的为mariadb,语法及操作与mysql类似.
1 [root@controller ~]# yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y
(2)创建openstack数据库配置文件
1 [root@controller ~]# vim /etc/my.cnf.d/openstack.cnf 2 [root@controller ~]# cat /etc/my.cnf.d/openstack.cnf #添加内容如下: 3 [mysqld] 4 bind-address = 0.0.0.0 5 default-storage-engine = innodb 6 innodb_file_per_table = on 7 max_connections = 4096 8 collation-server = utf8_general_ci 9 character-set-server = utf8 10 init-connect = 'SET NAMES utf8' 11 [root@controller ~]#
注释:
#默认存储引擎使用的是innodb
default-storage-engine = innodb
#使用独享表空间模式
innodb_file_per_table = on
(3)启动数据库且设置开机自启动
1 [root@controller ~]#systemctl restart mariadb 2 [root@controller ~]#systemctl status mariadb 3 [root@controller ~]#systemctl enable mariadb 4 [root@controller ~]#systemctl list-unit-files |grep -i mariadb
(4)初始化数据库,且重新启动数据库服务
设置mysql中默认root用户的密码. 注意,root用户与lnux中root无任何关系,只是用户名一样.
我这里推荐两种方式设置mysql的密码,具体如下:
设置数据库密码。默认密码为空。此处设置密码为123456。
方法1:
直接使用mysqladmin命令
[root@controller ~]# mysqladmin -uroot -p password 123456 Enter password: 直接回车即可.123456为需要设置的密码
方法2:
mysql_secure_installation交互式方式设置.
1 [root@controller ~]#mysql_secure_installation #交互过程中分别为 y y n y y
#重启数据库服务
1 [root@controller ~]# systemctl restart mariadb
(5)测试密码是否设置成功
1 [root@controller ~]# mysql -uroot -p 2 Enter password: #此处为刚设置的数据库新密码123456 3 MariaDB [(none)]> show databases; 4 +--------------------+ 5 | Database | 6 +--------------------+ 7 | information_schema | 8 | mysql | 9 | performance_schema | 10 | test | 11 +--------------------+ 12 4 rows in set (0.01 sec) 13 14 MariaDB [(none)]> quit 15 [root@controller ~]#
3.安装消息队列服务(rabbitmq)
概念理解(参考百度百科):
消息队列( MQ)全称为 Message Queue, 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。
(1)安装相关服务rabbitmq-server
1 [root@controller ~]# yum install rabbitmq-server -y
(2)启动rabbitmq服务,且设置开机自启动
[root@controller ~]# systemctl start rabbitmq-server [root@controller ~]# systemctl enable rabbitmq-server
(3)创建消息队列中openstack账号及密码
1 # 添加openstack用户和密码,配置用户权限,配置读,写权限 2 [root@controller ~]# rabbitmqctl add_user openstack openstack 3 [root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*" 4 [root@controller ~]# rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"
(4)启用rabbitmq_management插件,用来实现 web 管理,重启rabbitmq服务
1 查看rabbitmq支持的插件 2 [root@controller ~]# rabbitmq-plugins list 3 启动rabbitmq_managemen web管理插件 4 [root@controller ~]# rabbitmq-plugins enable rabbitmq_management 5 #重启rabbitmq服务 6 [root@controller ~]#systemctl restart rabbitmq-server 7 [root@controller ~]#rabbitmq-plugins list 8 #查看相关端口是否开启 9 方法1: 10 [root@controller ~]# lsof -i:15672 11 方法2: 12 [root@controller ~]# netstat -lntpv|grep -i beam 13 tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 6711/beam.smp 14 tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 6711/beam.smp 15 tcp6 0 0 :::5672 :::* LISTEN 6711/beam.smp 16 [root@controller ~]# 17 方法3: 18 [root@controller ~]# ss -lan|grep -i 567 19 tcp LISTEN 0 128 *:25672 *:* 20 tcp LISTEN 0 128 *:15672 *:* 21 tcp LISTEN 0 128 :::5672 :::* 22 [root@controller ~]#
(5)浏览器访问rabbitmq web管理平台
使用浏览器访问rabbitmq web管理平台进行测试用户名/密码:guest/guest
4.控制节点安装缓存服务(memcached)
概念理解:
认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。
(1)安装memcached软件包
1 [root@controller ~]# yum install memcached python-memcached -y
(2)修改memcached配置文件
建议在后续任何修改的操作前,每次修改配置文件前先备份再修改 注意:如果没有启用IPv6地址需要删掉::1的地址绑定 [root@controller ~]# vim /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1,controller"
(3)启动memcached服务且设置开机自启动
1 [root@controller ~]# systemctl start memcached
2 [root@controller ~]# systemctl enable memcached
(4)查看服务是否启动
1 [root@controller ~]# netstat -lntpv|grep -i memcache 2 [root@controller ~]# systemctl list-unit-files |grep memcached 3 memcached.service enabled 4 [root@controller ~]#
5.控制节点上安装etcd服务(etcd)
概念理解:
Etcd服务是新版本中新加入的,用于自动化配置,用于配置共享和服务发现
(1)安装相关软件包etcd
1 [root@controller ~]# yum install etcd -y
(2)修改etcd配置文件
1 该配置文件中,只能写IP地址,不能使用主机名controller来代替IP. 2 vim /etc/etcd/etcd.conf 3 ----------------------------------- 4 #[Member] 5 ETCD_DATA_DIR="/var/lib/etcd/default.etcd" 6 ETCD_LISTEN_PEER_URLS="http://192.168.20.10:2380" 7 ETCD_LISTEN_CLIENT_URLS="http://192.168.20.10:2379" 8 ETCD_NAME="controller" 9 10 #[Clustering] 11 ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.20.10:2380" 12 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.20.10:2379" 13 ETCD_INITIAL_CLUSTER="controller=http://192.168.20.10:2380" 14 ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" 15 ETCD_INITIAL_CLUSTER_STATE="new"
(3)启动服务,设置开机启动
1 [root@controller ~]# systemctl start etcd 2 [root@controller ~]#systemctl enable etcd 3 [root@controller ~]#netstat -lntpv|grep etcd
至此,openstack控制节点所有基础环境及服务准备完毕。开始安装openstack各个组件。
欢迎大家多评论,多提好的建议.正在更新中.还会有docker,python等相关文档出来.