Cp-ansible: Назначение роли confluent.variables_handlers

Созданный на 7 апр. 2020  ·  9Комментарии  ·  Источник: confluentinc/cp-ansible

Я пытаюсь установить сливающиеся Kafka и zookeeper, используя ветку 5.4.1-post этого репо.
Какова цель использования confluent.variables_handlers в качестве зависимой роли в ролях confluent.zookeeper и confluent.kafka. Это переопределяет переменную zookeeper в confluent.zookeeper / defaults / main.yaml, аналогично kafka_broker в confluent.kafka /defaults/main.yaml. Я получаю эту ошибку при установке kafka.

TASK [confluent.kafka_broker : Set Permissions on Data Dirs] ********
 FAILED! => {"msg": "'dict object' has no attribute 'datadir'"}
help wanted

Самый полезный комментарий

Он должен фактически объединить словари, убедитесь, что ваш текущий каталог при запуске cp-ansible является корнем самого cp-ansible. Это даст вам файл ansible.cfg с hash_behaviour=merge

Признаюсь, расположение переменных сбивает с толку, и я надеюсь исправить его, когда у меня будет время

Все 9 Комментарий

Он должен фактически объединить словари, убедитесь, что ваш текущий каталог при запуске cp-ansible является корнем самого cp-ansible. Это даст вам файл ansible.cfg с hash_behaviour=merge

Признаюсь, расположение переменных сбивает с толку, и я надеюсь исправить его, когда у меня будет время

Я пробовал это. Теперь, когда я запускаю ту же книгу, я получаю

TASK [confluent.kafka_broker : Set Permissions on Data Dirs] ******
 {"msg": "'dict object' has no attribute 'kafka_broker'"}

Хм, странно, можете ли вы предоставить:

git status
git branch
cat hosts.yml

или как там ваш файл инвентаря

Хорошо. У меня он работает с этим hosts.yml

all:
  vars:
    ssl_enabled: false
    ssl_mutual_auth_enabled: false
    sasl_protocol: none
    kafka_broker_configure_additional_brokers: false

kafka_broker:
  vars:
    kafka_broker:
      datadir:
        - /var/lib/kafka/my-data
  hosts:
    172.XX.YY.20:

    172.XX.YY.18:

    172.XX.YY.19:

До этого я добавил kafka_broker как часть групповых переменных в динамический инвентарь. Как-то не получалось. Я это проверяю. Спасибо за оперативную помощь.

Выглядит хорошо! Я не пробовал динамические инвентаризации, но пока включен hash_merging, cp-ansible должен работать!

Еще одна вещь - у меня были проблемы с проверкой имени хоста с использованием IP-адресов, поэтому, если вы собираетесь включить шифрование, я бы, вероятно, использовал имена хостов

Я сгруппировал свои виртуальные машины Kafka как kafka_hosts в моем инвентаре, поэтому изменение значений хостов в all.yaml выглядит следующим образом.

- name: Kafka Broker Provisioning
  # hosts: kafka_broker
  hosts: kafka_hosts

и определил групповые переменные в каталоге инвентаря следующим образом.

# File kafka_hosts.yaml
---
ssl_enabled: false
ssl_mutual_auth_enabled: false
sasl_protocol: none
kafka_broker_configure_additional_brokers: false
confluent_server_enabled: false

kafka_broker_service_environment_overrides:
  KAFKA_HEAP_OPTS: "-Xms1g -Xmx1g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"

kafka_broker:
  datadir:
    - /var/lib/kafka/
  auto.create.topics.enable: true
  properties:
    num.partitions: 20
    log.flush.interval.messages: 10000
    log.flush.interval.ms: 1000
    zookeeper.connection.timeout.ms: 6000
    offsets.topic.replication.factor: 2
    min.insync.replicas: 2
    default.replication.factor: 3  

При этом учитываются все переменные, кроме таких карт, как kafka_broker. Это дает мне ошибку

 FAILED! => {"msg": "'dict object' has no attribute 'kafka_broker'"}

Всегда ли мне называть группу kafka_broker ?

Извините, я новичок в ансибле. Может быть, мне не хватает основ.

Просто проделал то же самое здесь -

Вам все еще нужна помощь?

Вы можете добавить в код задачи отладки, чтобы увидеть, как установлены ваши вары. Я бы добавил это где-нибудь

- debug: var=kafka_broker

Также убедитесь, что hash_merging используется с вашим ansible.cfg.

Мне нужно было назвать группу хостов чем-то отличным от kafka_broker. Итак, я внес изменения в сценарий. Я добавил переменную kafka_broker_host_group которая содержит имя группы хостов.
И внес изменения в файлы ролей, как показано ниже.
bootstrap.servers={% for host in groups['kafka_broker'] %} изменил его на bootstrap.servers={% for host in groups[kafka_broker_host_group] . Это помогло мне иметь собственные названия групп.
И да, установка hash_behaviour для слияния помогла мне решить исходную ошибку, для которой я открыл эту проблему.

Спасибо за помощь :)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги