在上篇文章介紹了 Kolla 跟 Kolla-Ansible 部署 OpenStack 的方法。在設定的部分全部都是在
中設定,其他則交由 Kolla-Ansible 中的 template 處理。不過這樣的方式不免在部署中顯得稍失彈性,無法根據特殊環境做客製化,於是就誕生出了 config override 的方式來進行 custom config 的設定。本篇文章將會介紹如何使用 config override 來更改 Kolla-Ansible 部署 OpenStack 的設定檔。globals.yml
Table of Contents
設定方法
同樣在
,可以更改為自己想要的資料夾。globals.yml
` 中我們可以找到一行設定 config overrides 檔案的資料夾。預設值是
`/etc/kolla/config
# Location of configuration overrides
#node_custom_config: "/etc/kolla/config"
Kolla-Ansible 會在尋找在
的檔案。設定檔 override 基本上可以 override 整個 OpenStack project (e.g. Nova)、OpenStack service (e.g. nova-api)、或是在特定 host 上的 service (e.g. nova-api on controller02),在使用上非常有彈性。/etc/kolla/config/<< 服務名稱 >>/<< 設定檔 >>
另外如果要對所有 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
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.