首页 文章

链接星形标志在Ansible剧本

提问于
浏览
0

最近,我试图将设备详细信息作为参数,然后为其链接一个星号,以便运行shell命令 . 例如,如果设备是 /etc/sda ,则shell命令将为 ls -l /dev/sda* .

- name: Get Hitachi Devices device details
    shell: lsscsi | grep HITACHI | awk '{print $6}'
    register: hitachiDevice

  - name: Check if the volume is partitioned
    shell: ls -l "{{ hitachiDevice.rc }}"* | wc -l
    failed_when: hitachiDevice.rc != 1

这是运行脚本后得到的错误:

{
  "changed": true,
  "cmd": "ls -l \"0\"* | wc -l",
  "delta": "0:00:00.027338",
  "end": "2016-08-10 14:15:12.200415",
  "failed": true,
  "failed_when_result": true,
  "rc": 0,
  "start": "2016-08-10 14:15:12.173077",
  "stderr": "ls: cannot access 0*: No such file or directory",
  "stdout": "0",
  "stdout_lines": [
    "0"
  ],
  "warnings": []
}

任何人都知道这是什么问题,我该如何解决?

1 回答

  • 2

    hitachiDevice.rc 包含上一个命令的结果代码 .
    我敢打赌,如果 grep 成功,它总是 0 .
    所以你的下一个命令几乎总是 ls -l 0* | wc -l ,它会给你错误

    ls:无法访问0 *:没有这样的文件或目录

    我认为你需要类似 hitachiDevice.stdout 的东西,这取决于你想要达到的目标 .

相关问题