解决一个ansible的filter找不到的问题

这两天在部署SONiC VS Testbed的时候,总是被下面这个报错困扰。

TASK [vm_set:Extract VM names from inventory] *********************************
task path: /var/johnar/sonic-mgmt/ansible/roles/vm_set/tasks.main.yml:184
fatal:[STR-ACS-VSERV-01]:FAILED!=>{
     ‘msg’:"template error while templating string:no filter named 'extract_by_prefix'. String:{{ group_names|extract_by_prefix('server_')}}
}

实际上,filter.py是可以找到的

johnar@9fa161155f72:~/sonic-mgmt/ansible$ cat ansible.cfg | grep filter
filter_plugins     = plugins/filter
johnar@9fa161155f72:~/sonic-mgmt/ansible$ ll plugins/filter/
total 24
drwxrwxr-x 2 johnar 1000 4096 Jul 21 09:04 ./
drwxrwxr-x 6 johnar 1000 4096 Jul 21 07:58 ../
-rw-r--r-- 1 johnar 1000 5919 Jul 21 07:58 filters.py
-rw-r--r-- 1 johnar 1000 6078 Jul 21 09:04 filters.pyc
johnar@9fa161155f72:~/sonic-mgmt/ansible$ 

最后试了一下

johnar@9fa161155f72:~/sonic-mgmt/ansible$ sudo mkdir /etc/ansible
johnar@9fa161155f72:~/sonic-mgmt/ansible$ sudo cp ansible.cfg /etc/ansible/

不再报错!!!!

如果还是不行,那么就修改/etc/ansible/ansible.cfg,将filter路径使用绝对路径

- filter_plugins     = plugins/filter
+ filter_plugins     = /var/johnar/sonic-mgmt/ansible/plugins/filter

你可能感兴趣的:(Linux,网络通信)