解决一个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
Ansible一个自动化运维工具,它通过SSH连接到目标服务器执行任务。如果您在使用Ansible命令时遇到“命令不到”的错误,通常意味着系统中没有安装Ansible,或者Ansible没有被添加到系统的PATH环境变量中,导致无法识别Ansible命令。 解决这个问题的方法如下: 1. 安装Ansible:确保Ansible已经正确安装在您的系统中。对于大多数Linux发行版,您可以通过包管理器安装Ansible。例如,在基于Debian的系统上,您可以使用以下命令安装Ansible: ``` sudo apt-get update sudo apt-get install ansible ``` 2. 检查环境变量:安装完成后,您需要确保Ansible的安装路径被添加到了环境变量PATH中。您可以通过在终端中输入`which ansible`来检查Ansible可执行文件的位置,如果它返回了Ansible的路径,则表示路径已经设置正确。如果没有返回路径,您需要将其添加到PATH中。 3. 检查配置:如果您通过包管理器安装了Ansible,通常PATH变量会自动配置好。但如果是在虚拟环境中安装的或者有特殊配置,您可能需要手动配置。通常,您可以将Ansible的安装路径添加到`~/.bashrc`、`~/.bash_profile`或者`~/.profile`文件中的PATH变量里,并执行`source`命令来使改动生效。 4. 使用完整路径:如果上述方法都不奏效,您可以使用Ansible的完整路径来运行命令。例如,在Linux系统中,如果Ansible安装在`/usr/bin/ansible`,则可以这样调用: ``` /usr/bin/ansible <args> ``` 确保您使用的是正确的命令和参数,这样可以避免出现其他错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值