Nano Hash - криптовалюты, майнинг, программирование

Ansible: этому модулю требуются аргументы ключ=значение, когда предоставлены аргументы ключ=значение

Я получаю эту ошибку от Ansible 1.9.4:

TASK: [rabbitmq | add rabbitmq vhost] *****************************************
failed: [prod-sensu01] => (item={'name': u'/sensu'})
    => {"failed": true, "item": {"name": "/sensu"}}
msg: this module requires key=value arguments
(['name:', '/sensu', 'node:', 'rabbit',
  'tracing:', 'no', 'state:', 'present'])

Но, как видно из сообщения об ошибке, элемент на самом деле является аргументом ключ=значение (хеш).

Вот переменные:

# playbooks/roles/rabbitmq/vars/main.yml
# Set the rabbitmq vhost
rabbitmq_vhost_definitions:
  - name: "{{ sensu_server_rabbitmq_vhost }}"

И задача роли:

# playbooks/roles/rabbitmq/tasks/vhost.yml
- name: add rabbitmq vhost
  rabbitmq_vhost: >
    name: "{{ item.name }}"
    node: "{{ item.node | default('rabbit') }}"
    tracing: "{{ item.tracing | default('no') }}"
    state: present
  with_items: rabbitmq_vhost_definitions

Что здесь происходит?


Ответы:


1

Пары аргументов ключ/значение для модуля Ansible, передаваемые в виде строки, должны быть разделены =, а не :. Правильное задание должно выглядеть так:

 # playbooks/roles/rabbitmq/tasks/vhost.yml
 - name: add rabbitmq vhost   
   rabbitmq_vhost: >
     name="{{ item.name }}"
     node="{{ item.node | default('rabbit') }}"
     tracing="{{ item.tracing | default('no') }}"
     state=present   
   with_items: rabbitmq_vhost_definitions

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

rabbitmq_vhost: >

Вы также можете попробовать удалить скаляр > (и оставить двоеточия), если этот модуль поддерживает оба способа передачи аргументов.

19.01.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..