我正在尝试部署一个Openstack基础设施多节点与kolla-ansible在Ubuntu 20.04.4
。
ansible 4.10.0
ansible-core 2.11.11
kolla-ansible 13.0.1
当我执行命令:
kolla-ansible -i /etc/kolla/multinode pull
或
kolla-ansible -i /etc/kolla/multinode deploy
我得到错误:
fatal: [controller]: FAILED!=比;{"msg": "模板错误时,模板字符串:没有名为'select_services_enabled_and_mapped_to_host'的过滤器。字符串:{{lookup('vars', (kolla_role_name | default(project_name)) + '_services') | select_services_enabled_and_mapped_to_host}}"}
fatal: [compute01]: FAILED!=比;{"msg": "模板错误时,模板字符串:没有名为'select_services_enabled_and_mapped_to_host'的过滤器。字符串:{{lookup('vars', (kolla_role_name | default(project_name)) + '_services') | select_services_enabled_and_mapped_to_host}}"}
I have 1 deployment Node, 1 controller, 1 compute Node
似乎不是基于错误消息的拉出问题。看来你的中子又出了配置问题。默认的多节点配置需要3个控制器。我不知道你的多节点配置为kolla-ansible,但当你只想要一个控制器和一个计算,你可以做一些不同的:
使用all-in-one
-文件进行设置。应该在路径kolla-ansible/ansible/inventory/all-in-one
。修改此文件,将[compute]
-部分中的localhost
替换为应该在其中创建计算的主机的名称,并删除ansible_connection=local
。当我创建一个包含1个控制器和X个计算节点的测试部署时,这对我来说总是有效的。
只有在您希望控制器不在主机上的情况下,在您执行kolla-ansible的地方,然后用您的控制器节点的名称替换所有其他localhost
,当然要删除所有ansible_connection=local
。
只是要确定:不要忘记在执行kolla-ansible的节点的/etc/hosts
-文件中写入主机的名称及其ip地址。
首先,kolla-ansible prechecks -i multinode_or_all-in-one
命令的结果是什么?
深入kolla-ansible
项目的select_services_enabled_and_mapped_to_host
这个方法,你会发现一些线索。方法的返回取决于service_enabled
andservice_mapped_to_host
所以,有两步来解决你的问题:
- 1、检查/etc/kolla/globals.yml中的服务启用设置和kolla-ansible/ansible/group_vars/all.yml。
您可以使用该文件(globals.yml)覆盖整个Kolla中的任何变量。其他选项可以在"kolla-ansible/ansible/group_vars/all"文件中找到。yml文件。
- 2、查看主机库存在多节点或的文件是否与真实信息一致。
或者一切正常,我认为你应该重新部署它参考kolla-ansible quickstar.