Cp-ansible: 密码被保管时的异常 SASL SCRAM 用户

创建于 2021-04-06  ·  4评论  ·  资料来源: confluentinc/cp-ansible

描述问题

使用带有 sasl_protocol 的 playbook 进行紧急救援。 如果您将用户密码设置为 vaulted,则此任务中有一个例外:
致命:[XXXXXXX]:失败! => {"msg": "模板 '{{ kafka_broker_combined_properties | combine(kafka_broker_custom_properties) }}' 时发生未处理的异常。[....] 只能将 str(不是 \"AnsibleVaultEncryptedUnicode\")连接到 str"}

我认为问题来自 combine_properties 函数,因为在默认配置中密码是字符串。 因此,如果密码是保管库编码 myabe,请使用“toString() python 方法”修复它:


    def combine_properties(self, properties_dict):
        # Loops over master properties dictionary and combines sub elements if enabled
        final_dict = {}
        for prop in properties_dict:
            if properties_dict[prop].get('enabled'):
                final_dict.update(properties_dict[prop].get('properties'))
        return final_dict

再现
所有变量配置:

    sasl_protocol: scram

    sasl_scram_users:
      admin:
        principal: "admin"
        password: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          32313537636131333038303532613231653233343565303831396530393061643031303432303632
          6537306234393563343861643834336430353930643062370a663563376131653664653430363963
          62303339313937646635663032326266383439623736623462373632313934643261303634663732
          3331643634623337610a616365613231346630656564616265656231633238313932333437363461
          65626165666531656463353562323165376135653631316435653337366164653063
      client:
        principal: "client"
        password: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          35653666663833386164616630353966363231633234633561663464653931393835653830303630
          3263373337396137653637383332656539373766346438370a353164383737306535646234363065
          66643863353439663064346564333062373265653036646137306531353336323931653931363032
          3231373831366531640a323161386538333966646635353462623263346234306631383635646237
          34613764663736346362616562623061333438613461616162386532373266393166

解决方法

存在一种

    sasl_protocol: scram

    sasl_admin_password: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      32313537636131333038303532613231653233343565303831396530393061643031303432303632
      6537306234393563343861643834336430353930643062370a663563376131653664653430363963
      62303339313937646635663032326266383439623736623462373632313934643261303634663732
      3331643634623337610a616365613231346630656564616265656231633238313932333437363461
      65626165666531656463353562323165376135653631316435653337366164653063

    sasl_client_password: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      35653666663833386164616630353966363231633234633561663464653931393835653830303630
      3263373337396137653637383332656539373766346438370a353164383737306535646234363065
      66643863353439663064346564333062373265653036646137306531353336323931653931363032
      3231373831366531640a323161386538333966646635353462623263346234306631383635646237
      34613764663736346362616562623061333438613461616162386532373266393166

    sasl_scram_users:
      admin:
        principal: "admin"
        password: "{{sasl_admin_password|string}}"
      client:
        principal: "client"
        password: "{{sasl_client_password|string}}"

所有4条评论

@LGouellec以下 Ansible 最佳实践是否对您有效: https: //docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#keep -vaulted-variables-safely-visible,或者与问题?

@erikb

是的,这是一个有效的解决方法。
我们不能在功能 combine_properties 中管理 AnsibleVaultEncryptedUnicode 吗?

是的,这是一个有效的解决方法。

那很好! 👍

我们不能在功能 combine_properties 中管理 AnsibleVaultEncryptedUnicode 吗?

是的,我认为这可以解决。 请提交 PR 以解决此问题,我们可以对其进行审核。 此错误将放入我们的待办事项列表中,并按照此处所述的最大努力进行处理。 或者,如果您是 Confluent 客户,请使用 Confluent 支持。

在 PR #640 中解决

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

OneCricketeer picture OneCricketeer  ·  7评论

sandeeprapido picture sandeeprapido  ·  9评论

Fobhep picture Fobhep  ·  12评论

Fobhep picture Fobhep  ·  12评论

luizm picture luizm  ·  18评论