经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 大数据/云/AI » openstack » 查看文章
OpenStack教程-01.在CentOS7.5上安装OpenStack-Rocky-系统环境准备-控制节点
来源:cnblogs  作者:天生帅才  时间:2018/10/29 9:39:54  对本文有异议

分享一下Rocky版本的OpenStack安装管理经验:

OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法改动稍大,不过依然是比较复杂

官方文档地址:https://docs.openstack.org/install-guide/openstack-services.html

本文主要分享控制节点的环境配置方法:

----------------  完美的分割线  ------------------

1.0.系统环境

1)生产测试应用的服务器最好是物理机,虚拟目前可以完成搭建测试体验

2)系统选择是目前的最新版本:CentOS Linux release 7.5.1804 (Core) 

3)控制节点Controller :192.168.1.81
      计算节点Nova:192.168.1.82

1.1.配置域名解析 

1)配置主机名

# 主机名设置好就不能修改,否则会出问题,控制节点和计算节点配置相同,且都需要配置

  1. hostname openstack01.zuiyoujie.com
  2. hostname
  3. echo "openstack01.zuiyoujie.com"> /etc/hostname
  4. cat /etc/hostname

2)配置主机名解析

  1. vim /etc/hosts
  2. -----------------------------------
  3. 192.168.1.81 openstack01.zuiyoujie.com controller
  4. 192.168.1.82 openstack02.zuiyoujie.com compute02 block02 object02
  5. -----------------------------------

# 配置主机名的FQDN格式,和集群内部角色名称方便后续配置

1.2.关闭防火墙和selinux

1)关闭iptables

# 在CentOS7上面是firewalld

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service
  3. systemctl status firewalld.service

2)关闭 selinux

  1. setenforce 0
  2. getenforce
  3. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
  4. grep SELINUX=disabled /etc/sysconfig/selinux

1.3.配置时间同步

1)在控制端配置时间同步服务

  1. yum install chrony -y

2)编辑配置文件确认有以下配置

  1. vim /etc/chrony.conf
  2. --------------------------------
  3. server ntp1.aliyun.com iburst
  4. server ntp2.aliyun.com iburst
  5. allow 192.168.0.0/24
  6. --------------------------------

3)重启ntp服务,并配置开机自启动

  1. systemctl restart chronyd.service
  2. systemctl status chronyd.service
  3. systemctl enable chronyd.service
  4. systemctl list-unit-files |grep chronyd.service

4)设置时区,同步时间

  1. timedatectl set-timezone Asia/Shanghai
  2. chronyc sources
  3. timedatectl status

# 配置完成,如下显示

  1. [root@openstack01 ~]# chronyc sources
  2. 210 Number of sources = 2
  3. MS Name/IP address Stratum Poll Reach LastRx Last sample
  4. ==================================================================================
  5. ^* 120.25.115.20 2 6 17 9 +17ms[ +22ms] +/- 34ms
  6. ^+ 203.107.6.88 2 6 17 9 +3029us[+8251us] +/- 54ms
  7. [root@openstack01 ~]# timedatectl status
  8. Local time: 2018-10-22 15:13:51 CST
  9. Universal time: 2018-10-22 07:13:51 UTC
  10. RTC time: 2018-10-22 07:13:52
  11. Time zone: Asia/Shanghai (CST, +0800)
  12. NTP enabled: yes
  13. NTP synchronized: yes
  14. RTC in local TZ: no
  15. DST active: n/a

1.4.配置相关yum源 

1)配置阿里云的base和epel源

  1. mv -f /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
  4. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2)安装openstack-rocky的仓库

  1. yum install centos-release-openstack-rocky -y
  2. yum clean all
  3. yum makecache

# 也可以手动创建OpenStack的阿里云yum源地址

  1. vim /etc/yum.repos.d/CentOS-OpenStack-Rocky.repo
  2. ----------------------------------
  3. [centos-openstack-rocky]
  4. name=CentOS-7 - OpenStack rocky
  5. baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
  6. gpgcheck=1
  7. enabled=1
  8. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
  9. [centos-openstack-rocky-test]
  10. name=CentOS-7 - OpenStack rocky Testing
  11. baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
  12. gpgcheck=0
  13. enabled=0
  14. [centos-openstack-rocky-debuginfo]
  15. name=CentOS-7 - OpenStack rocky - Debug
  16. baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/
  17. gpgcheck=1
  18. enabled=0
  19. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
  20. [centos-openstack-rocky-source]
  21. name=CentOS-7 - OpenStack rocky - Source
  22. baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/openstack-rocky/
  23. gpgcheck=1
  24. enabled=0
  25. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
  26. [rdo-trunk-rocky-tested]
  27. name=OpenStack rocky Trunk Tested
  28. baseurl=http://mirrors.aliyun.com/centos/7/cloud/$basearch/rdo-trunk-rocky-tested/
  29. gpgcheck=0
  30. enabled=0
  31. -----------------------------------

3)更新软件包

  1. yum update -y

4)安装openstack客户端相关软件

  1. yum install python-openstackclient openstack-selinux -y

1.5.在控制节点安装数据库

# 可以修改系统内核更改最大连接数和文件句柄数

1)安装mariadb相关软件包

# CentOS7.5默认数据库为maraidb

  1. yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y

2)创建openstack的数据库配置文件

  1. vim /etc/my.cnf.d/mariadb_openstack.cnf
  2. # 在[mysqld]添加以下配置
  3. -----------------------------------
  4. [mysqld]
  5. bind-address = 0.0.0.0
  6. default-storage-engine = innodb
  7. innodb_file_per_table = on
  8. max_connections = 4096
  9. collation-server = utf8_general_ci
  10. character-set-server = utf8
  11. init-connect = 'SET NAMES utf8'
  12. -----------------------------------

# 配置解释:

  1. default-storage-engine = innodb 默认存储引擎
  2. innodb_file_per_table 使用独享表空间模式,每一个表都会建一个表空间,都会有索引文件,查索引快,共享表空间,共用一个表空间和索引,如果有损坏很难修复,比如说zabbix用到的数据库如果不使用的独享表空间,很难进行优化
  3. collation-server = utf8_general_ci
  4. init-connect = 'SET NAMES utf8'
  5. character-set-server = utf8

3)启动数据库设置开机启动

  1. systemctl restart mariadb.service
  2. systemctl status mariadb.service
  3. systemctl enable mariadb.service
  4. systemctl list-unit-files |grep mariadb.service

4)初始化数据库并重新启动

# 设置密码,默认密码为空,然后输入密码123456,一路y回车

  1. /usr/bin/mysql_secure_installation
  2. systemctl restart mariadb.service

# 注意:生产环境可以使用pwgen工具生成数据库密码

  1. openssl rand -hex 10

5)创建openstack相关数据库,进行授权

# 测试下数据库,相关的数据库在需要时单独创建

  1. mysql -p123456
  2. -----------------------------------
    flush privileges;
  3. show databases;
  4. select user,host from mysql.user;
  5. exit
  6. -----------------------------------

# 至此,数据库配置完毕

1.6.在控制节点安装消息队列rabbitmq

消息队列( MQ)全称为 Message Queue, 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。
队列的使用除去了接收和发送应用程序同时执行的要求。
RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。他遵循 Mozilla Public License 开源协议。

1)安装rabbitmq-server

  1. yum install rabbitmq-server -y

2)启动rabbitmq,并配置自启动

# 端口5672,15672,用于拍错

  1. systemctl start rabbitmq-server.service
  2. systemctl status rabbitmq-server.service
  3. systemctl enable rabbitmq-server.service
  4. systemctl list-unit-files |grep rabbitmq-server.service

3)创建消息队列中openstack账号及密码

# 添加openstack用户和密码,配置用户权限,配置读,写权限

  1. rabbitmqctl add_user openstack openstack
  2. rabbitmqctl set_permissions openstack ".*" ".*" ".*"

4)启用rabbitmq_management插件实现 web 管理

# 查看支持的插件

  1. rabbitmq-plugins list

# 启用web管理插件,需要重启服务使之生效

  1. rabbitmq-plugins enable rabbitmq_management
  2. systemctl restart rabbitmq-server.service
  3. rabbitmq-plugins list
  4. lsof -i:15672

5)浏览器访问RabbitMQ进行测试

访问地址:http://192.168.1.81:15672

# 首次登陆,默认用户名密码都是guest,需要登录上去修改openstack用户的权限(Tags)
# 打开admin管理标签,点击openstack用户名,打开以下界面,点击admin设置administrator的Tags,输入刚才设置的密码openstack,更新用户设置,最后使用openstack用户进行登陆测试

# rabbitmq配置完毕

1.7.在控制节点上安装Memcached

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

1)安装Memcached用于缓存令牌

  1. yum install memcached python-memcached -y

2)修改memcached配置文件

  1. vim /etc/sysconfig/memcached
  2. ----------------------------------
  3. OPTIONS="-l 127.0.0.1,controller"
  4. ----------------------------------

# 如果没有启用IPv6地址需要删掉::1的地址绑定

3)启动memcached并设置开机自启动

  1. systemctl start memcached.service
  2. systemctl status memcached.service
  3. netstat -anptl|grep memcached
  4. systemctl enable memcached.service
  5. systemctl list-unit-files |grep memcached.service

# memcached参数说明:

  1. -d选项是作为守护进程在后台运行
  2. -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB
  3. -u是运行Memcache的用户,我这里是root
  4. -l是监听的服务器IP地址,如果有多个地址的话
  5. -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
  6. -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
  7. -P是设置保存Memcachepid文件
  8. -vv是以very vrebose模式启动,将调试信息和错误输出到控制台

# 至此,memcached配置完毕

1.8.在控制节点上安装Etcd服务

# 这个Etcd服务是新加入的,用于自动化配置

1)安装etcd服务

  1. yum install etcd -y

2)修改etcd配置文件

  1. vim /etc/etcd/etcd.conf
  2. -----------------------------------
  3. #[Member]
  4. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  5. ETCD_LISTEN_PEER_URLS="http://192.168.1.81:2380"
  6. ETCD_LISTEN_CLIENT_URLS="http://192.168.1.81:2379"
  7. ETCD_NAME="controller"
  8.  
  9. #[Clustering]
  10. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.81:2380"
  11. ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.81:2379"
  12. ETCD_INITIAL_CLUSTER="controller=http://192.168.1.81:2380"
  13. ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
  14. ETCD_INITIAL_CLUSTER_STATE="new"
  15. ------------------------------------

# 注意上面的IP地址不能用controller替代,无法解析

3)启动etcd并设置开机自启动

  1. systemctl start etcd.service
  2. systemctl status etcd.service
  3. netstat -anptl|grep etcd
  4. systemctl enable etcd.service
  5. systemctl list-unit-files |grep etcd.service

# 至此,控制节点controller就完成基础环境的配置,下面可以开始安装 openstack 的组件

# 虚拟机的话配置完成可以关机做快照

======== 完毕,呵呵呵呵 ========

附:openstack计算节点的系统环境配制方法:https://www.cnblogs.com/tssc/p/9857647.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号