Настройка внешнего подключения RabbitMQ

Проверьте совместимость версии БД

Перед началом работы убедитесь, что версия внешней базы данных RabbitMQ совпадает с версией, указанной в .Values.rabbitmq.image.tag.

  1. Если система Test IT запущена, остановите все поды с помощью команды.
  2. В файле values-override.yaml установите переменные среды в с параметрами внешней базы данных RabbitMQ:
    general:
      config:
        RABBITMQ_DEFAULT_USER: "testit"
        RABBITMQ_DEFAULT_PASS: "password"
        RABBITMQ_DEFAULT_VHOST: "testitrabbit"
        RABBITMQ_DEFAULT_HOST: "external-server" # IP or DNS of outside RabbitMQ server
        RABBITMQ_DEFAULT_PORT: "5672"
        RABBITMQ_AUTH_MODE: "plain" 
        RABBITMQ_CLIENT_CERT_PATH: "/etc/rabbitmq/ssl/client/testit.pfx"
        RABBITMQ_CLIENT_CERT_PASSPHRASE: 
        RABBITMQ_SSL_ENABLED: "false"
    
  3. В файле values-override.yaml отключите контроллер statefulSet для внутренней базы данных RabbitMQ:
    rabbitmq:
      enabled: false
    
  4. Примените изменения с помощью команды:
    cd ~/testit
    helm -n <namespace> -f testit_backend/values-override.yaml upgrade testit-backend testit_backend/
    

Настройка SSL для внешних подключений

Важно

  1. Убедитесь, что конфигурация-SSL во внешних сервисах настроена на проверку только файла CA.crt.
  2. Если для внешних сервисов используются другие файлы CA.crt, убедитесь, что все они добавлены в связку. Для этого внесите изменения в файл:
    testit_backend/templates/configmaps/ssl/ca-bundle.yaml
    
  3. Прежде чем применять изменения, описанные в данной инструкции, убедитесь, что настроены внешние подключения к соответствующим сервисам.
  1. Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера RabbitMQ и файл CA.crt:
  • rabbitmq_key.pem
  • rabbitmq_cert.pem
  • rabbitmq_ca.pem
  1. Перенесите сертификаты в соответствующую папку на вашем сервере RabbitMQ. Например, /etc/certs.
  2. Создайте конфигурационный файл .conf. Например, 20-ssl.conf :
    listeners.ssl.default            = 5671
    ssl_options.cacertfile           = /etc/certs/rabbitmq_ca.pem
    ssl_options.certfile             = /etc/certs/rabbitmq_cert.pem
    ssl_options.keyfile              = /etc/certs/rabbitmq_key.pem
    ssl_options.verify               = verify_none
    ssl_options.fail_if_no_peer_cert = false
    
  3. Перенесите созданный файл в в соответствующую папку на вашем сервере RabbitMQ. Например, /etc/rabbitmq/conf.d.
  4. Добавьте файл CA.crt в конфигурационную карту ca-bundle:
    # testit_backend/templates/configmaps/ssl/ca-bundle.yaml
    {{- if .Values.sslEnabled }}
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: "ca-bundle"
      labels:
        app: testit
        content: ssl-ca
    data:
      ca.crt: |-
        -----BEGIN CERTIFICATE-----
        contents
        -----END CERTIFICATE-----
    {{- end }}
    
  5. Активируйте SSL для RabbitMQ в файле values-override.yaml. Убедитесь, что включен общий флаг sslEnabled:
    sslEnabled: true
    rabbitmq:
      enabled: false
      sslEnabled: true
    
  6. При необходимости в файле values-override.yaml задайте значения переменных для SSL в разделе general.sslConfig.
Обновлено: