diff --git a/tests/config/test_config.yml b/tests/config/test_config.yml index c288e45197c749756dd1c46395edac3ca40299c2..e1d33f791d68671d95bd82dcae16a640d0bbd486 100644 --- a/tests/config/test_config.yml +++ b/tests/config/test_config.yml @@ -5,6 +5,8 @@ gather_facts: false tasks: + - include_tasks: ../env_freeipa_facts.yml + # Retrieve current configuration. - name: return current values of the global configuration options ipaconfig: @@ -45,15 +47,17 @@ ipaadmin_password: SomeADMINpassword pac_type: "" - - name: set maxusername to 255 - ipaconfig: - ipaadmin_password: SomeADMINpassword - maxusername: 255 - - name: set maxhostname to 255 + block: + - ipaconfig: + ipaadmin_password: SomeADMINpassword + maxhostname: 255 + when: ipa_version is version('4.8.0', '>=') + + - name: set maxusername to 45 ipaconfig: ipaadmin_password: SomeADMINpassword - maxhostname: 255 + maxusername: 45 - name: set pwdexpnotify to 0 ipaconfig: @@ -186,18 +190,19 @@ failed_when: result.changed - name: set maxhostname to 77 - ipaconfig: - ipaadmin_password: SomeADMINpassword - maxhostname: 77 - register: result - failed_when: not result.changed - - - name: set maxhostname to 77, again - ipaconfig: - ipaadmin_password: SomeADMINpassword - maxhostname: 77 - register: result - failed_when: result.changed + block: + - ipaconfig: + ipaadmin_password: SomeADMINpassword + maxhostname: 77 + register: result + failed_when: not result.changed + + - ipaconfig: + ipaadmin_password: SomeADMINpassword + maxhostname: 77 + register: result + failed_when: result.changed + when: ipa_version is version('4.8.0', '>=') - name: set pwdexpnotify to 17 ipaconfig: @@ -329,7 +334,6 @@ ipaconfig: ipaadmin_password: 'SomeADMINpassword' maxusername: '{{previousconfig.config.maxusername | default(omit)}}' - maxhostname: '{{previousconfig.config.maxhostname | default(omit)}}' homedirectory: '{{previousconfig.config.homedirectory | default(omit)}}' defaultshell: '{{previousconfig.config.defaultshell | default(omit)}}' defaultgroup: '{{previousconfig.config.defaultgroup | default(omit)}}' @@ -352,11 +356,17 @@ register: result failed_when: not result.changed + - name: reset maxhostname + block: + - ipaconfig: + ipaadmin_password: SomeADMINpassword + maxhostname: '{{previousconfig.config.maxhostname | default(omit)}}' + when: ipa_version is version('4.8.0', '>=') + - name: reset changed fields, again ipaconfig: ipaadmin_password: 'SomeADMINpassword' maxusername: '{{previousconfig.config.maxusername | default(omit)}}' - maxhostname: '{{previousconfig.config.maxhostname | default(omit)}}' homedirectory: '{{previousconfig.config.homedirectory | default(omit)}}' defaultshell: '{{previousconfig.config.defaultshell | default(omit)}}' defaultgroup: '{{previousconfig.config.defaultgroup | default(omit)}}' @@ -379,6 +389,13 @@ register: result failed_when: result.changed + - name: reset maxhostname + block: + - ipaconfig: + ipaadmin_password: SomeADMINpassword + maxhostname: '{{previousconfig.config.maxhostname | default(omit)}}' + when: ipa_version is version('4.8.0', '>=') + # cleanup - name: cleanup test group diff --git a/tests/group/test_group_membermanager.yml b/tests/group/test_group_membermanager.yml index 661f26d64f48f517d253af133119ea7924ef4509..f3d58812ac10bd77d5d9491b549cbb92bbcb3af1 100644 --- a/tests/group/test_group_membermanager.yml +++ b/tests/group/test_group_membermanager.yml @@ -5,199 +5,205 @@ gather_facts: false tasks: - - name: Ensure user manangeruser1 and manageruser2 is absent - ipauser: - ipaadmin_password: SomeADMINpassword - name: manageruser1,manageruser2,unknown_user - state: absent - - - name: Ensure group testgroup, managergroup1 and managergroup2 are absent - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup,managergroup1,managergroup2 - state: absent - - - name: Ensure user manageruser1 and manageruser2 are present - ipauser: - ipaadmin_password: SomeADMINpassword - users: - - name: manageruser1 - first: manageruser1 - last: Last1 - - name: manageruser2 - first: manageruser2 - last: Last2 - register: result - failed_when: not result.changed - - - name: Ensure testgroup is present - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - register: result - failed_when: not result.changed - - - name: Ensure managergroup1 is present - ipagroup: - ipaadmin_password: SomeADMINpassword - name: managergroup1 - register: result - failed_when: not result.changed - - - name: Ensure managergroup2 is present - ipagroup: - ipaadmin_password: SomeADMINpassword - name: managergroup2 - register: result - failed_when: not result.changed - - - name: Ensure membermanager user1 is present for testgroup - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1 - register: result - failed_when: not result.changed - - - name: Ensure membermanager user1 is present for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1 - register: result - failed_when: result.changed - - - name: Ensure membermanager group1 is present for testgroup - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_group: managergroup1 - register: result - failed_when: not result.changed - - - name: Ensure membermanager group1 is present for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_group: managergroup1 - register: result - failed_when: result.changed - - - name: Ensure membermanager user2 and group2 members are present for testgroup - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser2 - membermanager_group: managergroup2 - action: member - register: result - failed_when: not result.changed - - - name: Ensure membermanager user2 and group2 members are present for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser2 - membermanager_group: managergroup2 - action: member - register: result - failed_when: result.changed - - - name: Ensure membermanager user and group members are present for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1,manageruser2 - membermanager_group: managergroup1,managergroup2 - action: member - register: result - failed_when: result.changed - - - name: Ensure membermanager user1 and group1 members are absent for testgroup - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1 - membermanager_group: managergroup1 - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Ensure membermanager user1 and group1 members are absent for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1 - membermanager_group: managergroup1 - action: member - state: absent - register: result - failed_when: result.changed - - - name: Ensure membermanager user1 and group1 members are present for testgroup - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1 - membermanager_group: managergroup1 - action: member - register: result - failed_when: not result.changed - - - name: Ensure membermanager user1 and group1 members are present for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1 - membermanager_group: managergroup1 - action: member - register: result - failed_when: result.changed - - - name: Ensure membermanager user and group members are absent for testgroup - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1,manageruser2 - membermanager_group: managergroup1,managergroup2 - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Ensure membermanager user and group members are absent for testgroup again - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: manageruser1,manageruser2 - membermanager_group: managergroup1,managergroup2 - action: member - state: absent - register: result - failed_when: result.changed - - - name: Ensure user manangeruser1 and manageruser2 is absent - ipauser: - ipaadmin_password: SomeADMINpassword - name: manageruser1,manageruser2 - state: absent - register: result - failed_when: not result.changed - - - name: Ensure unknown membermanager_user member failure - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup - membermanager_user: unknown_user - action: member - register: result - failed_when: result.changed or "no such entry" not in result.msg - - - name: Ensure group testgroup, managergroup1 and managergroup2 are absent - ipagroup: - ipaadmin_password: SomeADMINpassword - name: testgroup,managergroup1,managergroup2 - state: absent - register: result - failed_when: not result.changed + - include_tasks: ../env_freeipa_facts.yml + + - name: Tests requiring IPA version 4.8.4+ + block: + - name: Ensure user manangeruser1 and manageruser2 is absent + ipauser: + ipaadmin_password: SomeADMINpassword + name: manageruser1,manageruser2,unknown_user + state: absent + + - name: Ensure group testgroup, managergroup1 and managergroup2 are absent + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup,managergroup1,managergroup2 + state: absent + + - name: Ensure user manageruser1 and manageruser2 are present + ipauser: + ipaadmin_password: SomeADMINpassword + users: + - name: manageruser1 + first: manageruser1 + last: Last1 + - name: manageruser2 + first: manageruser2 + last: Last2 + register: result + failed_when: not result.changed + + - name: Ensure testgroup is present + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + register: result + failed_when: not result.changed + + - name: Ensure managergroup1 is present + ipagroup: + ipaadmin_password: SomeADMINpassword + name: managergroup1 + register: result + failed_when: not result.changed + + - name: Ensure managergroup2 is present + ipagroup: + ipaadmin_password: SomeADMINpassword + name: managergroup2 + register: result + failed_when: not result.changed + + - name: Ensure membermanager user1 is present for testgroup + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1 + register: result + failed_when: not result.changed + + - name: Ensure membermanager user1 is present for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1 + register: result + failed_when: result.changed + + - name: Ensure membermanager group1 is present for testgroup + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_group: managergroup1 + register: result + failed_when: not result.changed + + - name: Ensure membermanager group1 is present for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_group: managergroup1 + register: result + failed_when: result.changed + + - name: Ensure membermanager user2 and group2 members are present for testgroup + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser2 + membermanager_group: managergroup2 + action: member + register: result + failed_when: not result.changed + + - name: Ensure membermanager user2 and group2 members are present for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser2 + membermanager_group: managergroup2 + action: member + register: result + failed_when: result.changed + + - name: Ensure membermanager user and group members are present for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1,manageruser2 + membermanager_group: managergroup1,managergroup2 + action: member + register: result + failed_when: result.changed + + - name: Ensure membermanager user1 and group1 members are absent for testgroup + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1 + membermanager_group: managergroup1 + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Ensure membermanager user1 and group1 members are absent for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1 + membermanager_group: managergroup1 + action: member + state: absent + register: result + failed_when: result.changed + + - name: Ensure membermanager user1 and group1 members are present for testgroup + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1 + membermanager_group: managergroup1 + action: member + register: result + failed_when: not result.changed + + - name: Ensure membermanager user1 and group1 members are present for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1 + membermanager_group: managergroup1 + action: member + register: result + failed_when: result.changed + + - name: Ensure membermanager user and group members are absent for testgroup + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1,manageruser2 + membermanager_group: managergroup1,managergroup2 + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Ensure membermanager user and group members are absent for testgroup again + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: manageruser1,manageruser2 + membermanager_group: managergroup1,managergroup2 + action: member + state: absent + register: result + failed_when: result.changed + + - name: Ensure user manangeruser1 and manageruser2 is absent + ipauser: + ipaadmin_password: SomeADMINpassword + name: manageruser1,manageruser2 + state: absent + register: result + failed_when: not result.changed + + - name: Ensure unknown membermanager_user member failure + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup + membermanager_user: unknown_user + action: member + register: result + failed_when: result.changed or "no such entry" not in result.msg + + - name: Ensure group testgroup, managergroup1 and managergroup2 are absent + ipagroup: + ipaadmin_password: SomeADMINpassword + name: testgroup,managergroup1,managergroup2 + state: absent + register: result + failed_when: not result.changed + + when: ipa_version is version('4.8.4', '>=') diff --git a/tests/service/test_service.yml b/tests/service/test_service.yml index 7035bb9e7b793ca6591d2592ef4480be6e541340..77f3d2911c197b14b58316ccf33bc693ea6a2f8a 100644 --- a/tests/service/test_service.yml +++ b/tests/service/test_service.yml @@ -17,480 +17,485 @@ tasks: # setup - - name: Setup test environment - include_tasks: env_setup.yml + - include_tasks: ../env_freeipa_facts.yml # tests - - name: Ensure service is present - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: - - MS-PAC - - PAD - auth_ind: otp - skip_host_check: no - force: yes - requires_pre_auth: yes - ok_as_delegate: no - ok_to_auth_as_delegate: no - register: result - failed_when: not result.changed - - - name: Ensure service is present, again - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: - - MS_PAC - - PAD - auth_ind: otp - skip_host_check: no - force: no - requires_pre_auth: yes - ok_as_delegate: no - ok_to_auth_as_delegate: no - register: result - failed_when: result.changed - - - name: Modify service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: NONE - ok_as_delegate: yes - ok_to_auth_as_delegate: yes - register: result - failed_when: not result.changed - - - name: Modify service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: NONE - ok_as_delegate: yes - ok_to_auth_as_delegate: yes - register: result - failed_when: result.changed - - - name: Ensure service is present, without host object. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ nohost_fqdn }}" - skip_host_check: yes - register: result - failed_when: not result.changed - - - name: Ensure service is present, without host object, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ nohost_fqdn }}" - skip_host_check: yes - register: result - failed_when: result.changed - - - name: Ensure service is present, with host not in DNS. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: HTTP/svc.ihavenodns.info - skip_host_check: no - force: yes - register: result - failed_when: not result.changed - - - name: Ensure service is present, with host not in DNS, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: HTTP/svc.ihavenodns.info - skip_host_check: no - force: yes - register: result - failed_when: result.changed - - - name: Ensure service is present, whithout host object and with host not in DNS. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: HTTP/no.idontexist.info - skip_host_check: yes - force: yes - register: result - failed_when: not result.changed - - - name: Ensure service is present, whithout host object and with host not in DNS, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: HTTP/no.idontexist.info - skip_host_check: yes - force: yes - register: result - failed_when: result.changed - - - name: Principal host/test.example.com present in service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - register: result - failed_when: not result.changed - - - name: Principal host/test.example.com present in service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - register: result - failed_when: result.changed - - - name: Principal host/test.example.com absent in service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Principal host/test.example.com absent in service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - state: absent - register: result - failed_when: result.changed - - - name: Ensure host can manage service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - action: member - register: result - failed_when: not result.changed - - - name: Ensure host can manage service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: "{{ host1_fqdn }}" - action: member - register: result - failed_when: result.changed - - - name: Ensure host cannot manage service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Ensure host cannot manage service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - action: member - state: absent - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: result.changed - - - name: Ensure service is absent - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - state: absent - register: result - failed_when: not result.changed - - - name: Ensure service is absent, again - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - state: absent - register: result - failed_when: result.changed - - - name: Ensure service is present, with multiple auth_ind values. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - auth_ind: otp,radius - skip_host_check: no - force: yes - register: result - failed_when: not result.changed - - - name: Ensure service is present, with multiple auth_ind values, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - auth_ind: otp,radius - skip_host_check: no - force: yes - register: result - failed_when: result.changed - - - name: Clear auth_ind. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - auth_ind: "" - skip_host_check: no - force: yes - register: result - failed_when: not result.changed - - - name: Clear auth_ind, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - auth_ind: "" - skip_host_check: no - force: yes - register: result - failed_when: result.changed - - - name: Ensure services are absent. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: - - "HTTP/{{ svc_fqdn }}" - - "HTTP/{{ nohost_fqdn }}" - - HTTP/svc.ihavenodns.info - - HTTP/no.idontexist.local - continue: yes - state: absent - register: result - failed_when: not result.changed - - - name: Ensure services are absent. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: - - "HTTP/{{ svc_fqdn }}" - - "HTTP/{{ nohost_fqdn }}" - - HTTP/svc.ihavenodns.info - - HTTP/no.idontexist.local - continue: yes - state: absent - register: result - failed_when: result.changed - - - name: Ensure SMB service is present. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "{{ host1_fqdn }}" - smb: yes - netbiosname: SAMBASVC - register: result - failed_when: not result.changed - - - name: Ensure SMB service is again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "{{ host1_fqdn }}" - smb: yes - netbiosname: SAMBASVC - register: result - failed_when: result.changed - - - name: Ensure SMB service is absent. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "cifs/{{ host1_fqdn }}" - state: absent - register: result - failed_when: not result.changed - - - name: Ensure SMB service is absent, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "cifs/{{ host1_fqdn }}" - state: absent - register: result - failed_when: result.changed - - # cleanup - - name: Cleanup test environment - include_tasks: env_cleanup.yml + - name: Tests with skip_host_check, require IPA version 4.8.0+. + block: + - name: Setup test environment + include_tasks: env_setup.yml + + - name: Ensure service is present + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: + - MS-PAC + - PAD + auth_ind: otp + skip_host_check: no + force: yes + requires_pre_auth: yes + ok_as_delegate: no + ok_to_auth_as_delegate: no + register: result + failed_when: not result.changed + + - name: Ensure service is present, again + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: + - MS_PAC + - PAD + auth_ind: otp + skip_host_check: no + force: no + requires_pre_auth: yes + ok_as_delegate: no + ok_to_auth_as_delegate: no + register: result + failed_when: result.changed + + - name: Modify service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: NONE + ok_as_delegate: yes + ok_to_auth_as_delegate: yes + register: result + failed_when: not result.changed + + - name: Modify service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: NONE + ok_as_delegate: yes + ok_to_auth_as_delegate: yes + register: result + failed_when: result.changed + + - name: Ensure service is present, without host object. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ nohost_fqdn }}" + skip_host_check: yes + register: result + failed_when: not result.changed + + - name: Ensure service is present, without host object, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ nohost_fqdn }}" + skip_host_check: yes + register: result + failed_when: result.changed + + - name: Ensure service is present, with host not in DNS. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: HTTP/svc.ihavenodns.info + skip_host_check: no + force: yes + register: result + failed_when: not result.changed + + - name: Ensure service is present, with host not in DNS, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: HTTP/svc.ihavenodns.info + skip_host_check: no + force: yes + register: result + failed_when: result.changed + + - name: Ensure service is present, whithout host object and with host not in DNS. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: HTTP/no.idontexist.info + skip_host_check: yes + force: yes + register: result + failed_when: not result.changed + + - name: Ensure service is present, whithout host object and with host not in DNS, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: HTTP/no.idontexist.info + skip_host_check: yes + force: yes + register: result + failed_when: result.changed + + - name: Principal host/test.example.com present in service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + register: result + failed_when: not result.changed + + - name: Principal host/test.example.com present in service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + register: result + failed_when: result.changed + + - name: Principal host/test.example.com absent in service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Principal host/test.example.com absent in service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + state: absent + register: result + failed_when: result.changed + + - name: Ensure host can manage service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + action: member + register: result + failed_when: not result.changed + + - name: Ensure host can manage service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: "{{ host1_fqdn }}" + action: member + register: result + failed_when: result.changed + + - name: Ensure host cannot manage service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Ensure host cannot manage service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + action: member + state: absent + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: result.changed + + - name: Ensure service is absent + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + state: absent + register: result + failed_when: not result.changed + + - name: Ensure service is absent, again + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + state: absent + register: result + failed_when: result.changed + + - name: Ensure service is present, with multiple auth_ind values. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + auth_ind: otp,radius + skip_host_check: no + force: yes + register: result + failed_when: not result.changed + + - name: Ensure service is present, with multiple auth_ind values, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + auth_ind: otp,radius + skip_host_check: no + force: yes + register: result + failed_when: result.changed + + - name: Clear auth_ind. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + auth_ind: "" + skip_host_check: no + force: yes + register: result + failed_when: not result.changed + + - name: Clear auth_ind, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + auth_ind: "" + skip_host_check: no + force: yes + register: result + failed_when: result.changed + + - name: Ensure services are absent. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: + - "HTTP/{{ svc_fqdn }}" + - "HTTP/{{ nohost_fqdn }}" + - HTTP/svc.ihavenodns.info + - HTTP/no.idontexist.local + continue: yes + state: absent + register: result + failed_when: not result.changed + + - name: Ensure services are absent. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: + - "HTTP/{{ svc_fqdn }}" + - "HTTP/{{ nohost_fqdn }}" + - HTTP/svc.ihavenodns.info + - HTTP/no.idontexist.local + continue: yes + state: absent + register: result + failed_when: result.changed + + - name: Ensure SMB service is present. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "{{ host1_fqdn }}" + smb: yes + netbiosname: SAMBASVC + register: result + failed_when: not result.changed + + - name: Ensure SMB service is again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "{{ host1_fqdn }}" + smb: yes + netbiosname: SAMBASVC + register: result + failed_when: result.changed + + - name: Ensure SMB service is absent. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "cifs/{{ host1_fqdn }}" + state: absent + register: result + failed_when: not result.changed + + - name: Ensure SMB service is absent, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "cifs/{{ host1_fqdn }}" + state: absent + register: result + failed_when: result.changed + + # cleanup + - name: Cleanup test environment + include_tasks: env_cleanup.yml + when: ipa_version is version('4.7.0', '>=') diff --git a/tests/service/test_service_without_skip_host_check.yml b/tests/service/test_service_without_skip_host_check.yml index 2b627256bf927fc637acd8a7bed1d695c745cd2a..794750e37bb0702a7cf4aca0e7a332bb6140853d 100644 --- a/tests/service/test_service_without_skip_host_check.yml +++ b/tests/service/test_service_without_skip_host_check.yml @@ -4,478 +4,346 @@ become: yes tasks: - - include_tasks: ../env_freeipa_facts.yml - - name: Tests requiring IPA version 4.7.0+ - block: - # setup - - name: Get Domain from server name - set_fact: - ipaserver_domain: "{{ ansible_fqdn.split('.')[1:] | join ('.') }}" - when: ipaserver_domain is not defined - - - name: Set host1, host2 and svc hosts fqdn - set_fact: - host1_fqdn: "{{ 'host1.' + ipaserver_domain }}" - host2_fqdn: "{{ 'host2.' + ipaserver_domain }}" - svc_fqdn: "{{ 'svc.' + ipaserver_domain }}" - - - name: Host absent - ipahost: - ipaadmin_password: SomeADMINpassword - name: - - svc.ihavenodns.info - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - - "{{ svc_fqdn }}" - update_dns: yes - state: absent - - - name: Get IPv4 address prefix from server node - set_fact: - ipv4_prefix: "{{ ansible_default_ipv4.address.split('.')[:-1] | - join('.') }}" - - - name: Add hosts for tests. - ipahost: - ipaadmin_password: SomeADMINpassword - hosts: - - name: "{{ host1_fqdn }}" - ip_address: "{{ ipv4_prefix + '.201' }}" - update_dns: yes - - name: "{{ host2_fqdn }}" - ip_address: "{{ ipv4_prefix + '.202' }}" - update_dns: yes - - name: "{{ svc_fqdn }}" - ip_address: "{{ ipv4_prefix + '.203' }}" - update_dns: yes - - name: svc.ihavenodns.info - update_dns: no - force: yes - - - name: Ensure testing user user01 is present. - ipauser: - ipaadmin_password: SomeADMINpassword - name: user01 - first: user01 - last: last - - - name: Ensure testing user user02 is present. - ipauser: - ipaadmin_password: SomeADMINpassword - name: user02 - first: user02 - last: last - - - name: Ensure testing group group01 is present. - ipagroup: - ipaadmin_password: SomeADMINpassword - name: group01 - - - name: Ensure testing group group02 is present. - ipagroup: - ipaadmin_password: SomeADMINpassword - name: group02 - - - name: Ensure testing hostgroup hostgroup01 is present. - ipahostgroup: - ipaadmin_password: SomeADMINpassword - name: hostgroup01 - - - name: Ensure testing hostgroup hostgroup02 is present. - ipahostgroup: - ipaadmin_password: SomeADMINpassword - name: hostgroup02 - - - name: Ensure services are absent. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: - - "HTTP/{{ svc_fqdn }}" - - HTTP/svc.ihavenodns.info - state: absent - - # tests - - name: Ensure service is present - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: - - MS-PAC - - PAD - auth_ind: otp - force: no - requires_pre_auth: yes - ok_as_delegate: no - ok_to_auth_as_delegate: no - register: result - failed_when: not result.changed - - - name: Ensure service is present, again - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: - - MS_PAC - - PAD - auth_ind: otp - force: no - requires_pre_auth: yes - ok_as_delegate: no - ok_to_auth_as_delegate: no - register: result - failed_when: result.changed - - - name: Modify service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: NONE - ok_as_delegate: yes - ok_to_auth_as_delegate: yes - register: result - failed_when: not result.changed - - - name: Modify service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - pac_type: NONE - ok_as_delegate: yes - ok_to_auth_as_delegate: yes - register: result - failed_when: result.changed - - - name: Ensure service is present, with host not in DNS. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: HTTP/svc.ihavenodns.info - force: yes - register: result - failed_when: not result.changed - - - name: Ensure service is present, with host not in DNS, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: HTTP/svc.ihavenodns.info - force: yes - register: result - failed_when: result.changed - - - name: Principal host/test.example.com present in service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - register: result - failed_when: not result.changed - - - name: Principal host/test.exabple.com present in service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - register: result - failed_when: result.changed - - - name: Principal host/test.example.com absent in service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Principal host/test.example.com absent in service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - principal: - - host/test.example.com - action: member - state: absent - register: result - failed_when: result.changed - - - name: Ensure host can manage service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - action: member - register: result - failed_when: not result.changed - - - name: Ensure host can manage service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: "{{ host1_fqdn }}" - action: member - register: result - failed_when: result.changed - - - name: Ensure host cannot manage service. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Ensure host cannot manage service, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - action: member - state: absent - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_create_keytab_user: - - user01 - - user02 - allow_create_keytab_group: - - group01 - - group02 - allow_create_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_create_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - register: result - failed_when: result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: not result.changed - - - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups, again. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - allow_retrieve_keytab_user: - - user01 - - user02 - allow_retrieve_keytab_group: - - group01 - - group02 - allow_retrieve_keytab_host: - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - allow_retrieve_keytab_hostgroup: - - hostgroup01 - - hostgroup02 - action: member - state: absent - register: result - failed_when: result.changed - - # - - name: Ensure service is absent - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - state: absent - register: result - failed_when: not result.changed - - - name: Ensure service is absent, again - ipaservice: - ipaadmin_password: SomeADMINpassword - name: "HTTP/{{ svc_fqdn }}" - state: absent - register: result - failed_when: result.changed - - # cleanup - - - name: Ensure services are absent. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: - - "HTTP/{{ svc_fqdn }}" - - HTTP/svc.ihavenodns.info - state: absent - - - name: Ensure host is absent - ipahost: - ipaadmin_password: SomeADMINpassword - name: - - "{{ svc_fqdn }}" - - "{{ host1_fqdn }}" - - "{{ host2_fqdn }}" - - svc.ihavenodns.info - state: absent - - - name: Ensure testing users are absent. - ipauser: - ipaadmin_password: SomeADMINpassword - name: - - user01 - - user02 - state: absent - - - name: Ensure testing groups are absent. - ipagroup: - ipaadmin_password: SomeADMINpassword - name: - - group01 - - group02 - state: absent - - - name: Ensure testing hostgroup hostgroup01 is absent. - ipagroup: - ipaadmin_password: SomeADMINpassword - name: - - hostgroup01 - state: absent - - - name: Ensure testing hostgroup hostgroup02 is absent. - ipagroup: - ipaadmin_password: SomeADMINpassword - name: - - hostgroup02 - state: absent - when: ipa_version is version('4.7.0', '>=') + # setup + + - name: Setup test environment + include_tasks: env_setup.yml + + # tests + - name: Ensure service is present + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: + - MS-PAC + - PAD + auth_ind: otp + force: no + requires_pre_auth: yes + ok_as_delegate: no + ok_to_auth_as_delegate: no + register: result + failed_when: not result.changed + + - name: Ensure service is present, again + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: + - MS_PAC + - PAD + auth_ind: otp + force: no + requires_pre_auth: yes + ok_as_delegate: no + ok_to_auth_as_delegate: no + register: result + failed_when: result.changed + + - name: Modify service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: NONE + ok_as_delegate: yes + ok_to_auth_as_delegate: yes + register: result + failed_when: not result.changed + + - name: Modify service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + pac_type: NONE + ok_as_delegate: yes + ok_to_auth_as_delegate: yes + register: result + failed_when: result.changed + + - name: Ensure service is present, with host not in DNS. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: HTTP/svc.ihavenodns.info + force: yes + register: result + failed_when: not result.changed + + - name: Ensure service is present, with host not in DNS, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: HTTP/svc.ihavenodns.info + force: yes + register: result + failed_when: result.changed + + - name: Principal host/test.example.com present in service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + register: result + failed_when: not result.changed + + - name: Principal host/test.exabple.com present in service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + register: result + failed_when: result.changed + + - name: Principal host/test.example.com absent in service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Principal host/test.example.com absent in service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + principal: + - host/test.example.com + action: member + state: absent + register: result + failed_when: result.changed + + - name: Ensure host can manage service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + action: member + register: result + failed_when: not result.changed + + - name: Ensure host can manage service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: "{{ host1_fqdn }}" + action: member + register: result + failed_when: result.changed + + - name: Ensure host cannot manage service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Ensure host cannot manage service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + action: member + state: absent + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_create_keytab_user: + - user01 + - user02 + allow_create_keytab_group: + - group01 + - group02 + allow_create_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_create_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + register: result + failed_when: result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: not result.changed + + - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + allow_retrieve_keytab_host: + - "{{ host1_fqdn }}" + - "{{ host2_fqdn }}" + allow_retrieve_keytab_hostgroup: + - hostgroup01 + - hostgroup02 + action: member + state: absent + register: result + failed_when: result.changed + + # + - name: Ensure service is absent + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + state: absent + register: result + failed_when: not result.changed + + - name: Ensure service is absent, again + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "HTTP/{{ svc_fqdn }}" + state: absent + register: result + failed_when: result.changed + + # cleanup + - name: Cleanup test environment + include_tasks: env_cleanup.yml