Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 2
  • 112

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?

Maciej_Krauze
  • Zapytał
  • @ Maciej_Krauze | 21.10.2015
    • lider
    • laureat
    • 45
    • 16
    • 58
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 1

Nie wiem czy nie najprosciej byłoby użyć perla/awka. regexpami wyciągać to co trzeba, a potem printem wydrukować linie w odpowiednim formacie.

Andrzej_Dopierała
  • Odpowiedział
  • @ Andrzej_Dopierała | 24.10.2015
    • lider
    • laureat
    • ekspert
    • 83
    • 65
    • 169
Komentarze
Prawdopodobnie tym to się skończy. Dawno nie używałem perla i dlatego wolałem użyć czegoś wysokopoziomowego typu C/C++ czy Java bo wraz ze wzrostem skomplikowania skrypt bash przestaje być dla mnie czytelny. Spróbuję użyć perla i wrzucić tu próbkę.
Skomentował : @ Maciej_Krauze ,26.10.2015
  • 45
  • 16
  • 58