Как использовать Keycloak Admin CLI с Ansible в Windows - PullRequest
0 голосов
/ 16 мая 2019

Я установил Keycloak и создал пользователя Admin через Ansible на Windows 2016 Server, пока все хорошо. Теперь я хочу установить Admin API через Ansible, чтобы настроить Keycloak через Ansible. Когда я запускаю следующие 3 команды локально в командной строке машины Windows, все работает нормально: 1. Установите API: запустите kcadm.bat из папки bin

  1. Подключение к API: \bin>kcadm config credentials --server http://localhost:8080/auth --realm master --user keycloak Затем меня просят об аутентификации: Войдите в систему http://localhost:8080/auth как пользовательский ключ от Realm Master Введите пароль: ххххх

  2. Создать клиента: c:\> kcadm create clients -r master -s clientId=my-client-s "redirectUris=[\"http://localhost:8980/myapp/*\"]" -i > clientid.txt

Кто-нибудь может посоветовать, как это сделать в Ansible?

Я запускаю первую команду с командой win:

- name: install admin cli for keycloak
  win_command: 'C:\Install\Keycloak\keycloak-6.0.1\keycloak- 6.0.1\bin\kcadm.bat'

Я получаю:

fatal: [keykloak-ansible]: FAILED! => {"changed": true, "cmd": "C:\\Install\\Keycloak\\keycloak-6.0.1\\keycloak-6.0.1\\bin\\kcadm.bat", "delta": "0:00:01.190629", "end": "2019-05-16 06:42:36.617885", "msg": "non-zero return code", "rc": 1, "start": "2019-05-16 06:42:35.427256", "stderr": "", "stderr
_lines"

Не уверен, для чего нужен kcadm.bat, потому что из деталей ничего не устанавливается. Поэтому я попытался сразу запустить команду аутентификации следующим образом:

- name: keycloak cli authentication
  win_command: kcadm config credentials --server http://10.128.32.220:8080/auth --realm master --user keycloak --password xxx
 args:
   chdir: 'C:\Install\Keycloak\keycloak-6.0.1\keycloak-6.0.1\bin'

Но это не с:

fatal: [keykloak-ansible]: FAILED! => {"changed": false, "cmd": "C:\\Install\\Keycloak\\keycloak-6.0.1\\keycloak-6.0.1\\bin\\kcadm config credentials --server http://10.128.32.220:8080/auth --realm master --user keycloak", "msg": "Exception calling \"SearchPath\" with \"1\" argument(s): \"Could not
locate the following executable C:\\Install\\Keycloak\\keycloak-6.0.1\\keycloak-6.0.1\\bin\\kcadm.exe

У кого-нибудь есть предложения? Кто-нибудь когда-либо использовал Admin CLI с Ansible в Windows?

Спасибо Rina

1 Ответ

0 голосов
/ 17 мая 2019

Не Windows, а Linux мы делаем то же самое, после установки keycloak мы добавляем Realm / Client / User / Group / Mapper и т. Д. Из kcadm и его очень плавный процесс. Одна вещь, которую вы должны помнить если вы собираетесь использовать kcadm только инструмент администратора для использования Keycloak из командной строки, поэтому обязательно используйте kcadm.sh для linux и kcadm.bat для Windows. Это основные сценарии для запуска команд Keycloak из командной строки.

Таким образом, вы должны запустить команду с помощью kcadm.sh или перейти в каталог keycloak, где существуют файлы kcadm.bat и kcadm.sh, а затем запустить команды, поэтому в нашем случае мы запускаем файл сценария оболочки из Ansible и shell-скрипт содержат такие команды

STEP1: включить HTTPS

/opt/keycloak/bin/kcadm.sh config truststore --trustpass keycloak  /opt/keycloak/security/ssl/keycloak.jks

ШАГ2: Войти с помощью клиента admin-cli

/opt/keycloak/bin/kcadm.sh config credentials --server https://{{keycloak_server_IP}}:{{keycloak_port}}/auth --realm master --user admin --password admin --client admin-cli

ШАГ 3. Создание нового царства ТЕСТ

/opt/keycloak/bin/kcadm.sh create realms -s realm=SURE -s id="TEST" -s enabled=true
  1. Если ваш Keycloak работает на HTTPS, используйте первую команду.
  2. Войдите в Keycloak с master realm.
  3. Теперь после успешного входа в систему вы можете запускать другие команды.
...