LDAP i Active Directory Plugin dla Baculi
Kolejny zestaw pluginów dla środowiska backupowego Bacula wchodzi w fazę stabilizacji. Tym razem są to bliźniacze pluginy służące do wykonywani kopii zapasowych i odtwarzania na poziomie pojedynczych obiektów w środowiskach Microsoft Active Directory oraz LDAP Directory Server. Pluginy otrzymały nazwy odpowiednio:
Pluginy te instalowane są po stronie klienckiej (File Daemon). Aktualnie pluginy wspierają:
- backupy poziomów: Full, Diff, Incr, Since
- pełny tryb Accurate (w backupach innych niż pełne backupuje także informację o skasowanych obiektach a nie tylko dodanych/zmodyfikowanych)
- wewnętrzny zapis danych zbliżony do formatu LDIF (pełny LDIF dla trybu tektowego)
- mieszany tryb zapisu wartości atrybutów danych (tekstowy lub binarny) umożliwiający uzyskanie efektywnego wielkościowo backupu (30% mniejszy od standardowego LDIF'a)
- bezpośrednie wybieranie odtwarzanych danych poprzez dowolny interfejs środowiska Bacula (cli, gui, web)
- odtwarzanie obiektów, atrybutów i ich wartości poprzez listę modyfikacji zgodną z LDIF dzięki czemu odtwarzanie nie ingeruje w aktualną strukturę danych
Instalacja i uruchomienie pluginów jest trywialna. Pluginy muszą zostać wgrane do katalogu na pluginy - dla przypomnienia w Bacula Enterprise jest to: /opt/bacula/plugins. Następnie definiujemy zakres backupu - w parametrze konfiguracyjnym FileSet:
Fileset { Name = "ldap-objects" Include { Plugin = "ldap:/opt/bacula/etc/ldap.conf" } } Fileset { Name = "msad-objects" Include { Plugin = "msad:/opt/bacula/etc/msad.conf" } }
Na zakończenie potrzebujemy poprawnego pliku konfiguracyjnego, którego zawartość definiuje nasze środowisko AD lub serwera LDAP. Dla przykładu może to być:
# # Config file for ldap plugin # LDAPURI = "ldap://localhost/" BINDDN = "cn=admin,dc=inteos,dc=pl" BINDPASS = "secret" BASEDN = "dc=inteos,dc=pl"
I to tyle. Możemy wykonywać backupy. Oczywiście musimy posiadać BINDDN z odpowiednimi prawami. Jak już backupy działają poprawnie to odtwarzanie będzie jeszcze prostsze:
(...) cwd is: / $ cd ldap:/dc=pl/dc=inteos cwd is: ldap:/dc=pl/dc=inteos/ $ dir -rw-r--r-- 1 root root 568 2012-03-17 08:44:34 ldap:/dc=pl/dc=inteos/cn=admin drwxr-xr-x 1 root root 480 2012-03-11 19:30:55 ldap:/dc=pl/dc=inteos/ou=Accounting/ drwxr-xr-x 1 root root 491 2012-03-11 19:28:49 ldap:/dc=pl/dc=inteos/ou=Administrative/ drwxr-xr-x 1 root root 494 2012-03-11 19:28:49 ldap:/dc=pl/dc=inteos/ou=Human Resources/ drwxr-xr-x 1 root root 479 2012-03-11 19:28:49 ldap:/dc=pl/dc=inteos/ou=Janitorial/ drwxr-xr-x 1 root root 479 2012-03-11 19:32:18 ldap:/dc=pl/dc=inteos/ou=Management/ drwxr-xr-x 1 root root 470 2012-03-11 19:28:49 ldap:/dc=pl/dc=inteos/ou=Payroll/ drwxr-xr-x 1 root root 464 2012-03-11 19:28:49 ldap:/dc=pl/dc=inteos/ou=Peons/ drwxr-xr-x 1 root root 506 2012-03-11 19:30:55 ldap:/dc=pl/dc=inteos/ou=Product Development/ drwxr-xr-x 1 root root 494 2012-03-11 19:28:49 ldap:/dc=pl/dc=inteos/ou=Product Testing/ drwxr-xr-x 1 root root 450 2012-03-05 20:55:47 ldap:/dc=pl/dc=inteos/ou=groups/ drwxr-xr-x 1 root root 448 2012-03-06 14:11:20 ldap:/dc=pl/dc=inteos/ou=hosts/ drwxr-xr-x 1 root root 450 2012-04-10 10:48:32 ldap:/dc=pl/dc=inteos/ou=people/ $ add "ou=Product Testing" 121 files marked. $ cd ou=people cwd is: ldap:/dc=pl/dc=inteos/ou=people/ $ dir -rw-r--r-- 1 root root 1006618 2012-04-10 10:48:32 ldap:/dc=pl/dc=inteos/ou=people/uid=john $ add * 1 file marked.
lub w przypadku MSAD:
$ dir drwxr-xr-x 1 root root 924 2012-03-21 18:50:52 msad:/DC=pl/DC=inteos/DC=msad/CN=Builtin/ drwxr-xr-x 1 root root 621 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=Computers/ drwxr-xr-x 1 root root 741 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=ForeignSecurityPrincipals/ -rw-r--r-- 1 root root 723 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=Infrastructure -rw-r--r-- 1 root root 630 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=LostAndFound drwxr-xr-x 1 root root 625 2012-03-21 18:50:51 msad:/DC=pl/DC=inteos/DC=msad/CN=Managed Service Accounts/ -rw-r--r-- 1 root root 663 2012-03-21 18:50:51 msad:/DC=pl/DC=inteos/DC=msad/CN=NTDS Quotas drwxr-xr-x 1 root root 579 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=Program Data/ drwxr-xr-x 1 root root 583 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=System/ drwxr-xr-x 1 root root 601 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/CN=Users/ -rw-r--r-- 1 root root 1495 2012-04-10 16:19:32 msad:/DC=pl/DC=inteos/DC=msad/CN=backup drwxr-xr-x 1 root root 775 2012-03-21 18:50:50 msad:/DC=pl/DC=inteos/DC=msad/OU=Domain Controllers/
Po zaznaczeniu obiektów do odtworzenia są one wgrywane do serwera. Pluginy te są rewelacyjnym uzupełnieniem dotychczas dostępnych metod bakupu zarówno Active Directory (za pomoca pluginu VSS) jak i serwerów LDAP.