简单介绍:

Kolla 是 OpenStack 大帐篷模式下的官方子项目之一,其主要目标是通过利用 Docker 容器以及 Ansible 自动化部署工具,来为 OpenStack 云平台提 供一个简单而灵活的部署和管理的方式。它允许完全的自主化,使得用户可以根据自身的特殊需求自行修改注: 社区从ocata版本开始将kolla代码拆分成kolla和kolla-ansibe两个仓库以明细分工
kolla用来build OpenStack镜像
kolla-ansibe用来部署任一 OpenStack 服务的配置项。

宿主机配置建议

  • 2 个或以上网卡
  • 至少 8GB 内存
  • 至少 40GB 磁盘空间

这里需要解释的是,在 OpenStack 中,宿主机上不同网卡的作用一般可归为如下几种:

  • eth0 默认的第一块网卡,可作为管理网络使用,即登录管理本宿主机,或不同宿主机间通信。
  • eth1 可作为数据网络(VLAN/VXLAN)使用,不同虚拟机之间进行通信时(东西向流量),经过此物理网卡。
  • eth2 可作为外部网络使用,即当虚拟机需要与外网进行通信时(南北向流量),经过此物理网卡。
  • eth3 可作为存储网络使用,即当虚拟机与后端存储设备进行交互时,经过此物理网卡。

当然,理论上如果只使用一块网卡的话也是可以的,只是将网络流量这样细分开来后,可分担物理网卡的压力,也便于后期的问题定位。 根据 Kolla 的配置项解释,此处我们暂时使用两块网卡:

  • eth0 192.168.0.10 作为管理网络 + 数据网络 + 存储网络,用于 OpenStack 集群内部通信
  • eth1 172.16.0.10 作为外部网络,用于虚拟机与外部通信

安装

关闭selinux,firewald

centos7.3

初始配置

yum install -y epel-release

yum upgrade -y

yum install -y python-pip

pip install –U pip

yum install -y ansible

安装依赖

yum install -y python-devel libffi-devel openssl-devel gcc git  -y

hosts文件

[root@openstack tools]# systemctl stop firewalld
[root@openstack tools]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.64.8.176 kolla.openstack.com openstack.com openstack

安装docker

curl -sSL https://get.docker.io | bash

查看版本(查看)

[root@kolla ~]# docker --version
Docker version 17.06.0-ce, build 02c1d87

修改MountFlags选项

mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF

开启docker服务

systemctl daemon-reload&&systemctl enable docker &&systemctl start docker

下载kolla代码

[root@kolla ~]#git clone https://github.com/openstack/kolla.git

[root@kolla ~]# cd kolla/

查看远程分支

[root@kolla kolla]# git branch -a
* (detached from origin/stable/newton)
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/stable/newton
remotes/origin/stable/ocata

# 切换至 stable/liberty 分支

[root@kolla kolla]#git checkout remotes/origin/stable/newton

安装依赖(下面步骤在 Kolla 项目的目录操作)

[root@kolla kolla]#pip install -r requirements.txt -r test-requirements.txt

[root@kolla kolla]#pip install tox

生成配置文件

[root@kolla kolla]#tox -e genconfig

[root@kolla kolla]#cp -rv etc/kolla /etc/

[root@kolla kolla]# ls /etc/kolla/

globals.yml   kolla-build.conf    passwords.yml

生成镜像(这个步骤很重要,docker镜像build不出来后面部署也会失败,这里也可以不用加-p镜像全下载)

[root@kolla kolla]#./tools/build.py -p default

参数中的 -p default 是指定了只 build 主要的 image, 包括 : mariadb, rabbitmq, cinder, ceilometer, glance, heat, horizon, keystone, neutron, nova, swift 等 . 这些可以只生成的 kolla-build.conf 里找到。

镜像超级多,这只是上面的基础镜像,如果不加-p直接build会生产非常多的镜像

编辑globals.yml

[root@kolla kolla]# vi /etc/kolla/globals.yml

kolla_internal_vip_address: "10.64.8.177"    //haproxy的虚拟IP,需要用户可以直接通信

neutron_external_interface: "ens224" //按照openstack文档配置成vm的网卡

network_interface: "ens192"               //这个API服务将默认,vxlan流量也进过这个网卡,all-in-one这里就无所谓了,我就随便写了一个

openstack_release: "3.0.4"                //docker镜像tag版本,看你的是多少这里就该多少
kolla_install_type: "binary"                 //docker pull下来的镜像类型分为binary或source,docker ps上镜像的名字上有体现

keepalived_virtual_router_id: “51”          //keepaliverd id

生成密码文件passwords.yml

这个密码文件可以使用工具自动生成,也可以手动输入但是手动输入需要注意格式,在:后需要空一格再输入;而且ssh_key也比较麻烦所以推荐使用工具自动生成但是直接输入
[root@kolla kolla]#.tox/genconfig/bin/kolla-genpwd

修改dashboard登录密码

[root@kolla kolla]#vi /etc/kolla/passwords.yml

keystone_admin_password: admin

检查配置

[root@kolla kolla]#./tools/kolla-ansible prechecks

开始部署

[root@kolla kolla]#./kolla-ansible deploy

部署完成:

生成admin.sh文件

[root@openstack]# kolla-ansible post-deploy
[root@openstack ~]# cat /etc/kolla/admin-openrc.sh
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://10.64.8.177:35357/v3
export OS_IDENTITY_API_VERSION=3

kolla自带了一个初始化openstack的脚本:

[root@openstack ~]# vi kolla/tools/init-runonce

这个就是float  ip配置

neutron subnet-create --name 1-subnet --disable-dhcp --allocation-pool start=10.64.8.90,end=10.64.8.95 public1 10.64.8.0/24 --gateway 10.64.8.254

然后运行战歌脚本即可。

部署中的 一些错误:

 msg: Unexpected failure during module execution.
An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 119, in run
res = self._execute()
File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 431, in _execute
self._task.post_validate(templar=templar)
File "/usr/lib/python2.7/site-packages/ansible/playbook/task.py", line 248, in post_validate
super(Task, self).post_validate(templar)
File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 371, in post_validate
value = templar.template(getattr(self, name))
File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 359, in template
d[k] = self.template(variable[k], preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides)
File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 331, in template
result = self._do_template(variable, preserve_trailing_newlines=preserve_trailing_newlines, escape_backslashes=escape_backslashes, fail_on_undefined=fail_on_undefined, overrides=overrides)
File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 507, in _do_template
res = j2_concat(rf)
File "<template>", line 11, in root
File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 740, in do_list
return list(value)
File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 839, in do_map
for item in seq:
File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 931, in _select_or_reject
if modfunc(func(transfunc(item))):
File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 925, in <lambda>
name, item, args, kwargs)
File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 438, in call_test
raise TemplateRuntimeError('no test named %r' % name)
TemplateRuntimeError: no test named 'equalto' fatal: [worker-02]: FAILED! => {
"failed": true,
"msg": "Unexpected failure during module execution.",
"stdout": ""
}

jinjia2版本问题更新一下:

pip install -U Jinja2

重新运行kolla-ansible deploy

注: 社区从ocata版本开始将kolla代码拆分成kolla和kolla-ansibe两个仓库以明细分工
kolla用来build OpenStack镜像
kolla-ansibe用来部署

kolla部署all-in-one环境(N版)的更多相关文章

  1. Ubuntu 18.04.1 LTS + kolla-ansible 部署 openstack Rocky all-in-one 环境

    1. kolla 项目介绍 简介 kolla 的使命是为 openstack 云平台提供生产级别的.开箱即用的自动化部署能力. kolla 要实现 openetack 部署分为两步,第一步是制作 do ...

  2. OpenStack(二)——使用Kolla部署OpenStack-allinone云平台

    (1).Kolla概述 Kolla是OpenStack下用于自动化部署的一个项目,它基于docker和ansible来实现,其中docker主要负责镜像制作和容器管理,ansible主要负责环境的部署 ...

  3. Database基础(七):部署集群基础环境、MySQL-MMM架构部署、MySQL-MMM架构使用

    一.部署集群基础环境 目标: 本案例要求为MySQL集群准备基础环境,完成以下任务操作: 数据库授权 部署MySQL双主多从结构 配置本机hosts解析记录 方案: 使用4台RHEL 6虚拟机,如下图 ...

  4. Serverless 初体验:快速开发与部署一个Hello World(Java版)

    昨天被阿里云的这个酷炫大屏吸引了! 我等85后开发者居然这么少!挺好奇到底什么鬼东西都是90.95后在玩?就深入看了一下. 这是一个关于Serverless的体验活动,Serverless在国内一直都 ...

  5. 【Yeoman】热部署web前端开发环境

    本文来自 “简时空”:<[Yeoman]热部署web前端开发环境>(自动同步导入到博客园) 1.序言 记得去年的暑假看RequireJS的时候,曾少不更事般地惊为前端利器,写了<Sp ...

  6. Ubuntu 下部署asp.net运行环境

    在Ubuntu下部署asp.net运行环境,网上教程很多,基本都是编译Mono源码,然后安装jexus.但是可能是我最近RP不太好,编译Mono源码一直都是失败,无奈之下只好找另外的方法安装了. 网上 ...

  7. Delphi XE-Windows下配置开发环境 (Android版/IOS)

    Delphi XE-Windows下配置开发环境  (Android版/IOS)   http://www.52jike.com/thread-1-1-1.html Delphi XE5的Androi ...

  8. CentOS上部署Django+Nginx+Uwsgi环境

    在CentOS上部署Django+Nginx+Uwsgi环境 奇谭  2016-09-01 评论  Linux  python django nginx uwsgi VirtualEnv的作用:创建隔 ...

  9. 批量部署Hadoop集群环境(1)

    批量部署Hadoop集群环境(1) 1. 项目简介: 前言:云火的一塌糊涂,加上自大二就跟随一位教授做大数据项目,所以很早就产生了兴趣,随着知识的积累,虚拟机已经不能满足了,这次在服务器上以生产环境来 ...

  10. 使用 docker 部署常用的开发环境

    使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便. 前段时间电脑之前返厂修了,回来之后所有的软件都 ...

随机推荐

  1. C++/C中的struct和typedef struct用法和区别

    struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...

  2. Oracle GoldenGate常用参数

    OGG(Oracle GoldenGate)参数介绍 所有的GoldenGate进程均有参数文件 Manager Extract Replicat Utilities 所有参数均有缺省配置 实际应用只 ...

  3. Samba远程代码执行漏洞(CVE-2017-7494)复现

    简要记录一下Samba远程代码执行漏洞(CVE-2017-7494)环境搭建和利用的过程,献给那些想自己动手搭建环境的朋友.(虽然已过多时) 快捷通道:Docker ~ Samba远程代码执行漏洞(C ...

  4. 20165329 Java实验二:面向对象编程

    实验内容: 面向对象程序设计-1 实验要求: 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图 实验步骤: 1.按照老师博客的要求新建一个MyUtil项目 在src内新建ja ...

  5. Python——杂记

    python 最近出错总结: 1.而for..in ..中不要用else if  x in y:     print  else:     print2.def fibs(num): ...     ...

  6. Oracle 11.2.0.4在线(Online mode)打补丁14084247解决WRH$_ACTIVE_SESSION_HISTORY不会自动切割的问题

      安装了Oracle Database Release 11.2.0.4之后,发现WRH$_ACTIVE_SESSION_HISTORY始终不会自动分割删除,   后来才发现需要应用补丁:14084 ...

  7. springboot集成mybatis环境搭建以及实现快速开发微服务商品模块基本的增删改查!

    之前学习了springboot和mybatis3的一些新特性,初步体会了springboot的强大(真的好快,,,,,),最近趁着复习,参考着以前学习的教程,动手写了一个springboot实战的小例 ...

  8. Java Dom对XML的解析和修改操作

    与Dom4J和JDom对XML的操作类似,JDK提供的JavaDom解析器用起来一样方便,在解析XML方面Java DOM甚至更甚前两者一筹!其不足之处在于对XML的增删改比较繁琐,特开篇介绍... ...

  9. 87.在ModelSim中添加Xilinx ISE仿真库

    在ModelSim中添加Xilinx ISE仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\ ...

  10. gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化【转】

    转自:http://blog.csdn.net/qinrenzhi/article/details/78334677 相关博客http://blog.chinaunix.net/uid-2495495 ...