Рейтинг:1

Выполнение одной задачи из плейбука с использованием тегов

флаг cn

У меня есть playbook с несколькими задачами для включения/выключения машин. Я пробовал использовать теги для запуска только одной задачи «запустить виртуальную машину» с помощью команды ansible run.yaml --теги включены но выдает ОШИБКУ! теги должны быть указаны в виде списка. Подскажите, пожалуйста, где я сделал ошибку. Спасибо

---
- хосты: список
  собрать_факты: нет
  задачи:
  - название: начало
    команда: >
            вирш начать {{ inventory_hostname }}
    теги: на
    делегат_кому: inv
- хосты: выкл.
  собрать_факты: нет
  задачи:
  - имя: стоп вм
    команда: >
            virsh shutdown --domain {{ inventory_hostname }}
    делегат_кому: inv
    тэги: выкл.
Рейтинг:2
флаг br

Проблема в том, что в Ansible на оценивается как логическое значение Истинный и выключенный оценивается как логическое значение ЛОЖЬ. Видеть Проверка правдивости. Например

    - отладка:
        msg: "{{ my_tag }} правдивый {{ my_tag правдивый }}"
      вары:
        мой_тег: включен

дает

  msg: Правда правдива Правда

Когда вы используете логическое значение в теге, например.

    - отладка:
        сообщение: тег включен
      теги: на

Ansible жалуется

ОШИБКА! теги должны быть указаны в виде списка

Эта ошибка вводит в заблуждение. На самом деле Ansible жалуется на тип данных. Решение простое. Не используйте логическое значение в качестве тега, например. задача ниже работает, как ожидалось

    - отладка:
        сообщение: пометить my_on
      Теги: my_on

дает

shell> ansible-playbook playbook.yml --tags my_on
...
  сообщение: пометить my_on

Вы можете использовать список в тегах. Но если вы поместите строку в теги, она будет интерпретирована как один элемент списка. Видеть Теги.

ranji avatar
флаг cn
Спасибо! Это сработало
Рейтинг:0
флаг br

Как говорится в сообщении об ошибке, попробуйте следующее:

---
- ведущие: фон
  собрать_факты: нет
  задачи:
  - имя: запустить вм
    команда: >
            вирш начать {{ inventory_hostname }}
    теги: 
    - на
    делегат_кому: су
- хозяева: вофф
  собрать_факты: нет
  задачи:
  - имя: стоп вм
    команда: >
            virsh shutdown --domain {{ inventory_hostname }}
    делегат_кому: су
    теги: 
    - выключенный

Не пробуя ваш код, я подозреваю, что вам может понадобиться поместить команду virsh в кавычки (") для работы подстановки переменной j2.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.