Make admin account creation idempotent
This commit is contained in:
		
							parent
							
								
									056b1dc7b9
								
							
						
					
					
						commit
						dac9d1ff23
					
				@ -42,7 +42,7 @@ scenario:
 | 
				
			|||||||
    - create
 | 
					    - create
 | 
				
			||||||
    - prepare
 | 
					    - prepare
 | 
				
			||||||
    - converge
 | 
					    - converge
 | 
				
			||||||
#    - idempotence
 | 
					    - idempotence
 | 
				
			||||||
    - side_effect
 | 
					    - side_effect
 | 
				
			||||||
    - verify
 | 
					    - verify
 | 
				
			||||||
    - cleanup
 | 
					    - cleanup
 | 
				
			||||||
 | 
				
			|||||||
@ -8,16 +8,28 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- include_tasks: tasks/install.yml
 | 
					- include_tasks: tasks/install.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## FIXME not idempotent (keyclock removes the file when it restarts)
 | 
					 | 
				
			||||||
- name: create Keycloak admin user
 | 
					 | 
				
			||||||
  command:
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    argv:
 | 
					 | 
				
			||||||
      - "{{ keycloak_jboss_home }}/bin/add-user-keycloak.sh"
 | 
					 | 
				
			||||||
      - -rmaster
 | 
					 | 
				
			||||||
      - -u{{ keycloak_admin_user }}
 | 
					 | 
				
			||||||
      - -p{{ keycloak_admin_password }}
 | 
					 | 
				
			||||||
    creates: "{{ keycloak_config_dir }}/keycloak-add-user.json"
 | 
					 | 
				
			||||||
  become: yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- include_tasks: tasks/systemd.yml
 | 
					- include_tasks: tasks/systemd.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- block:
 | 
				
			||||||
 | 
					    - name: Check admin credentials by generating a token
 | 
				
			||||||
 | 
					      uri:
 | 
				
			||||||
 | 
					        url: "{{ keycloak_url }}/auth/realms/master/protocol/openid-connect/token"
 | 
				
			||||||
 | 
					        method: POST
 | 
				
			||||||
 | 
					        body: "client_id={{ keycloak_auth_client }}&username={{ keycloak_admin_user }}&password={{ keycloak_admin_password }}&grant_type=password"
 | 
				
			||||||
 | 
					        validate_certs: no
 | 
				
			||||||
 | 
					      register: keycloak_auth_response
 | 
				
			||||||
 | 
					      until: keycloak_auth_response.status == 200
 | 
				
			||||||
 | 
					      retries: 2
 | 
				
			||||||
 | 
					      delay: 2
 | 
				
			||||||
 | 
					  rescue:
 | 
				
			||||||
 | 
					    - name: create Keycloak admin user
 | 
				
			||||||
 | 
					      command:
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        argv:
 | 
				
			||||||
 | 
					          - "{{ keycloak_jboss_home }}/bin/add-user-keycloak.sh"
 | 
				
			||||||
 | 
					          - -rmaster
 | 
				
			||||||
 | 
					          - -u{{ keycloak_admin_user }}
 | 
				
			||||||
 | 
					          - -p{{ keycloak_admin_password }}
 | 
				
			||||||
 | 
					      become: yes
 | 
				
			||||||
 | 
					    - name: restart keycloak
 | 
				
			||||||
 | 
					      include_tasks: tasks/restart_keycloak.yml
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user