我已经按照Keycloak管理指南找到了使用standalone.sh
的export and import realms,它确实可以工作,但是它启动了服务器,并且不能退出。
这对我来说是一个问题,因为我想通过执行Ansible playbook来自动化这个过程,所以我做不到,因为任务永远不会结束。
我在Ansible中找到了一种使用async
和wait_for
的变通方法,但我希望有一种更好的方法,不需要使用Admin REST API。
- name: Stop keycloak
service:
name: keycloak
state: stopped
- name: Import realm into Keycloak
shell: "{{keycloak_home}}/bin/standalone.sh -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=dir -Dkeycloak.migration.dir=master -Dkeycloak.migration.usersExportStrategy=SAME_FILE -Dkeycloak.migration.realmName=master"
async: 30
poll: 0
- name: Wait for Keycloak to be started and listen on port 8080
wait_for:
host: 0.0.0.0
port: 8080
delay: 10
- name: Restart keycloak
service:
name: keycloak
state: restarted
发布于 2018-07-26 07:15:01
你可以用Keycloak Admin CLI做到这一点。
在运行任何命令之前进行一次身份验证(请参阅上面链接上的身份验证一节),例如:
$ kcadm.sh config credentials --server http://localhost:8080/auth --realm demorealm --user admin --password admin
完整的导出/导入示例的命令(请参阅领域操作>更新领域一节):
$ kcadm.sh get realms/demorealm > demorealm.json
$ vi demorealm.json
$ kcadm.sh update realms/demorealm -f demorealm.json
也可以使用如下命令进行部分导出/导入:kcadm.sh create partial-export | partialImport ...
。
https://stackoverflow.com/questions/42817789
复制相似问题