RSS Feed

‘konfiguracja’ Category

  1. OpenVPN – No buffer space available (code=55)

    Maj 13, 2015 by 0verlord

    Klikam OpenVPNa dla klienta – musiał się podłączyć do bazy na hoście, ale że host był odfiltrowany od wszelkiego zła (tj. Internetu) trzeba było przepuścić ruch przez vpna.

    W skrócie dla niecierpliwych – taki komunikat oznacza, że wygenerowaliśmy pętlę routingu – np. że wypychamy do klienta (push) trasę do IP, która musi być dostępny normalnie, nie przez vpna – jeżeli serwer vpn ma ipka 1.2.3.4 a w konfigu OpenVPNa wypychamy trasę na ten ipek (push „route 1.2.3.4 255.255.255.0 192.168.1.1”) przez vpna, którego właśnie zestawiamy – tak się dzieje.
    Oczywiście to jest logiczne i naturalne, ale czasem ucieka w pogoni za Innym Lepszym Sensem i z powodu nadmiaru pracy.

    U mnie było tak, że początkowo baza stała na virtualce (konkretnie w LXC). Wtedy OpenVPN stał sobie na głównym hoście i pushował trasy do virtualki dla klientów. Prawie działało, bo ogólnie Firebird takich ustawień nie lubi z kilku powodów (opowieść na inną notkę). Natomiast wtedy OpenVPN się zestawiał.
    Szybka zmiana i „dostrojenie” konfiguracji i jak się okazało, wypchnąłem trasę na IP hosta, na którym stał OpenVPN. Stąd komunikat jak w temacie i ciągłe rekonekty i brak komunikacji.

    Czyli drogie dzieci – po takim komunikacie na kliencie, szukamy w konfigu, co to za jadowita trasa nam się wypycha, a nie powinna i w efekcie zapętla nam się routing.


  2. OTRS 2 i Magic number checking on storable string failed at blib/lib/Storable.pm

    Marzec 26, 2014 by 0verlord

    Dzisiaj króciutko o tym, jak naprawić błąd z tematu.
    OTRS to takie całkiem fajne narzędzie do zarządzania problemami, zgłoszeniami, czy innymi zdarzeniami. Alternatywy to np. Request Tracker, na którym jakiś czas temu (spory) działała infolinia Dialogu.
    Aktualna wersja OTRSa to bodajże 3.3, a niestety przyszło mi przywrócić „do celów archiwalnych” wersję 2.0.

    Na serwerze było zainstalowane Gentoo, w wersji -5 wstecz, php 5.2 i kilka innych fajnostek ;-). Po przegryzieniu się przez combo nginx+apache+mod_perl, dostawałem komunikat podobny do tego poniżej.

    Software error: Magic number checking on storable string failed at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 415, at ../..//Kernel/System/Cache/FileStorable.pm line 128
    

    Jak by zajrzeć do pliku FileStorable.pm, to w okolicach linijki 128 jest funkcja, która pokazuje wszystko co, co jest w cache, a co pasuje do zapytania.
    I WTEM! przypomniało mi się, że już kiedyś miałem podobny problem i rozwiązałem go tak samo, tj. kasując wszystko co jest plikiem w katalogu cache. Ponieważ na tym serwerze otrs był zainstalowany w /opt/otrs2,
    katalog z cache był w /opt/otrs2/var/tmp/.
    czyli krótkie:

    find /opt/otrs2/var/tmp -type -f -exec rm -f {} \; 
    

    i po problemie.


  3. Mikrotik i konfiguracja wifi dla gości – część 1: rb w trybie routera

    Grudzień 12, 2013 by 0verlord

    Czasem przychodzą do nas znajomi/krewni/rodzina i chcą się na chwilę podpiąć do naszej sieci bezprzewodowej. W większości domowych zastosowań nie ma z tym problemów – podajemy hasło i już. Tym przypadkiem nie będziemy się zajmować 😉 W końcu mamy urządzenie sieciowe, które może wiele – Mikrotika.

    Będziemy się zajmować rozwiązaniem firmowym albo rozwiązaniem dla ludzi, którzy nie chcą wpuszczać nikogo na stałe do swojej sieci domowej.

    Jednym z takich przypadków jest np. sala konferencyjna, do której przychodzą ludzie spoza firmy, coś tam prezentują, potrzebują się dostać do swoich sieci czy do swojej poczty.
    Ale nie powinni, i nie mogą mieć dostępu do reszty firmowego lanu.

    Jak zapewne wiedzą posiadacze urządzeń typu Mikrotik, np. z serii 951Ui-2HnD albo 751Ui-2HnD, urządzenia te oferują dwa typy pracy: routera i bridge’a – czyli „tryb pomostu”.
    W tej notce rozważymy jednak wariant prostszy w konfiguracji i zrozumieniu, tj. tryb routera.

    UWAGA: wklejenie tak po prostu konfiguracji, którą pokazuję niżej raczej nic nie popsuje, a w niektórych przypadkach konfiguracji domyślnych może nawet zadziałać. Ten wpis nie jest dla tych, którzy szukają prostej recepty na konfigurację. Ale po niewielkich modyfikacjach wszystko powinno zadziałać jak należy.

    Schemat ideowy tej konfiguracji jest pi*oko taki:

      [ router do netu ] 
              \---  [ lanu ] 
                        \--- [ mikrotik z wifi jako router ] 
                                     \--- ( ludzie, dużo ludzi)
    
    

    Minusy takiej konfiguracji to dostęp do wifi dla ludzi – jedno hasło i wlezą wszędzie.
    Możemy to oczywiście ograniczać, np. uruchamiając Mikrotika jako router, uruchamiając na nim NAT i korzystając z dobrodziejstw filtrowania ruchu po IP.

    Ktoś przytomny zauważy, że przecież w ten sposób skomplikujemy sobie setup, bo oprócz odfiltrowania złych, trzeba wpuścić tez dobrych i zaczyna się kombinowanie. A potem zaczyna się bałagan.
    Kolejnym minusem takiego konfiga jest podwójny NAT. Pierwszy na wifi, drugi na wyjściu. Czyli np. żegnajcie VOIPy. Dopuszczalne, ale ogólnie słabe.

    Czyli lepszy schemat byłby taki:

      [ router do netu ]
             \--- [ lan ] --- [ wifi dla gosci ]
                      \--- [ wifi dla pracowników ]
    
    
    

    Ktoś powie – banalne. Kupujemy dwa Mikrotiki, jeden konfigurujemy w trybie pomostu, zakładamy mocne hasło albo podpinamy do serwera Radiusa i wpuszczamy pracowników. Potem kupujemy drugiego, stawiamy go w trybie routera i filtrujemy we wszystkich kierunkach. Skuteczne, ale cóż za przerażające marnowanie zasobów ;-).
    Lepiej pokazać kto wymiata i zrobić to na jednym urządzeniu.

    Czyli będziemy realizować będziemy następujący scenariusz:

    1. stworzymy dwa interfejsy typu VirtualAP – nie będziemy używać interfejsu głównego (wlan1)
    2. stworzymy dwa interfejsy typu bridge – nazwiemy je bridge-local i bridge-remote
    3. dodamy serwer dhcp – żeby goście dostali adresację
    4. dodamy nat – żeby goście wyszli w świat. Raczej nie będą korzystali z VOIPów, więć podwójny nat raczej im nie zaszkodzi.
    5. nałożymy filtry, żeby goście nie rozleźli się po naszym lanie.


    Nie użyjemy głównego interfejsu wifi (wlan1), ponieważ potrzebujemy dwie sieci wifi, które nie będą we wspólnym lanie. Gdybyśmy próbowali ten sam konfig zrobić na głównym i podrzędnym interfejsie wifi, RSTP natychmiast uzna naszą konfigurację za pętlę w sieci i rozłączy drugi interfejs radiowy. A na dwóch podrzędnych interfejsach już się taka sztuka uda.

    Krok 1. tworzymy dwa ifejsy typu VirtualAp (oraz security-profile do nich, czyli osobna, hasła, osobne ssidy, itp).

    Profile nazywają się „guest-wlan” i „firma-wlan” żeby się potem nie pogubić w tej dość zawiłej konfiguracji. Hasła to odpowiednio: DlaObcych i DlaZiemian.

    /interface wireless security-profiles
    add authentication-types=wpa-psk,wpa2-psk management-protection=allowed mode=dynamic-keys name=guest-wlan supplicant-identity=MikroTik wpa-pre-shared-key=DlaObcych wpa2-pre-shared-key=DlaObcych
    add authentication-types=wpa-psk,wpa2-psk management-protection=allowed mode=dynamic-keys name=firma-wlan supplicant-identity=MikroTik wpa-pre-shared-key=DlaZiemian wpa2-pre-shared-key=DlaZiemian

    potem czyścimy główny interfejs wlan1 z SSIDa:
    /interface wireless
    set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20/40mhz-ht-above country=russia disabled=no distance=indoors frequency=2462 ht-rxchains=0,1 ht-txchains=0,1 l2mtu=2290 mode=ap-bridge ssid="" wireless-protocol=802.11

    i dodajemy dwa nowe, slave’y:

    /interface wireless
    add disabled=no l2mtu=2290 mac-address=D6:CA:6D:A8:0C:7C master-interface=wlan1 name=firma-virtual-ap security-profile=firma-wlan ssid=wifi-firmowa wds-default-bridge=bridge-local
    add disabled=no l2mtu=2290 mac-address=D6:CA:6D:A8:0C:7B master-interface=wlan1 name=guest-virtual-ap security-profile=guest-wlan ssid=wifi-guest wds-default-bridge=bridge-local

    Krok 2.tworzymy dwa bridge, -local i -remote, które później wykorzystamy go magii sieciowej:

    /interface bridge
    add admin-mac=D4:CA:6D:A8:0C:77 auto-mac=no name=bridge-local protocol-mode=rstp
    add l2mtu=1598 name=bridge-remote
    /interface bridge port
    add bridge=bridge-local interface=ether2-master-local
    add bridge=bridge-local interface=guest-virtual-ap
    add bridge=bridge-remote interface=ether1-gateway
    add bridge=bridge-remote interface=firma-virtual-ap

    do bridge-local dodaję także lokalne ethernety. Urządzenia z serii (7,9)51 mają kilka portów ethernetowych do wykorzystania.
    Natomiast cała magia jest w pogrubionych linijkach – tutaj dodajemy firmową sieć wifi do bridga do naszego lanu firmowego. A ponieważ to urządzenie w L2 – przeniesie nam dhcp. A ruch wychodzący zamaskaraduje nam NAT na bridge-remote, który nałożymy w kroku 4.

    Krok 3. dodamy serwer DHCP.

    Dodamy go dla gości, i tylko dla gości. DHCP w naszej sieci firmowej (mamy je prawda?) zapewnia inny serwer, tj. albo nasz router, albo nasz serwer AD, albo nasz inny serwer zapewniający DHCP.

    /ip dhcp-server
    add address-pool=default-dhcp disabled=no interface=bridge-local name=guest-server
    /ip dhcp-server network
    add address=192.168.88.0/24 comment="default configuration" dns-server=192.168.88.1 gateway=192.168.88.1

    nie byłem tutaj oryginalny – po prostu użyłem domyślnej konfiguracji.

    Żeby wszytko działało, musimy jeszcze dodać adresację do interfejsu.

    do głównego (teraz to bridge-remote, który spina ether1-gateway i wlan firmowy) – można włączyć dhcp, albo po prostu ustawić statycznie (w tym drugim przypadku należy pamiętać o dodaniu default route) oraz adresacji dla slave (dałem spójne z poprzednimi konfigami)

    /ip address
    add address=192.168.88.1/24 comment="default configuration" interface=bridge-local network=192.168.88.0

    Krok 4. skoro mamy dhcp i interfejsy i wlany – dodajemy nat

    /ip firewall nat
    add action=masquerade chain=srcnat comment="default configuration" out-interface=bridge-remote to-addresses=0.0.0.0 src-address=192.168.88.0/24
    </pre>

    Ale dlaczego bridge-remote a nie ether1-gateway? Ano dlatego, że adresację, oraz nat konfigurujemy na bridgu, a nie na interfejsach podrzędnych.

    Krok 5. a na koniec – odfiltrowujemy element niepożądany:

    (jeżeli oczywiście nasza sieć firmowa ma adresacje 192.168.1.0/24)

    /ip firewall filter
    add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.88.0/24

    A w kolejnym odcinku pokażę, jak to zrobić w druga stronę, tj. jeżeli MT jest w trybie bridge’a. To jest bardziej skomplikowane i zamotane i służy tylko do utrwalenia własnej manii wielkości ;-).


  4. Firebird fb_shash 1.0 – ściągnij stąd.

    Październik 21, 2013 by 0verlord

    Jest taki UDF do Firebirda, nazywa się jak w temacie, shash. Ale ostatnio zniknął z sajta producenta. Dlatego też możesz go ściągnąć stąd. Jest poczyszczony z objectów i binarek na tyle, ile miałem mocy przerobowych. Na zdrowie zatem.


  5. Diagnozowanie podstawowych problemów z wydajnością bazy Firebird

    Marzec 26, 2013 by 0verlord

    firebird logo

    O bazie Firebird już pisałem, konkretnie w tym poście, gdzie to jest wyjaśnione, po co należy robić gbak i odgbak (tj restore). A dzisiaj będzie o przypadku z życia i o tym, jak taki przypadek wyeliminować.

    Baza po jakimś czasie zaczęła zamulać. Proste zapytanie trwały nawet i kilkadziesiąt sekund. Przy okazji podstroiłem Apacha pod kątem wydajności, bo najpierw miałem niecne podejrzenie, że to właśnie tutaj jest problem. Po poprawkach w konfigu, firebird zaczął chodzić jakieś 30% szybciej, ale zamuła dalej była odczuwalna.

    Po konsultacji z mistrzami wymiataczami, został zarządzony gbak/restore bazy. Dla porządku, baza to Firebird SuperServer, w wersji 2.5.1, a wirtualizacja jest na LXC.

    Po restore, poprzednia prędkość bazy wróciła do normy, co kazało mi odświeżyć sobie info o poście, który wspominałem na początku wpisu. Jeżeli baza wróciła do siebie po restore, to znaczy, że nie zadziałało czyszczenie.

    W cronie regułka była – ale na wszelki wypadek ją odpaliłem z konsoli. Zapytała o usera i hasło do bazy… #fail.
    A to znaczyło, że sweep się nie wykonał, i baza nabrała rozmaitego śmiecia. Te śmieci wyczyścił gbak/restore. Co ciekawe, na innym serwerze mam dokładnie taką samą regułkę – i tam to działa (tak, sprawdziłem dzisiaj). Różnica jest tylko taka, że tam jest Classic, a na wirtualce SuperServer. Kocham takie niespójności…

    Przy okazji, taki problem można zdiagnozować szybciej, przy pomocy polecenia ‚gstat’.
    Na customowej instalacji z tarballa w Debianie, gstat jest tu: /opt/firebird/bin/gstat.
    Uruchamiamy go z parametrem -h i ścieżką do pliku bazy, np. tak:

    /opt/firebird/bin/gstat -h /var/db/bla.fdb

    Powinien pokazać coś podobnego do tego:


    Database "/var/db/bla.fdb"
    Database header page information:
    Flags 0
    Checksum 12345
    Generation 51183
    Page size 4096
    ODS version 11.2
    Oldest transaction 51141
    Oldest active 51142
    Oldest snapshot 51142
    Next transaction 51143
    Bumped transaction 1
    Sequence number 0
    Next attachment ID 104
    Implementation ID 19
    Shadow count 0
    Page buffers 21480
    Next header page 0
    Database dialect 3
    Creation date Mar 26, 2013 21:50:48
    Attributes

    Variable header data:
    Sweep interval: 0
    *END*

    Co nas interesuje z tej listy? Sweep interval – tutaj ustawiony na 0, czyli jak się można domyślić – jest wyłączony. Interesuje nas jeszcze ODS version (czyli on-disk structure), bo to pokazuje, która wersja bazy danych odczyta nasz plik z bazą. Na szczęście w przypadku pomylenia wersji, dostaniemy odpowiedni komunikat, że ODS jest niezgodny.
    Interesuje nas też konkretnie ta sekcja:
    Oldest transaction 51141
    Oldest active 51142
    Oldest snapshot 51142
    Next transaction 51143

    Tutaj mamy numerki, a żeby baza dobrze chodziła, różnica pomiędzy nimi nie może być większa niż 100, lub w innych manualach 200.
    Można to bardzo prosto sprawdzić – wystarczy przez jakiś czas nie włączać sweepa, potem go włączyć i zobaczyć.
    Z punktu wydajnościowego interesuje nas jeszcze parametr „Page buffers” – dla superservera z 4 GB ramu powinien być właśnie na takim poziomie jak u mnie. Ale np. w wersji Firebird Classic, wartość 5000 jest sensowna.

    Podsumowując,


  6. OpenVPN, Mikrotik i Bad LZO decompression header byte

    Marzec 25, 2013 by 0verlord

    mikrotik

    Mikrotik to ogólnie fajny sprzęt i sporo może. Niestety kilka rzeczy jest nie do końca zaimplementowanych. Jedną z tych rzeczy jest OpenVPN.

    Mimo najnowszej wersji softu i na wydawałoby się – poprawnego konfiga, tym razem nie chciał się połączyć.
    Objawy były takie, że łączyło mnie, a po jakimś czasie do loga szedł komunikat
    Inactivity timeout (--ping-restart)
    i oczywiście rozłączało, potem łączyło znowu, znowu nie mogłem nic pingnąć po drugiej stronie i tak w kółko.

    Logi śmiecił jeszcze komunikat pt:
    Bad LZO decompression header byte: (numerek)

    To już w ogóle było pozornie bez związku, ale poszedłem tropem tegoż węża. Po stronie klienta próbowałem to wyłączyć ustawiając
    use-compression=no

    w /ppp profile, ale to nic nie dało. Rzut oka do konfiga po stronie serwera ujawnił straszliwa prawdę – była tam odkomentowana dyrektywa comp-lzo.
    Zakoment, restart openvpna i tadam.wav.

    Podsumowując:

    1. mikrotik obsługuje OpenVPNa w trybie klienta, ale tylko po TCP, udp nie jest zaimplementowane.
    2. … za to obsługuje autoryzację zarówno po certyfikacie, jak i po userze/haśle.
    3. klient nie rozumie kompresji – po stronie serwera trzeba wyłaczyć comp-lzo
    4. jeżeli nie mamy kontroli nad serwerem, i nie możemy tam dodać trasy do podsieci zza naszego vpna, trzeba dodać regułkę maskarady na interfejsie ovpn-out1 (czy też jakkolwiek się u Was nazywa)


  7. Avira unattended install i błąd 15 oraz 12

    Luty 16, 2013 by 0verlord

    avira logotyp

    Avira posiada przyjemnyprzyjemny tryb instalacji nienadzorowanej, czyli Avira Unattended Install. Uruchamia się odpowiedniego .execa z opcją /INF=ścieżka_do_pliku.inf, w konfigu podaje się ścieżkę do klucza licencyjnego i reszta dzieje się sama.

    W ogromnej większości przypadków instalator daje radę, ale od czasu do czasu nie ma ochoty się instalować i pluje do logów błędami.
    Zacznę na błędu 12. Tutaj akurat sprawa jest prawie trywialna, bo wystarczy uruchomić instalator, żeby zobaczyć przepiękne okienko mówiące o tym, że instalator nie ruszy wcześniej niż przed restartem. No to restartujemy. I działa.

    Błąd 15 jest trochę gorszy. Co ciekawe, mieliśmy z nim do czynienia tylko na Windowsach 7 Home. Wg supportu Aviry (a co, się kupuje licencję, to jest kogo atakować) ten numerek błędu oznacza „corrupted inf file”. Sprawdziliśmy – plik jest ok. Ma odpowiednie prawa dostepu – ma odpowiedniego właściciela. Ogólnie jego format jest poprawny, bo taki sam (patrząc na sumę md5) na Windowsie obok się odpala. Pierwsza linia supportu Aviry nie dała rady.

    Co mozna zrobić? Jedną z rzeczy, które nam pomogły, to wyłączenie tworzenia punktu przywracania systemu.
    UseSystemRestore=1

    Domyślnie ta wartość jest ustawiona na 1, co oznacza, że przy instalacji zostanie utworzony punkt przywracania systemu. Poniekąd słusznie. Jak by się coś złego stało, jest do czego wracać. Niestety wygląda na to, że na Windowsach 7 Home, tą opcję trzeba wyłączyć. Po zmianie rzeczonego wpisu na jakiś 80% przypadków instalator ruszył. Ale nie wszędzie.
    Jak się okazało, ten błąd to także inny objaw – tego, że Windows wymaga restartu. Może to nastąpić przy okazji instalacji aktualizacji, albo W Innych Przypadkach Wymagających Restartu. Koloryt lokalny Aviry. Ten problem rozwiązuje się sam przy kolejnym restarcie. Czyli jeżeli widzicie error 15 przy unattended installu – dwa restarty powinny ostatecznie załatwić sprawę.

    Logo AV ze strony producenta.


  8. Lex – aplikacja utraciła połączenie z zabezpieczeniem sieciowym i musi zostać ona zamknięta – jak naprawić

    Luty 14, 2013 by 0verlord

    Lex, aplikacja znana wszystkim prawnikom i nie tylko. Sprzedawana w modelu na ilość jednoczesnych dostępów. Zabezpieczenia, to sprzętowy klucz hasp z opcją sieciową, lub stanowiskowy. Zanim przejdę do omówienie przypadku, wyjaśnię ogólnie jak to działa.

    Lexa instaluje się jako udział sieciowy, i tak samo się go uruchamia. Przykładowo, mapujemy sobie na serwerze dysk L: do którego potem instalujemy aplikację, i potem ten sam dysk pozwalamy montować klientom. Klient odpala aplikację, aplikacja odpytuje sobie serwer klucza hasp, czy aby na pewno można klienta wpuścić i albo to robi – albo rzuca wyjątkiem o wykorzystanych wszystkich licencjach i rozłącza.

    Ale czasem dzieje się to, co jest w temacie tego posta. Wg supportu technicznego, który swoją drogą jest całkiem kompetentny – nastąpiła utrata łączności z serwerem klucza hasp. Tylko jak utraciło? O co w ogóle chodzi?

    W moim przypadku okazało się, że serwer czekał sobie na restart z powodu konieczności zainstalowania aktualizacji, a to z kolei powodowało wybuchy driverów, rozłączenie serwera klucza i inne „nieobsługiwane wyjątki krytyczne”.

    Sam restart serwera jednak nie pomógł – serwer klucza ciągle gubił połączenie. Przeinstalowałem te same drivery do haspa i problem ustąpił – widać coś się przy okazji aktualizacji pogubiło.
    Zato zanim przeklikałem drivery – regularnie o 6:30 rano uruchamiałem na serwerze skrypt restartujący usługę serwera hasp. Wyglądał jakoś tak (nie pamiętam jak się nazywa ten serwis, trzeba sobie samemu sprawdzić z cmd.
    sc stop <nazwa serwisu z sc list>
    sc start <nazwa serwisu>


  9. Zbiorcza aktywacja ulepszeń InsertGT dla wielu podmiotów w BiuroGT

    Styczeń 12, 2013 by 0verlord

    Każdy, kto kiedykolwiek aktualizował Inserta w dowolnym biurze rachunkowym, obił się o problem pt.: zbiorcza aktywacja ulepszeń. A to wszystko jest bardzo proste.

    Ale po kolei. Jeżeli nie mamy do dyspozycji BiuraGT – jest przerypane, bo każdy podmiot trzeba aktualizować i aktywować osobno. Czyli jeżeli biuro rachunkowe korzysta z Inserta, a nie ma biura GT – zasugerujcie im zakup pod groźbą podwyższenia faktury, lub rozliczania aktualizacji na godziny.

    Jeżeli już się biuro ma, sprawa jest prosta i wygląda tak:

    aktualizacja: BiuroGT -> Widok -> bazy danych (lub alt+6) -> nad listą podmiotów będzie „konwersja”. Klikamy, i się robi. Trzeba tylko zadbać o poprawne parametry dla Archiwizatora, bo inaczej nie zrobi się kopia czyli nie zrobi się aktualizacja.

    a teraz punkt główny tego wpisu, tj. aktywacja ulepszeń. Jeżeli nie jest zrobiona, przy podłączeniu do konkretnego podmiotu system „zaproponuje aktywację”. Ale jeżeli podmiotów jest np. 100, klikanie tego ręcznie to masakra – wzywamy na ratunek BiuroGT.

    Zaraz pod opcją „Konwersja” z akapitu wyżej, jest opcja „Synchronizacja licencji”, po kliknięciu której dostajemy takie okno:

    insert gt licencja aktywacja ulepszeń

    I teraz, jeżeli klikniemy po prostu dalej, system będzie miał zapisane stare numery aktywacyjne i nic nie zrobi. Potrzebujemy nowe numery – o ile oczywiście mamy wykupiony abonament na ulepszenia. Załóżmy, że mamy.

    Klikamy w opcję oznaczoną prostokątem, i lądujemy tutaj:

    insert pobieranie numerów

    Klikamy, a jakże, „Pobierz numery aktywacyjne” i numery się pobierają. Jak się pobrały, klikamy ok, i lądujemy na pierwszym ekranie synchronizacji licencji. Tym razem zaznaczamy opcje wg screena i dajemy dalej.

    insert synchro licencji

    Ulepszenia się aktywują z nowymi numerami. Meldujemy w centrali wykonaną misję „Nowy Subiekt”.


  10. Comarch ERP Optima i generowanie wydruków w LibreOffice/Openoffice

    Styczeń 8, 2013 by 0verlord

    logo cdn optima

    Dzisiaj będzie użytkowo – jest sobie Comarch ERP Optima, w której można między pierdyliardem innych rzeczy także generować umowy o dzieło czy inne działo. Oczywiście takie umowy można wygenerować wg przygotowanego uniwersalnego wzorca.
    Ustawienie zmienia się konfiguracje samego programu po zalogowaniu się na dowolne konto – ustawienia są utrzymywane i tak dla konkretnego konta, więc tą samą operację należy powtórzyć tyle razy, ile mamy userów. Jeżeli ktoś zna magiczny update po bazie Optimy, to proszę się dopisać w komentarzach, koniecznie z adresem na który przesłać sześciopak 😉

    Wszystko ładnie widać na screenshocie – owalem jest zakreślone miejsce, gdzie domyślnie jest winword.exe – na screenie jest już poprawione na swriter.exe. To jest akurat uniwersalne ustawienie dla Libre i Openofficea. Edytor tekstu nazywa się tak samo tu i tu.

    Prostokątem jest zaznaczona odpowiednia sekcja w konfiguracji, która jest dostępna dopiero po zalogowaniu się do aplikacji i wybraniu konkretnej bazy (firmy).

    Teraz o wersjach – udało mi się zmusić do właściwego generowania wydruków umów tylko LibreOffice w wersji 3.4.5 (bieżąca 3.6 się sypie i nie generuje całej strony) oraz Openoffice w ostatniej wydanej wersji. Optima natomiast działała w bieżących aktualizacjach w 2012 i w ostatniej (pierwszej?) wersji w 2013 (bieżącej, tj. 2013.2.1.12.14).
    Wersja Windowsa wydaje się nie mieć wpływu na generator – działało mi to zarówno na Win 7 32/64 jak i na XP z sp2 i sp3)
    W wersji 3.6 prawdopodobnie zmieniły się szablony go importu XML z MS OFfice’a – w razie czego można by spróbować wrzucić stare. Ale to zrobię dopiero, jak będę musiał.

    Swoją drogą, ta przekolorowa uspokajająca skórka to nowy, domyślny motyw systemowy. Urocze.

    cdn optima screen konfiguracja

    (logo cdn gdzieś z internetu).