Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add freeipa (not containerised) #241

Merged
merged 74 commits into from
Nov 8, 2023
Merged

Add freeipa (not containerised) #241

merged 74 commits into from
Nov 8, 2023

Conversation

sjpb
Copy link
Collaborator

@sjpb sjpb commented Dec 2, 2022

Adds FreeIPA integration. See ansible/roles/freeipa/README.md for full documentation. In summary:

  • FreeIPA clients can be defined by adding hosts to the freeipa_client group.
  • For production use, an external FreeIPA server should be utilised. For development/testing, the appliance can deploy a FreeIPA server by adding a host to the freeipa_server group. However the FreeIPA state on this server is not persisted and will be lost by a reimage or redeploy.
  • FreeIPA clients have keytabs copied to persistent storage after enrolment so they can be re-enrolled after reimaging or redeploying. However re-enrolment is not automatic if compute nodes are rebuilt via Slurm.

The default Terraform (which is copied when creating an environment with cookecutter) has been changed to provide fully-qualified domain names for all nodes to allow them to enrol with FreeIPA. These changes also provide the new Ansible host/group variables cluster_domain_suffix and node_fqdn used by the freeipa role defaults. Note that retrofitting these changes to an existing deployment will result in Terraform requesting to destroy and recreate instances due to userdata changes.

CI status

FreeIPA is not tested in CI as the server it takes ages to install and I don't think it is a "default" configuration. However the .stackhpc environment does contain a tested configuration - see commented-out config in environments/.stackhpc/inventory/extra_groups.

Orderings

Changes have been made to the ordering in {site,iam,extras}.yml to satisify the following restraints:

  • freeipa server setup is required before nfs mounts, as hosts which are nfs+freeipa clients will use the freeipa server for name resolution of the nfs server
  • basic_users must be performed after nfs mount of $HOME (otherwise the ssh key creation etc is done on a local disk)
  • kerberised nfs mount (which becomes possible with freeipa) requires freeipa client enrolment before nfs mounts.

sjpb added 30 commits November 30, 2022 16:30
@sjpb sjpb changed the base branch from main to alaska October 12, 2023 11:49
@sjpb sjpb changed the base branch from alaska to main October 12, 2023 11:49
@sjpb sjpb marked this pull request as ready for review October 12, 2023 14:58
@sjpb sjpb requested a review from a team as a code owner October 12, 2023 14:58
@sjpb sjpb removed the no-ci Don't run CI on this PR label Oct 12, 2023
@sjpb sjpb marked this pull request as draft October 12, 2023 14:59
@sjpb sjpb marked this pull request as ready for review October 25, 2023 16:24
@sjpb sjpb requested a review from m-bull October 25, 2023 16:24
ansible/adhoc/backup-keytabs.yml Show resolved Hide resolved
ansible/bootstrap.yml Outdated Show resolved Hide resolved
ansible/fatimage.yml Outdated Show resolved Hide resolved
ansible/iam.yml Outdated Show resolved Hide resolved
ansible/iam.yml Outdated Show resolved Hide resolved
ansible/roles/freeipa/tasks/enrole.yml Outdated Show resolved Hide resolved
ansible/roles/freeipa/tasks/enrole.yml Outdated Show resolved Hide resolved
ansible/roles/freeipa/tasks/enrole.yml Outdated Show resolved Hide resolved
ansible/roles/freeipa/tasks/server.yml Show resolved Hide resolved
ansible/roles/freeipa/tasks/users.yml Outdated Show resolved Hide resolved
@sjpb sjpb merged commit 6f31af4 into main Nov 8, 2023
1 check passed
@sjpb sjpb deleted the feat/freeipa-nocontainer branch November 8, 2023 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants