передача переменной в модуле оболочки в playbook

#ansible #containers #lxc

#ansible #контейнеры #lxc

Вопрос:

Я хочу передать переменную в модуле оболочки через --extra-vars параметр в командной строке, но он говорит:

«ПЕРЕМЕННАЯ НЕ ОПРЕДЕЛЕНА!»

     - hosts: all
      user: ansible
      become: yes
      tasks:
        - name: creating backups
          shell: |
              for container in $(cat wajahat.txt)
              do
              echo {{ id }} >> /root/wajahat
              done
        - debug: var=result.cmd
 

debug ВЫВОД

 TASK [debug] *********************************************************************************************************
ok: [x.x.x.x] => {
    "result.cmd": "VARIABLE IS NOT DEFINED!"
}
 

Файл создается в корневом каталоге, но он пустой.

КОМАНДА, КОТОРУЮ Я ЗАПУСКАЮ

 ansible-playbook --extra-vars "id=6050" test1.yml
 

Комментарии:

1. ошибка для result.cmd . вы должны register использовать это в предыдущей задаче, если хотите получить результат задачи оболочки.

2. @ilias-sp спасибо, что исправили меня, но он не отображал текст, поэтому это означает, что он принял пустое значение для переменной

3. я предполагаю, что цикл for не выполнялся. вы можете попробовать использовать echo {{ id }} >> /root/wajahat в качестве задачи оболочки и посмотреть id , правильно ли она решается из указанного вами значения командной строки