Выложил freeipa_rpc crate для работы с FreeIPA JSON-RPC на Rust. Пока что содержит минимальный набор операций, буду добавлять по необходимости.

Тестим

Для локального деплоя FreeIPA:

mkdir ipa42
docker run --name freeipa_server -ti \
  --privileged \
  -p 443:443 \
  -h ipa.example.test \
  -v $(pwd)/ipa42:/data:Z \
  -e PASSWORD='Astra1234' \
  freeipa/freeipa-server:fedora-42 \
  ipa-server-install -U -r EXAMPLE.TEST --no-ntp

SERVER_IP=$(docker inspect -f '{{ .NetworkSettings.IPAddress }}' freeipa_server)
echo "$SERVER_IP ipa.example.test" | sudo tee -a /etc/hosts

Для запуска тестов:

IPA_BASE_URL="https://ipa.example.test/ipa/" IPA_USER="admin" IPA_PASSWORD="Astra1234" IPA_INSECURE=1 pre-commit run -a