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后端)的更多相关文章

  1. kolla部署openstack多节点高可用并对接ceph后端存储(17)

    部署节点执行: 安装基础包和docker yum install python-devel libffi-devel gcc openssl-devel git python-pip -y 升级一下 ...

  2. 基于openstack stable queens版本阅读解析

    基于openstack stable queens版本阅读解析 基于 centos7.5 的linux系统 架构 如下所示,为cinder的官方架构说明: 这里写图片描述 各个组件介绍如下: - DB ...

  3. OpenStack Queens版本Horizon定制化开发

    工具环境 1.VMware workstation 12+: 2.Ubuntu系统+Linux Pycharm: 3.OpenStack Queens版本Horizon代码: 问题及解决 1.项目代码 ...

  4. openstack安装newton版本keyston部署(一)

    一.部署环境:     两台centos7,  内存2G 控制计算节点: Hostname1:                    ip:172.22.0.218 计算节点及存储节点 Hostnam ...

  5. 使用packstack安装pike版本的openstack

    最近由于工作需要,需要调研安装pike版本的gnocchi.由于ceilometer与gnocchi版本的强相关性,所以需要部署一个同一版本的openstack环境,在同事的推荐下使用了packsta ...

  6. 通过ceph-deploy安装不同版本ceph

    之前有在论坛写了怎么用 yum 安装 ceph,但是看到ceph社区的群里还是有人经常用 ceph-deploy 进行安装,然后会出现各种不可控的情况,虽然不建议用ceph-deploy安装,但是既然 ...

  7. yum安装指定版本ceph包

    安装ceph包的方式有很多,这里讲的是从官网直接通过yum源的安装方式进行安装 yum源对应的地址为 http://download.ceph.com/rpm-hammer/el6/x86_64/ 怎 ...

  8. 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]

    理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...

  9. 理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture]

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

随机推荐

  1. linux产看磁盘信息命令-lsblk,blkid,dumpe2fs

    一.lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息.块设备有硬盘,闪存盘,cd-ROM等等.lsblk命令包含在util-linux-ng包中 ...

  2. 数据结构实验之二叉树六:哈夫曼编码(SDUT 3345)

    题解:离散中的"最小生成树(最优树)". #include <bits/stdc++.h> using namespace std; void qusort(int l ...

  3. s-w-i-p-e-r做一个-老-唬-机-抽-蒋

    <template> <div class="selfLotteryBox"> <div class="row"> < ...

  4. Java核心复习—— 原子性、有序性与Happens-Before

    一. 产生并发Bug的源头 可见性 缓存导致的可见性问题 原子性 线程切换带来的原子性问题 有序性 编译优化带来的有序性问题 上面讲到了 volatile 与可见性,本章再主要讲下原子性.有序性与Ha ...

  5. postman测试API

    首先创建环境变量 再次在请求参数中,可以应用环境变量,只需要在地址中引用环境变量即可 将返回的参数设置到环境变量中 如已经设置好环境变量,在认证中,选择Bearer Token,然后设置Token为环 ...

  6. java JSON的使用和解析

    There is no royal road to learning. 博主:JavaPanda https://www.cnblogs.com/LearnAndGet/p/10009646.html ...

  7. <HTML/CSS>BFC原理剖析

    本文讲了BFC的概念是什么: BFC的约束规则:咋样才能触发生成新的BFC:BFC在布局中的应用:防止margin重叠(塌陷,以最大的为准): 清除内部浮动:自适应两(多)栏布局. 1. BFC是什么 ...

  8. JS pc端和移动端共同实现复制到剪贴板功能实现

    JS pc端和移动端实现复制到剪贴板功能实现 在网页上复制文本到剪切板,一般是使用JS+Flash结合的方法,网上有很多相关文章介绍.随着 HTML5 技术的发展,Flash 已经在很多场合不适用了, ...

  9. ISO/IEC 9899:2011 条款6.2.5——类型

    6.2.5 类型 1.存储在一个对象中的值或由一个函数所返回的值的意义由用于访问该对象的表达式的类型来确定.(声明为一个对象的一个标识符是最简单的这种表达式:其类型在标识符的声明中指定.)类型被划分为 ...

  10. mysql排序自段为字符串类型问题解决

    677     000.000.000.000 2018-01-09 22:20:58 编辑 删除 锁定 199 666/777/888套餐标配     000.000.000.000 2018-01 ...