Cp-ansible: Pengecualian Pengguna SASL SCRAM ketika kata sandi disimpan

Dibuat pada 6 Apr 2021  ·  4Komentar  ·  Sumber: confluentinc/cp-ansible

Jelaskan masalahnya

Menggunakan buku pedoman Anda dengan sasl_protocol untuk enyahlah. Jika Anda menyetel sandi pengguna tersimpan, Anda memiliki pengecualian dalam tugas ini:
fatal: [XXXXXXX]: GAGAL! => {"msg": "Pengecualian yang tidak tertangani terjadi saat membuat templat '{{ kafka_broker_combined_properties | combine(kafka_broker_custom_properties) }}'. [....] hanya dapat menggabungkan str (bukan \"AnsibleVaultEncryptedUnicode\") ke str"}

Saya pikir masalah muncul dari fungsi combine_properties karena dalam konfigurasi default kata sandi adalah string. Jadi jika kata sandi adalah vault encode myabe perbaiki dengan 'toString() metode 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

Untuk Mereproduksi
Semua Konfigurasi Vars:

    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

Solusi

Ada solusi , Anda perlu mengonversi string yang disandikan vault:

    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}}"
bug

Semua 4 komentar

@LGouellec Mungkinkah praktik terbaik Ansible berikut ini menjadi solusi yang valid untuk Anda: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#keep -vaulted-variables-safely-visible, atau apakah itu tidak relevan untuk masalah?

Hai @erikgb ,

Ya itu solusi yang valid.
Bisakah kita tidak mengelola AnsibleVaultEncryptedUnicode dalam fungsi combine_properties ?

Ya itu solusi yang valid.

Itu bagus! 👍

Bisakah kita tidak mengelola AnsibleVaultEncryptedUnicode dalam fungsi combine_properties ?

Ya, saya pikir ini bisa diperbaiki. Harap kirimkan PR untuk memperbaikinya, dan kami dapat meninjaunya. Bug ini akan dimasukkan ke dalam backlog kami dan ditangani sesuai dengan upaya terbaik seperti yang dijelaskan di sini . Atau gunakan Dukungan Confluent jika Anda adalah pelanggan Confluent.

Diselesaikan dalam PR #640

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

chuck-confluent picture chuck-confluent  ·  5Komentar

OneCricketeer picture OneCricketeer  ·  6Komentar

Fobhep picture Fobhep  ·  12Komentar

OneCricketeer picture OneCricketeer  ·  7Komentar

Fobhep picture Fobhep  ·  6Komentar