Ошибка аутентификации при использовании rundeck cli (aka rd) - PullRequest
0 голосов
/ 28 апреля 2020

Я использую rundeck-cli rd в моем контейнере. Я установил

RD_URL=http://localhost:4440/rundeck
RD_USER=myuser
RD_PASSWORD=mypassword

, но

при попытке входа в систему, я не могу пройти аутентификацию. Я успешно проверил учетные данные в веб-интерфейсе

Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: --> GET http://localhost:4440/rundeck/ http/1.1
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: <-- 302 Found http://localhost:4440/rundeck/ (8ms, 0-byte body)
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: --> GET http://localhost:4440/user/login http/1.1
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: <-- 200 OK http://localhost:4440/user/login (19ms, unknown-length body)
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: --> POST http://localhost:4440/rundeck/j_security_check http/1.1 (33-byte body)
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: <-- 302 Found http://localhost:4440/rundeck/j_security_check (26ms, 0-byte body)
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: --> GET http://localhost:4440/rundeck/ http/1.1
Apr 28, 2020 7:26:41 PM okhttp3.internal.platform.Platform log
INFO: <-- 404 Not Found http://localhost:4440/rundeck/ (19ms, unknown-length body)
Exception in thread "main" java.lang.IllegalStateException: Password Authentication failed, expected a successful response.
        at org.rundeck.client.util.FormAuthInterceptor.authenticate(FormAuthInterceptor.java:82)
        at org.rundeck.client.util.FormAuthInterceptor.intercept(FormAuthInterceptor.java:59)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете выполнить «настройку» официального образа Rundeck, используя docker -compose и Dockerfile.

Создайте каталог и поместите docker-compose.yml со следующим содержимым:

version: '3'
services:
  rundeck:
    build:
      context: .
      args:
        IMAGE: ${RUNDECK_IMAGE:-rundeck/rundeck:3.2.6}
    ports:
      - 4440:4440
    links:
      - postgres
    environment:
      RUNDECK_DATABASE_DRIVER: org.postgresql.Driver
      RUNDECK_DATABASE_USERNAME: rundeck
      RUNDECK_DATABASE_PASSWORD: rundeck
      RUNDECK_DATABASE_URL: jdbc:postgresql://postgres/rundeck?autoReconnect=true&useSSL=false
  postgres:
      image: postgres
      expose:
        - 3306
      environment:
        - POSTGRES_USER=rundeck
        - POSTGRES_PASSWORD=rundeck
      volumes:
        - dbdata:/var/lib/postgresql/data
volumes:
    dbdata:

И поместите этот Dockerfile в тот же каталог со следующим содержимым:

ARG IMAGE
FROM ${IMAGE}

RUN sudo apt-get update \
  && sudo echo "deb https://dl.bintray.com/rundeck/rundeck-deb /" | sudo tee -a /etc/apt/sources.list \
  && sudo curl "https://bintray.com/user/downloadSubjectPublicKey?username=bintray" > /tmp/bintray.gpg.key \
  && sudo apt-key add - < /tmp/bintray.gpg.key \
  && sudo apt-get -y install apt-transport-https  \
  && sudo apt-get -y update \
  && sudo apt-get -y install rundeck-cli

ENV RD_AUTH_PROMPT false
# or your defined host
ENV RD_URL http://localhost:4440
ENV RD_USER admin
ENV RD_PASSWORD admin

Чтобы создать всю среду, выполните: docker-compose up

Войдите в свой контейнер с помощью: docker exec -it your_rundeck_container bash

И тестирование RD-CLI выполняется: rd run -j YourJobName -p YourProjectName

Вы можете увидеть результат и выполнение GUI.

Здесь у вас есть много примеров, чтобы сделать что-нибудь с Rundeck и Docker.

...