记录大佬的博客全文转载于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
2
192.168.56.110  controller
192.168.56.111 compute

设置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、安装chrony
apt -y install chrony

2、配置chrony
vim /etc/chrony/chrony.conf

取消两处注释:

1
2
allow 0/0
allow ::/0

3、重启chrony
service chrony restart

计算节点

1、安装chrony
apt -y install chrony

2、配置chrony
vim /etc/chrony/chrony.conf
注释修改如下:

1
2
#pool 2.debian.pool.ntp.org offline iburst
server controller iburst

3、重启chrony
service 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-client
apt -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.cnf
vim /etc/mysql/mariadb.conf.d/50-server.cnf

命令模式下输入:set nu显示行号:

1
2
3
4
5
# line 29: change
bind-address = 0.0.0.0
# line 105: change
character-set-server = utf8
#collation-server = utf8mb4_general_ci

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、安装rabbitmsq
apt -y install rabbitmq-server

2、创建openstack用户,密码为openstack
rabbitmqctl add_user openstack openstack

3、允许openstack用户配置和读写
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Memcached

OpenStack的各个服务的身份认证服务使用Memcached缓存令牌。memcached服务通常在控制器节点上运行。对于生产部署,我们建议启用防火墙,身份验证和加密的组合来保护它。

1、安装memcached
apt -y install memcached python-memcache

2、编辑/etc/memcached.conf文件
-l 127.0.0.1修改为-l 0.0.0.0

3、重启memcached
service memcached restart

4、测试

1
2
3
telnet controller 11211
stats
quit

Etcd

OpenStack服务可能使用Etcd,它是一个可靠的分布式键值存储工具。用于分布式密钥锁定,存储配置,跟踪服务的实时性等。同样安装在控制节点即可。

1、安装etcd
apt -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
2
3
4
5
6
7
8
9
name: controller
data-dir: /var/lib/etcd
initial-cluster-state: 'new'
initial-cluster-token: 'etcd-cluster-01'
initial-cluster: controller=http://controller:2380
initial-advertise-peer-urls: http://controller:2380
advertise-client-urls: http://controller:2379
listen-peer-urls: http://0.0.0.0:2380
listen-client-urls: http://controller:2379

参考etcd.conf.yml,我们在/etc/default/etcd的最后添加:

1
2
3
4
5
6
7
8
9
ETCD_NAME="controller"
ETCD_DATA_DIR="/var/lib/etcd/default"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER="controller=http://controller:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://controller:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://controller:2379,http://127.0.0.1:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://controller:2379,http://127.0.0.1:2379"

5、设置开机启动
systemctl enable etcd

6、重启etcd
systemctl 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的更多相关文章

  1. Ubuntu16手动安装OpenStack——glance篇--转

    全文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-glance/ 目标 紧接着<Ubuntu16手动安装OpenStack—— ...

  2. Ubuntu16手动安装OpenStack——nova篇。。转

    前言: 本文转自https://www.voidking.com/dev-ubuntu16-manual-openstack-nova/ ,过程非常的详细,作者也说本实验最终失败,因为课程要求我们只要 ...

  3. Ubuntu16手动安装OpenStack——keystone篇

    本博客来自于https://www.voidking.com/dev-ubuntu16-manual-openstack-keystone/ 赶紧做笔记 keystone简介 OpenStack身份识 ...

  4. ubuntu16.0 安装 openstack

    主要参考官方文档:https://docs.openstack.org/liberty/zh_CN/install-guide-ubuntu/environment-nosql-database.ht ...

  5. 手动安装OpenStack Mistral

    Prepare packages: $ sudo apt-get install python-dev python-setuptools python-pip libffi-dev libxslt1 ...

  6. Fuel快速安装OpenStack

    1 介绍 1.1 关于 Mirantis Mirantis,一家很牛逼的openstack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM ...

  7. Linux(CentOS、Ububtu)一键安装Openstack及其它参考文档汇总

    原文链接  http://www.aboutyun.com/thread-10920-1-1.html openstack相关资料 CentOS下一键安装Openstack  http://blog. ...

  8. Ubuntu16.04 安装openjdk-7-jdk

    Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...

  9. devstack安装openstack newton版本

    准备使用devstack安装openstack N版,搞一套开发环境出来.一连整了4天,遇到各种问题,各种错误,一直到第4天下午4点多才算完成. 在这个过程中感觉到使用devstack搭建openst ...

随机推荐

  1. 如何用python“优雅的”调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js“斗争”的过程! 当然,本文仅 ...

  2. pg_dump

    一.PostgreSQL提供的一个工具 pg_dump逻辑导出数据,生成sql文件或其他格式文件,pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复数据至导出时间点. 二.pg_dump ...

  3. PyTorch深度学习:60分钟入门(Translation)

    这是https://zhuanlan.zhihu.com/p/25572330的学习笔记. Tensors Tensors和numpy中的ndarrays较为相似, 因此Tensor也能够使用GPU来 ...

  4. Effective TestStand Operator Interfaces

    目录 为什么要使用操作员界面? 是什么决定一个好的界面? 用户的类型 和 界面的必要元素 TestStand 架构 TestStand 自带的例子 自定义用户界面 TestStand 提供的三个管理控 ...

  5. 初识 Kafka Producer 生产者

    目录 1.KafkaProducer 概述 2.KafkaProducer 类图 3.KafkaProducer 简单示例 温馨提示:整个 Kafka Client 专栏基于 kafka-2.3.0 ...

  6. 如何保存HTTPrequestbase和CloseableHttpResponse

    在测试过程中,有一个重要的工作就是保存记录"现场",以方便开发人员更快发现BUG解决问题.在接口测试中更是如此,如果开发人员能够根据BUG的信息直接复现请求,是一件很方便的事情.为 ...

  7. c++简单实现二叉树

    专业术语: 节点 父节点 根节点 子孙 堂兄弟 深度: 从根节点到最底层节点的层数称为深度 叶子节点: 没有子节点的节点称为叶子节点 非终端节点: 实际就是非叶子节点 度: 子节点的个数称为度 树的分 ...

  8. 【题解】P2521 [HAOI2011]防线修建(动态凸包)

    [题解]P2521 [HAOI2011]防线修建(动态凸包) 凸包是易插入不好删除的东西,按照剧情所以我们时光倒流 然后问题就是维护凸包的周长,支持加入 本来很简单,但是计算几何就是一些小地方经验不足 ...

  9. IDEA模板快捷键

    2.1 psvm:可生成 main 方法 2.2 sout:System.out.println() 快捷输出 类似的: soutp=System.out.println("方法形参名 = ...

  10. 记一次 爬取LOL全皮肤原画保存到本地的实例

    #爬取lol全英雄皮肤 import re import traceback # 异常跟踪 import requests from bs4 import BeautifulSoup #获取html ...