Ubuntu16手动安装OpenStack
记录大佬的博客全文转载于https://www.voidking.com/dev-ubuntu16-manual-openstack-env/
前言
《Ubuntu16安装OpenStack》一文中,使用devstack在物理机上安装了OpenStack的Queens版本。但是,在后来的《OpenStack添加镜像》实验中,遇到了很多奇怪的问题,遂决定重装OpenStack。
本次安装,计划采用一步步手动安装的方式,在两个节点上,最小安装OpenStack的Queens版本。主要参考OpenStack Queens Installation Guides,首先配置环境,然后安装必要的组件,包括keystone、glance、nova、neutron。再之后,选择安装horizon、cinder和swift。
本文,就记录一下配置环境的过程。
准备
本次安装使用两台VirtualBox虚拟机,一个控制节点和一个计算节点,系统均为ubuntu-16.04.4-server-amd64。控制节点1核4G内存40G存储,计算节点1核2G内存40G存储。
这两台虚拟机,都有三块网卡。eth0负责主机间相互通信,eth1负责上网,eth2负责neutron网络服务。两张eth0网卡在同一网络,两张eth2网卡在同一网络。
IP配置
参考VirtualBox下CentOS7和Ubuntu16.04网络配置,修改网卡名,然后配置静态IP。控制节点eth0配置为192.168.56.110,计算节点eth0配置为192.168.56.111。
主机名配置
参考VirtualBox下CentOS7和Ubuntu16.04网络配置,配置控制节点主机名为controller,计算节点主机名为compute。
然后编辑/etc/hosts,添加:
1 |
192.168.56.110 controller |
设置sudo免密
编辑sudoers,vim /etc/sudoers
在最后添加一行:
1 |
test ALL = NOPASSWD: ALL |
更换源列表
修改/etc/apt/sources.list,参考Ubuntu更换源列表,更换为Ubuntu官方中国的源列表。
最后重启主机,sudo reboot
。
root用户
为了避免权限问题,建议切换到root用户进行操作(否则要加很多sudo)。sudo -i
环境
在安装openstack之前,需要先安装好必须的环境,包括:
- Security
- Host networking
- Network Time Protocol (NTP)
- OpenStack packages
- SQL database
- Message queue
- Memcached
- Etcd
安装方法参考Environment。
Security
OpenStack服务支持各种安全方法,包括密码,策略和加密。
本节没有什么安装操作,过。
Host networking
在选择部署的体系结构的每个节点上安装操作系统后,必须配置网络接口。openstack官方建议禁用任何自动网络管理工具,并手动编辑网络配置文件。
本文准备工作中已经配置好了IP,过。
NTP
NTP服务主要用来各节点之间同步时间。
控制节点
1、安装chronyapt -y install chrony
2、配置chronyvim /etc/chrony/chrony.conf
取消两处注释:
1 |
allow 0/0 |
3、重启chronyservice chrony restart
计算节点
1、安装chronyapt -y install chrony
2、配置chronyvim /etc/chrony/chrony.conf
注释修改如下:
1 |
#pool 2.debian.pool.ntp.org offline iburst |
3、重启chronyservice chrony restart
验证安装
官方建议在继续操作之前验证NTP同步。某些节点,尤其是那些引用控制器节点的节点,可能需要几分钟才能同步。
1、在控制节点执行chronyc sources
Name/IP”列中的内容表示NTP服务器的主机名或IP地址。MS列中的内容,*
代表当前NTP服务器同步成功。
2、在计算节点执行chronyc sources
“Name/IP”列中的内容应该表示控制器节点的主机名。
OpenStack packages
由于发布计划不同,发行版将OpenStack软件包作为发行版的一部分或使用其他方法发布。在所有节点上执行这些操作。
1、安装openstack queens仓库apt install software-properties-common
add-apt-repository cloud-archive:queens
2、更新软件包apt update && apt dist-upgrade
3、安装openstack-clientapt -y install python-openstackclient
SQL database
大多数OpenStack服务使用SQL数据库来存储信息,数据库通常在控制器节点上运行。本文使用MariaDB(MySQL),OpenStack服务还支持其他SQL数据库,包括PostgreSQL。
1、安装mariadb和连接工具apt -y install mariadb-server python-pymysql
2、编辑50-server.cnfvim /etc/mysql/mariadb.conf.d/50-server.cnf
命令模式下输入:set nu
显示行号:
1 |
# line 29: change |
3、重启mariadb
关闭mariadb,service mysql stop
。
然后查看netstat -an | grep 3306
,确认3306已经关闭。
启动mariadb,service mysql start
。
4、设置mariadb密码mysql_secure_installation
按照提示设置密码为openstack。如果设置后无法登录,那么参考MySQL重置密码。
Message queue
OpenStack使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack支持多种消息队列服务,包括RabbitMQ,Qpid和ZeroMQ。这里我们安装RabbitMQ,因为大多数发行版都支持它。
1、安装rabbitmsqapt -y install rabbitmq-server
2、创建openstack用户,密码为openstackrabbitmqctl add_user openstack openstack
3、允许openstack用户配置和读写rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Memcached
OpenStack的各个服务的身份认证服务使用Memcached缓存令牌。memcached服务通常在控制器节点上运行。对于生产部署,我们建议启用防火墙,身份验证和加密的组合来保护它。
1、安装memcachedapt -y install memcached python-memcache
2、编辑/etc/memcached.conf文件-l 127.0.0.1
修改为-l 0.0.0.0
3、重启memcachedservice memcached restart
4、测试
1 |
telnet controller 11211 |
Etcd
OpenStack服务可能使用Etcd,它是一个可靠的分布式键值存储工具。用于分布式密钥锁定,存储配置,跟踪服务的实时性等。同样安装在控制节点即可。
1、安装etcdapt -y install etcd
2、查看版本etcd -version
,这里看到是2.2.5。按照Etcd for Ubuntu文档配置的话,最终会失败,所以,我们换一种配置方法。
3、查看服务状态etcdctl member list
应该会看到:
1 |
ce2a822cea30bfca: name=controller peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://localhost:2379,http://localhost:4001 |
4、官方文档给出的/etc/etcd/etcd.conf.yml文件内容为:
1 |
name: controller |
参考etcd.conf.yml,我们在/etc/default/etcd的最后添加:
1 |
ETCD_NAME="controller" |
5、设置开机启动systemctl enable etcd
6、重启etcdsystemctl restart etcd
7、查看服务状态etcdctl member list
会看到发生了变化:
1 |
ce2a822cea30bfca: name=controller peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://127.0.0.1:2379,http://controller:2379 |
8、在控制节点和计算节点测试curl http://controller:2379/v2/stats/leader
可以看到:
1 |
{"leader":"ce2a822cea30bfca","followers":{}} |
后记
如果修改了/etc/hosts中的controller对应的IP,那么需要重启memcached和etcd,因为它们的配置中使用了主机名而不是IP。
Ubuntu16手动安装OpenStack的更多相关文章
- Ubuntu16手动安装OpenStack——glance篇--转
全文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-glance/ 目标 紧接着<Ubuntu16手动安装OpenStack—— ...
- Ubuntu16手动安装OpenStack——nova篇。。转
前言: 本文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-nova/ ,过程非常的详细,作者也说本实验最终失败,因为课程要求我们只要 ...
- Ubuntu16手动安装OpenStack——keystone篇
本博客来自于https://www.voidking.com/dev-ubuntu16-manual-openstack-keystone/ 赶紧做笔记 keystone简介 OpenStack身份识 ...
- ubuntu16.0 安装 openstack
主要参考官方文档:https://docs.openstack.org/liberty/zh_CN/install-guide-ubuntu/environment-nosql-database.ht ...
- 手动安装OpenStack Mistral
Prepare packages: $ sudo apt-get install python-dev python-setuptools python-pip libffi-dev libxslt1 ...
- Fuel快速安装OpenStack
1 介绍 1.1 关于 Mirantis Mirantis,一家很牛逼的openstack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM ...
- Linux(CentOS、Ububtu)一键安装Openstack及其它参考文档汇总
原文链接 http://www.aboutyun.com/thread-10920-1-1.html openstack相关资料 CentOS下一键安装Openstack http://blog. ...
- Ubuntu16.04 安装openjdk-7-jdk
Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...
- devstack安装openstack newton版本
准备使用devstack安装openstack N版,搞一套开发环境出来.一连整了4天,遇到各种问题,各种错误,一直到第4天下午4点多才算完成. 在这个过程中感觉到使用devstack搭建openst ...
随机推荐
- codeforces gym100801 Problem J. Journey to the “The World’s Start”
传送门:https://codeforces.com/gym/100801 题意: 小明坐地铁,现在有n-1种类型的地铁卡卖,现在小明需要买一种地铁票,使得他可以在t的时间内到达终点站,地铁票的属性为 ...
- 第二阶段:4.商业需求文档MRD:4.PRD-用例和规则
类似之前的泳道图 可以在下面添加一些描述 有时候用图还是会有一些限制 不能够很好的表达
- Zookeeper面试总结,年后涨薪轻而易举
此文不是入门教程,是需要一定的zookeeper基础的 zookeeper应用 同意命名服务 在分布式系统中,各个系统都有可能做为服务提供者,可以向外提供服务,这个时候就需要对服务的名字进行统一规划, ...
- $Poj1934\ Trip$ 线性$DP+$搜索
Luogu Description 爱丽丝和鲍伯想去度假,他们每个人都制定了一个参观城市的清单,该地区正好有26个城市,因此它们被编码为小写字母“a”到“z”.清单上可能重复出现某个城市.因为他们想一 ...
- CSS布局方式--inline-block 布局
布局其实就是想办法怎样将一些元素横向的排列起来,纵向由于块级元素的存在会自动占据一行. inline-block 元素会占据一行而且可以调整宽高很适合将这些元素排列在一行,而且使用 inline-bl ...
- 机器学习——EM算法与GMM算法
目录 最大似然估计 K-means算法 EM算法 GMM算法(实际是高斯混合聚类) 中心思想:①极大似然估计 ②θ=f(θold) 此算法非常老,几乎不会问到,但思想很重要. EM的原理推导还是蛮复杂 ...
- UI自动化和selenium相关以及八大定位
一.UI自动化相关 1. UI自动化的本质(重点) 定位元素→操作元素→模拟页面操作→断言→测试报告 2. 适合UI自动化的场景 UI自动化的前提条件 (1)需求不能频繁变动 (2)UI稳定(UI自动 ...
- Okhttp解析—Okhttp概览
Okhttp解析-Okhttp概览 Okhttp作为目前Android使用最为广泛的网络框架之一,我们有必要去深入了解一下,本文是Okhttp解析的第一篇,主要是从宏观上认识Okhttp整个架构是如何 ...
- 力扣208——实现 Trie (前缀树)
这道题主要是构造前缀树节点的数据结构,帮助解答问题. 原题 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = ...
- yarn详细入门教程(转载)
简介Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具.就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 n ...