Manual user offboarding in multiple systems was time consuming and prone to errors.
Centralized offboarding pipeline based on Ansible, with an optional GitLab CI job.
ansible/offboard_user.ymlorchestration playbook.ansible/tasks/*per-system tasks.ansible/group_vars/all.example.ymlexample non-secret configuration (copy toall.yml).ansible/group_vars/secrets.example.ymlexample secrets (copy tosecrets.ymland use vault or CI vars)..gitlab-ci.ymlexample CI job.
- RocketChat
- Redmine
- GitLab
- Atlassian (organization level)
- JetBrains (revoke licences)
- Moodle
ansible-playbook -i "localhost," ansible/offboard_user.yml -e email=user@example.com- Set CI variables:
OFFBOARD_EMAILandANSIBLE_VAULT_PASSWORD. - Run the
offboard_userjob from the pipeline.
- Create
ansible/group_vars/secrets.ymland encrypt it withansible-vault. - Provide the password with
--vault-password-file(same approach as in CI).
- Use tags, for example:
ansible-playbook -i "localhost," ansible/offboard_user.yml -e email=user@example.com --tags gitlab- Note: tag filtering works when tasks are imported (
import_tasks) or includes useapply: tags. Plaininclude_taskswill include the file but skip inner tasks.