#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
, правильно ли она решается из указанного вами значения командной строки