Witajcie.
Poszukuję sposobu na efektywniejsze i szybsze zrobienie tego co do rej pory robiłem skryptem bash.
Przerzucam konfigurację freeIPA z jednej instalacji na drugą. Potrafię wyświetlić konfigurację danej sekcji (np. użytkowników) i umieścić ją w pliku. Czyli posiadam plik tekstowy z wypisanym tekstowym zrzutem konfiguracji i danych. Do tej pory posługiwałem się skryptem parsującym, który na podstawie wyrażeń regularnych wyłuskiwał dane, obrabiał je (za pomocą cut, sed, tr, czasem awk) i wpisywał do zmiennych. Następnie z tych zmiennych budował polecenia które można było użyć wprost na systemie docelowym, a których wynikiem było utworzenie wspomnianych użytkowników.
Output wygląda mniej więcej tak:
[user@server ~]$ ipa user-find jsmith --all -------------- 1 user matched -------------- dn: uid=jsmith,cn=users,cn=accounts,dc=example,dc=com User login: jsmith ..... Email address: jsmith@example.com, jsmith@new.com
Mój skrypt jest bardzo podobny do tego (poniżej fragmenty):
#!/bin/bash RE_DN="dn:\s+(.*)$" (...) while read line; do if [[ $line =~ $RE_DN ]]; then ipa user-add $login \ --last=$last \ --first=$first \ --cn="$cn" \ (...) fi done
Ręczne rzeźbienie dało mi się jednak we znaki do tego stopnia że rozważałem napisanie dedykowanych do każdej sekcji parserów w jakimś języku wysokiego poziomu.
Teraz pytanie: czy jest na to jakiś konfigurowalny (pół)/automat? Coś gdzie można zdefiniować reguły filtrów i potem zbudować linię z dostępnych elementów?