在 Kolla-Ansible 使用 Custom Config

在上篇文章介绍了 Kolla 跟 Kolla-Ansible 部署 OpenStack 的方法。在设定的部分全部都是在 globals.yml 中设定,其他则交由 Kolla-Ansible 中的 template 处理。不过这样的方式不免在部署中显得稍失弹性,无法根据特殊环境做客制化,於是就诞生出了 config override 的方式来进行 custom config 的设定。本篇文章将会介绍如何使用 config override 来更改 Kolla-Ansible 部署 OpenStack 的设定档。

设定方法

同样在 globals.yml 中我们可以找到一行设定 config overrides 档案的资料夹。预设值是 /etc/kolla/config ,可以更改为自己想要的资料夹。

# Location of configuration overrides
#node_custom_config: "/etc/kolla/config"

Kolla-Ansible 会在寻找在 /etc/kolla/config/<< 服务名称 >>/<< 设定档 >> 的档案。设定档 override 基本上可以 override 整个 OpenStack project (e.g. Nova)、OpenStack service (e.g. nova-api)、或是在特定 host 上的 service (e.g. nova-api on controller02),在使用上非常有弹性。

另外如果要对所有 service 的设定做 override,Kolla-Ansible 会寻找 /etc/kolla/config/global.conf 这个档案。

设定范例

如果想要在 OpenStack 上的 Virtual Machine 启用巢状虚拟化,我们需要将 libvirt 参数中 cpu_mode 设定为 host-passthrou
此时就会需要新建 /etc/kolla/config/nova/nova-compute.conf 後写入以下两行:

[libvirt]
cpu_mode=host-passthrough

若想要在 compute01 这个主机上更改 CPU 跟 RAM 的 allocation ratio,就会建立 /etc/kolla/config/nova/compute01/nova-compute.conf 并写入:

[DEFAULT]
cpu_allocation_ratio = 16.0
ram_allocation_ratio = 2.0

最後如果想要更改所有 service 的 database pool size connection,就会新建一个 /etc/kolla/config/global.conf 档案并写入

[database]
max_pool_size = 100

Policy 设定

policy.json 的设定方式相对一般 service 的设定档稍微不一样,需要将完整的 policy 档案都放在那个 project 的资料夹下。Kolla-Ansible 会使用那个档案 overrite 原本预设的 policy.json 档案。

例如若想要 override Neutron 的 policy.json,部署者需要从 Neutron 原始码中将完整的 policy.json 拿下来,修改後并放到 /etc/kolla/config/neutron/policy.json 下。

部署後更改设定

Kolla-Ansible 在已经部署完成的 OpenStack cluster 要更改设定也非常容易,只需要下:

kolla-ansible reconfigure

就会将更改的设定档部署至环境并且重新启动相对应的 container。

结论

透过 config override 的方式,operator 可以很容易的针对各个 service 甚至 host 上的特定 service 做设定档的调整。这让使用 Kolla-Ansible 部署 OpenStack 更有弹性,能够针对各个部署的需求进行客制化的部署。

Reference

Kolla-Ansible Advanced Configuration


<<:  图的连通 (6)

>>:  Day-11 Ruby里字串的单引号和双引号差别?

Day3 - Canvas基础概论 II - 成为Canvas Ninja ~ 理解2D渲染的精髓!

Some Deeper Basics 图像的概念 我们在前面有说到,canvas本身是透过物件模型来...

[Day 5] -『 GO语言学习笔记』- 宣告变数(variables)

以下笔记摘录自『 The Go Workshop 』。 宣告变数需满足四个条件: 宣告变数的叙述 变...

「ASP.NET 具有潜在危险 request.form 的值」...有无危险实例可参

最近写一个ASP.NET WebForm的网页,允许使用者在TextBox输入各种文字,也包括Htm...

@Day20 | C# WixToolset + WPF 帅到不行的安装包 [Bootstrapper-安装前的系统检测]

基本上 在学习时看的文章, 都会在这边放了个安装检测.net framework的方法 https:...

Day 3:安装 Hexo 前置作业:Node.js、Git、网页编辑器 VS code、文章编辑器 Typora

在架设 Hexo 之前,有些前置作业要先进行。其中由於 Hexo 是使用 Node.js 撰写,并且...