因工作需要接触openstack(Mitaka),故搭建一个测试环境学习一下。
本文为安装过程手顺,根据开源社区安装手册编写,安装过程中碰到问题也参考了不少网上资料,感谢各路大神的文档!
第一次部署,如有不对之处,还请大神留言指正!
本文适合第一次安装部署的新手,不要认为openstack很高大上,遥不可及而心生畏惧!
好好看看开源社区的安装手册(https://docs.openstack.org/zh_CN/),一台8G内存的笔记本电脑就可以让你开始实验了!
我的笔记本电脑配置较低:
ThinkPad 翼480 i5-8250U 8G内存 256G SSD+500G SSD(简化版T480,心水T480啊!)
VM 15 开了两个虚拟机
操作系统:CentOS 7.3 (1611)
控制节点:内存4G、硬盘100G(不要纠结硬盘大小,用不了那么多的,实际也就十几GB而已!)
计算节点:内存2G、硬盘100G --除控制服务外,其他服务均安装在这个节点
网络规划: VM给controller节点分配三块网卡:
1、仅主机模式:111.111.111.0/24 --管理网络
2、自定义VMnet2模式:192.168.111.0/24 --provider网络
yum源地址:
http://vault.centos.org/centos/7.3.1611/cloud/x86_64/openstack-mitaka 869+1200common
http://vault.centos.org/centos/7.3.1611/extras/x86_64 451
http://vault.centos.org/centos/7.3.1611/virt/x86_64/kvm-common 89
http://vault.centos.org/centos/7.3.1611/storage/x86_64/ceph-hammer 71
http://vault.centos.org/centos/7.3.1611/os/x86_64/Packages/
有几个python包,是从https://pkgs.org/ 站点下载。
1、基础环境准备
配置范围:所有节点
1.1、配置host文件
111.111.111.201 controller
111.111.111.202 computer01
1.2、配置本地yum源
我已经将安装包都下载到了本地,所以使用离线yum源安装
同时将离线包所在目录做成web站点,这样计算节点可以直接配置http的yum源
1.3、安装时间同步服务
安装范围:所有节点
1.3.1、安装chrony包
# yum install chrony -y
1.3.2、启动同步服务
# systemctl enable chronyd
# systemctl restart chronyd
# systemctl status chronyd
1.3.3、防火墙设置
第一次部署,关闭防火墙和selinux
1.3.4、配置Chrony
# vi /etc/chrony.conf
如上图所示,将默认的server全部注释掉,然后添加本机IP,在其他客户机也是这样配置
为了允许其他节点可以连接到控制节点的 chrony 后台进程,在``/etc/chrony.conf`` 文件添加下面的键:
allow 111.111.111.0/24
启动 NTP 服务并将其配置为随系统启动:
# systemctl enable chronyd.service
# systemctl start chronyd.service
1.4、安装openstack最新的源
安装范围:所有节点
yum install centos-release-openstack-mitaka
yum install https://rdoproject.org/repos/rdo-release.rpm ---本次操作不能执行这一步,否则新增的repo文件指向的是T版本的openstack
yum upgrade (更新源) --本步骤需要先移除预装的mariadb的包,否则报错 :yum remove mariadb-libs
yum install python-openstackclient(安装opentack必须的插件)
yum install openstack-selinux(可选则安装这个插件,我直接关闭了selinux,因为不熟,对后续不会有影响)
说明:如果使用自定义源,那么上面centos和redhat的操作可以省略
1.5、部署mariadb数据库
控制节点:
安装报错,经查资料怀疑是自带的Mariadb干扰了
如图查到了自带的mariadb包,全部移除
# yum remove mariadb* -y
yum install mariadb mariadb-server python2-PyMySQL -y
编辑:
vi /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 111.111.111.201
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
启服务:
# systemctl enable mariadb
# systemctl start mariadb
# systemctl status mariadb
mysql_secure_installation
先是设置密码,会提示先输入密码
Enter current password for root (enter for none): <–初次运行直接回车
设置密码 : P@ssw0rd
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,Y,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,N,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,n,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成
1.6、为Telemetry 服务部署MongoDB
控制节点:
# yum install mongodb-server mongodb -y
编辑:vi /etc/mongod.conf
bind_ip = 111.111.111.201
smallfiles = true
启动服务:
# systemctl enable mongod
# systemctl start mongod
1.7、部署消息队列rabbitmq
控制节点:
# yum install rabbitmq-server -y
启动服务:
# systemctl enable rabbitmq-server
# systemctl start rabbitmq-server
新建rabbitmq用户密码:
# rabbitmqctl add_user openstack P@ssw0rd
删除了guest用户:
# rabbitmqctl delete_user guest
为新建的用户openstack设定权限:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
启动管理WEB
rabbitmq-plugins enable rabbitmq_management
(验证方式:http://111.111.111.201:15672/ 用户:openstack 密码:P@ssw0rd)
但是登陆失败如红框所示:Login failed
为什么呢?因为不是管理员!!
rabbitmqctl set_user_tags openstack administrator
如下图所示,将openstack用户添加为管理员后就登陆成功了!
1.8、部署memcached缓存(为keystone服务缓存tokens)
控制节点:
# yum install memcached python-memcached -y
cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="10240"
CACHESIZE="64"
#OPTIONS="-l 127.0.0.1,::1"
OPTIONS="-l 0.0.0.0"
疑问:这一步在官方文档里是不修改OPTIONS选项的,默认就是127.0.0.1那一行
启动服务:
# systemctl enable memcached
# systemctl start memcached
基础环境准备完毕!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。