ansible -m shell -a "lsblk |grep 'sda' && grep 'ubuntu--vg-ubuntu--lv'" all 修改为正确的表达式同时筛选出sda 与ubuntu--vg-ubuntu--lv
时间: 2023-10-07 10:07:44 浏览: 79
可以使用 Ansible 的 `ansible_*_pattern` 过滤器来实现只在匹配的主机上执行命令,同时使用管道符(`|`)将两个命令组合起来,实现在命令行中同时筛选出 `sda` 和 `ubuntu--vg-ubuntu--lv`。
正确的表达式如下:
```
ansible -m shell -a "lsblk | grep 'sda' | grep 'ubuntu--vg-ubuntu--lv'" 'sda*' -i inventory.ini
```
其中:
- `-i inventory.ini` 表示使用 `inventory.ini` 文件中定义的主机清单进行操作。
- `sda*` 是主机模式匹配模式,只会在主机名以 `sda` 开头的主机上执行命令。
- `|` 用于将两个命令组合起来,实现在 `lsblk` 的输出中筛选出 `sda`,再在结果中筛选出 `ubuntu--vg-ubuntu--lv`。
- 注意要在单引号中使用主机模式匹配模式,否则 `*` 号会被 Shell 解释为通配符。
阅读全文