Ansible count远程文件中的行数

Ansible count远程文件中的行数,ansible,Ansible,我想用playbook计算文件中的行数,但playbook应该远程运行。它应该与linux命令等效: cat/etc/passwd | wc-l 现在我将此用作解决方法: -名称:统计用户数 外壳:“cat/etc/passwd | wc-l” 寄存器:usercount -name:写入用户计数 调试: msg:“{usercount.stdout}” 但是,如果它能与Ansible内置命令一起工作,那就太好了。查找在控制器上执行的文件,因此,我想说的是,最好的办法是先查找文件,然后数数行

我想用playbook计算文件中的行数,但playbook应该远程运行。它应该与linux命令等效:

cat/etc/passwd | wc-l
现在我将此用作解决方法:

-名称:统计用户数
外壳:“cat/etc/passwd | wc-l”
寄存器:usercount
-name:写入用户计数
调试:
msg:“{usercount.stdout}”

但是,如果它能与Ansible内置命令一起工作,那就太好了。

查找在控制器上执行的文件,因此,我想说的是,最好的办法是先查找文件,然后数数行

因此,对于文件的字符串表示,您可以使用Python的函数以一个列表结束,然后将列表馈送到一个简单的
length
过滤器

下面是一个示例剧本:

-主机:节点1
收集事实:不
任务:
-咕噜声:
src:/etc/passwd
寄存器:passwd
-调试:
变量:(passwd.content | b64decode).splitlines()| length
这将产生概述:

播放[node1]******************************************************************************************************
任务[咕噜声]******************************************************************************************************
好:[点头1]
任务[调试]******************************************************************************************************
确定:[节点1]=>
(passwd.content | b64decode).splitlines()|长度:'27'
重演********************************************************************************************************
节点1:确定=2更改=0无法访问=0失败=0跳过=0获救=0忽略=0