2016-08-10 3 views
0

В последнее время я начал использовать Ansible, и мне нужна помощь в учебнике. Я пытаюсь получить детали устройства как параметр, а затем привязать к нему знак звезды, чтобы запустить команду оболочки. Например, если устройство находится в /etc/sda , команда оболочки будет ls -l /dev/sda*.Цепочка звездного знака в Ansible playbook

- 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": [] 
} 

Любой знает, что это проблема, и как я могу это исправить?

ответ

2

hitachiDevice.rc содержит код результата предыдущей команды.
Держу пари, что это всегда 0 если grep удался.
Таким образом, вы следующая команда будет почти всегда будет ls -l 0* | wc -l, который дает ошибку

LS: не может получить доступ к 0 *: Нет такого файла или каталога

Я думаю, что вам нужно что-то вроде hitachiDevice.stdout, в зависимости о том, чего вы хотите достичь.

+0

Я ожидаю, что первая команда даст мне имя устройства ('/ etc/sda'), а вторая команда должна предоставить мне список, если разделы устройства ('/etc/sda,/etc/sda1,/etc/sda2'), и я просто хочу подсчитать строки вывода. Если количество строк не равно 0, то игровая книга должна остановиться с ошибкой. – Omri

+0

Пожалуйста, проверьте содержимое переменной с помощью '- debug: var = hitachiDevice' после первой задачи - это сложная переменная, а не только строки. –

+0

Готово. Я получил '' stdout_lines ': [ "/ dev/sdg" ] ' – Omri

Смежные вопросы