Jelajahi Sumber

add a reusable token regeneration fragment

Grega Bremec 1 bulan lalu
induk
melakukan
12ee848517
1 mengubah file dengan 30 tambahan dan 0 penghapusan
  1. 30 0
      playbooks/roles/deploy-rhbk/tasks/token.yml

+ 30 - 0
playbooks/roles/deploy-rhbk/tasks/token.yml

@@ -0,0 +1,30 @@
+---
+# Required variables:
+#   rhbk_fqdn             the FQDN of the Keycloak server
+#   rhbk.admin.username   admin user
+#   rhbk.admin.password   admin password
+#
+# Registers (or refreshes) a fact called admin_token which you can use for auth.
+#
+- name: Get an auth token from Keycloak
+  ansible.builtin.uri:
+    method: POST
+    return_content: yes
+    validate_certs: no
+    url: "https://{{ rhbk_fqdn }}/realms/master/protocol/openid-connect/token"
+    headers:
+      Accept: application/json
+    body: "client_id=admin-cli&username={{ rhbk.admin.username | default('rhbk') }}&password={{ rhbk.admin.password | default('secret') }}&grant_type=password"
+  register: sso_token_rsp
+
+- name: Verify that the token is usable.
+  ansible.builtin.assert:
+    that: sso_token_rsp.json is defined and sso_token_rsp.json.access_token is defined
+    fail_msg: "ERROR: Failed to obtain authentication token from Keycloak."
+    success_msg: "OK: got authentication token."
+
+- name: Store the token as a fact
+  ansible.builtin.set_fact:
+    admin_token: "{{ sso_token_rsp.json.access_token }}"
+
+...