kolla安装Queens版本OpenStack(ceph后端)
OpenStack all-in-one部署:
本次部署为OpenStack Queens版本部署,使用All-in-one,单节点部署。
物理资源:8核,32GB,硬盘400GB(3个盘),2网卡。
其中CPU核心数和内存尽量高,如果资源有限,可以在上面的标准上进行降低,添加三块硬盘,是为了做测试使用,下文会有硬盘操作。
1.网卡个数和状态:
# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.89.127.123 netmask 255.255.255.0 broadcast 10.89.127.255
inet6 fe80::250:56ff:feaf:7db prefixlen 64 scopeid 0x20<link>
ether 00:50:56:af:07:db txqueuelen 1000 (Ethernet)
RX packets 1910 bytes 182468 (178.1 KiB)
RX errors 0 dropped 10 overruns 0 frame 0
TX packets 110 bytes 18260 (17.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::250:56ff:feaf:cd32 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:af:cd:32 txqueuelen 1000 (Ethernet)
RX packets 766 bytes 60800 (59.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 2708 (2.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
部署all-in-one模式,需要两张网卡,在此案例中使用ens160作为管理网,ens192作为业务网,ens192不需要配置ip,只需要ifup。
2.主机名设置
hostnamectl set-hostname queens
3.环境初始化
3.1关闭NetworkManager,firewalld,selinux
关闭NetworkManager
# systemctl stop NetworkManager
# systemctl disable NetworkManager
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭selinux
# setenforce 0
# getenforce 0
# vi /etc/selinux/config
改为
SELINUX=disabled
3.2查看是否开启虚拟化
egrep "vmx|svm" /proc/cpuinfo
或者
cat /proc/cpuinfo
找到flags部分,如果其中输出有SVM或VMX,表明CPU支持虚拟化技术
3.3配置epel源安装基础包
# yum install epel-release
# yum install axel vim git curl wget lrzsz gcc python-devel python-pip
4.安装docker
# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 默认安装最新版
# yum install -y docker-ce
4.1配置docker
# 1、如果不设置此项,kolla-ansible 部署neutron-dhcp-agent 容器的时候会失败,并抛出 APIError/HTTPError
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
# 2、更改国内源、指定文件系统格式
vim /usr/lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd
# 设置国内的daocloud.io镜像源,指定overlay2系统格式,docker默认就是overlay2
ExecStart=/usr/bin/dockerd --registry-mirror=http://f2d6cb40.m.daocloud.io --storage-driver=overlay2
4.2启动docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
systemctl status docker
docker info
5.安装ansible
5.1安装ansible
升级pip
pip install --upgrade pip
ansible版本必须在2.0以上
yum -y install ansible
下载kolla-ansible,并安装配置
git clone https://github.com/openstack/kolla-ansible -b stable/queens
cd kolla-ansible/
cp -r etc/kolla/ /etc/kolla/
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple

解决:
pip install --upgrade pyyaml
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
5.2配置globals.yml文件
vim /etc/kolla/globals.yml
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "queens"
kolla_internal_vip_address: "10.89.127.123"
docker_namespace: "kolla"
network_interface: "ens160"
neutron_external_interface: "ens192"
enable_haproxy: "no"
nova_compute_virt_type: "qemu"
#开启freezer:
enable_freezer:"yes"
enable_heat:"yes"
enable_horizon_freezer:"{{ enable_freezer | bool }}"
#开启cinder:
enable_cinder: "yes"
说明:这里我直接在docker hub上拉镜像。如果是在虚拟机里安装 Kolla,希望可以在 OpenStack 平台上创建虚拟机,那么你需要在 globals.yml 文件中把 nova_compute_virt_type 配置项设置为 qemu,默认是 KVM。
5.3ceph配置
#创建文件
vim /etc/kolla/config/ceph.conf
[global]
osd pool default size = 1
osd pool default min size = 1
#查看硬盘标签
lsblk
#给硬盘打ceph标签
parted /dev/sdc -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
配置globals文件
enable_ceph: "yes"
enable_ceph_rgw: "yes"
#enable_swift: "no"
enable_ceph_rgw_keystone: "yes"
5.4swift配置
给硬盘打swift标签
index=0
for d in sdb; do
# 因为我这就有一块用于swift存储的盘sde。
parted /dev/${d} -s -- mklabel gpt mkpart KOLLA_SWIFT_DATA 1 -1
sudo mkfs.xfs -f -L d${index} /dev/${d}1
(( index++ ))
done
生成rings,执行脚本
STORAGE_NODES=(10.89.127.123)
KOLLA_SWIFT_BASE_IMAGE="kolla/centos-source-swift-base:queens"
mkdir -p /etc/kolla/config/swift
# Object ring
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/object.builder create 10 3 1
for node in ${STORAGE_NODES[@]}; do
for i in {0..2}; do
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/object.builder add r1z1-${node}:6000/d${i} 1;
done
done
# Account ring
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/account.builder create 10 3 1
for node in ${STORAGE_NODES[@]}; do
for i in {0..2}; do
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/account.builder add r1z1-${node}:6001/d${i} 1;
done
done
# Container ring
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/container.builder create 10 3 1
for node in ${STORAGE_NODES[@]}; do
for i in {0..2}; do
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/container.builder add r1z1-${node}:6002/d${i} 1;
done
done
for ring in object account container; do
docker run \
--rm \
-v /etc/kolla/config/swift/:/etc/kolla/config/swift/ \
$KOLLA_SWIFT_BASE_IMAGE \
swift-ring-builder \
/etc/kolla/config/swift/${ring}.builder rebalance;
done
配置globals文件
vim /etc/kolla/globals.yml
enable_ceph: "no"
enable_ceph_rgw: "no"
enable_swift: "yes"
enable_ceph_rgw_keystone: "no"
6.安装kolla
生成密码文件
kolla-genpwd
设置密码
#配置 `keystone` 管理员用户的密码
vim /etc/kolla/passwords.yml
keystone_admin_password: password
同时,也是登录 `Dashboard,admin` 使用的密码,你可以根据自己需要进行修改。
拉取镜像
#从`docker hub`上`pull`镜像
kolla-ansible pull
部署openstack
#部署,时间较长
kolla-ansible deploy
创建环境变量
#创建环境变量,文件在/etc/kolla中
kolla-ansible post-deploy
7.安装 OpenStack Client 端
pip install python-openstackclient

解决办法:
pip install --upgrade decorator

强制升级:
sudo pip install --ignore-installed +模块名
sudo pip install --ignore-installed ipaddress
编辑init-runonce文件,设置public network
# vim /usr/share/kolla-ansible/init-runonce
EXT_NET_CIDR='10.89.127.0/24'
EXT_NET_RANGE='start=10.89.127.110,end=10.89.127.250'
EXT_NET_GATEWAY='10.89.127.254'
加载OpenStack CLI所需的环境变量
source /etc/kolla/admin-openrc.sh
8.初始化部署
cd /usr/share/kolla-ansible/ && ./init-runonce
登陆Dashboard
用浏览器访问10.89.127.123登陆Dashboard
kolla安装Queens版本OpenStack(ceph后端)的更多相关文章
- kolla部署openstack多节点高可用并对接ceph后端存储(17)
部署节点执行: 安装基础包和docker yum install python-devel libffi-devel gcc openssl-devel git python-pip -y 升级一下 ...
- 基于openstack stable queens版本阅读解析
基于openstack stable queens版本阅读解析 基于 centos7.5 的linux系统 架构 如下所示,为cinder的官方架构说明: 这里写图片描述 各个组件介绍如下: - DB ...
- OpenStack Queens版本Horizon定制化开发
工具环境 1.VMware workstation 12+: 2.Ubuntu系统+Linux Pycharm: 3.OpenStack Queens版本Horizon代码: 问题及解决 1.项目代码 ...
- openstack安装newton版本keyston部署(一)
一.部署环境: 两台centos7, 内存2G 控制计算节点: Hostname1: ip:172.22.0.218 计算节点及存储节点 Hostnam ...
- 使用packstack安装pike版本的openstack
最近由于工作需要,需要调研安装pike版本的gnocchi.由于ceilometer与gnocchi版本的强相关性,所以需要部署一个同一版本的openstack环境,在同事的推荐下使用了packsta ...
- 通过ceph-deploy安装不同版本ceph
之前有在论坛写了怎么用 yum 安装 ceph,但是看到ceph社区的群里还是有人经常用 ceph-deploy 进行安装,然后会出现各种不可控的情况,虽然不建议用ceph-deploy安装,但是既然 ...
- yum安装指定版本ceph包
安装ceph包的方式有很多,这里讲的是从官网直接通过yum源的安装方式进行安装 yum源对应的地址为 http://download.ceph.com/rpm-hammer/el6/x86_64/ 怎 ...
- 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]
理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...
- 理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
随机推荐
- 一个milller_rabin模板
#include <iostream> #include <cstdlib> #include <stdio.h> #include <algorithm&g ...
- linux系列(五):rm命令
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西 ...
- 浅谈CLOSE_WAIT
浅谈CLOSE_WAIT 发表于2016-01-19 TCP 有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 TIME_WAIT 和 FIN_WAIT1,最近时不时听人提起 CLOSE_W ...
- (转)实验文档5:企业级kubernetes容器云自动化运维平台
部署对象式存储minio 运维主机HDSS7-200.host.com上: 准备docker镜像 镜像下载地址 复制 12345678910111213141516 [root@hdss7-200 ~ ...
- BigDecimal进行除法运算时的坑
循环小数输出的坑 BigDecimal做除法时如果出现除不尽(循环小数)的情况,会抛异常: BigDecimal a = new BigDecimal("1"); System ...
- JS 定时器的4种写法及介绍
JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下setTiemout.setInterval.setImmediate.requestAnimationFrame. 一.什么是定时 ...
- ArcGIS超级工具SPTOOLS1.7升级说明
ArcGIS超级工具1.7升级说明:多了:5个工具,总87工具. 5.11 数据打包 44 5.11.1. mxd批量打包MPK:对一个文件夹所有MXD打包MPK 5.11.2. mxd文档发 ...
- arcgis python 表属性转html
import arcpy import sys import string import os tablePath = arcpy.GetParameterAsText(0) filePath = a ...
- oracle中的trigger
https://blog.csdn.net/indexman/article/details/8023740/ https://www.cnblogs.com/sharpest/p/7764660.h ...
- Golang基础笔记
<基础> Go语言中的3个关键字用于标准的错误处理流程: defer,panic,recover. 定义一个名为f 的匿名函数: Go 不支持继承和重载. Go的goroutine概念:使 ...