Instalacja konwertera Comarch e-Faktura na Linux

Ten artykuł stanowi uzupełnienie dla artykułu Podręcznik: Konwerter Comarch e-Faktura (zwany dalej podręcznikiem głównym) o informacje dotyczące działania narzędzia na środowisku Linux.

Wymagania systemowe

System Linux powinien spełniać wymagania opisane w niniejszym rozdziale.

Na serwerze Linux muszą być zainstalowane:

  • Java w wersji obsługiwanej zgodnie z podręcznikiem głównym,
  • serwer SSH.

Do kokpitu sterującego potrzebne jest wsparcie GUI. Jest to szczególnie konieczne, ponieważ za pomocą kokpitu sterującego obsługuje się listy kodów i specyficzne wdrożenia.

Do wsparcia GUI na serwerze Linux wymagane jest aktywne X11 Forwarding na serwerze SSH.

Ponadto wymagane są: interfejs graficzny, przykładowo KDE, GNOME, który jest uruchamiany jako serwer, oraz RDP (ang. Remote Desktop Protocol), przykładowo xrdp.

W celu wsparcia sieciowego na serwerze Linux, port Webcockpitu musi być odblokowany.

Oprócz tych specjalnych wymagań dla Linux, obowiązują również pozostałe wymagania z podręcznika głównego.

Narzędzia do pracy z serwerami Linux

W tym rozdziale opisane zostały narzędzia wykorzystywane do pracy z serwerami Linux.

Zarządzanie serwerem

Dostęp do serwera najlepiej uzyskiwać przez SSH i CLI (ang. Command Line Interface). W tym celu wykorzystywane są następujące aplikacje:

  • Putty – klientem jest wyłącznie CLI
  • WinSCP – wykorzystywane do przesyłania plików. Działa również z oprogramowaniem MobaXterm.
  • Unzip – wykorzystywane do rozpakowywania plików podczas instalacji lub aktualizacji

Aplikacje graficzne

Aplikacje graficzne nie mogą być wyświetlane bezpośrednio na serwerze Linux, dlatego ich interfejs uruchamia się na komputerze z obsługą grafiki, np. z systemem Windows.

Aby GUI aplikacji graficznych uruchamianych w terminalu klienta SSH mogło być wyświetlane na lokalnym systemie, muszą być spełnione następujące warunki:

  • na połączonym serwerze Linux musi być aktywne X11 Forwarding na serwerze SSH,
  • na lokalnym systemie musi być zainstalowany serwer X11,
  • X11 Forwarding musi być włączone na kliencie SSH.

Jedną z aplikacji, która już obsługuje te funkcje, jest MobaXterm. Jest to klient terminala z wieloma dodatkowymi funkcjami. Umożliwia m.in. uruchamianie aplikacji graficznej działającej na serwerze Linux i wyświetlanie jej na lokalnym komputerze. Wersja Home Edition może być wykorzystywana komercyjnie, jeśli została samodzielnie zainstalowana przez użytkownika.

Wskazówka
Pliki do instalacji oprogramowania MobaXterm można znaleźć pod linkiem https://mobaxterm.mobatek.net/download.html.

Przygotowanie MobaXterm

Instalacja

Poniższe zrzuty ekranu przedstawiają instalację MobaXterm za pomocą pliku .msi.

Sesja RDP z MobaXterm

Aby uruchomić kokpit sterujący, potrzebna jest sesja RDP, którą definiuje się w MobaXterm.

Przy pierwszym uruchomieniu pojawia się ten ekran przedstawiony poniżej.

Klikając prawym przyciskiem myszy na zakładkę User sessions, definiuje się nowe połączenie (sesję) z serwerem Linux typu RDP.

Następnie wymagane jest także podanie hasła użytkownika dla tej sesji. Po zdefiniowaniu sesji RDP można ją uruchomić podwójnym kliknięciem. Uruchomienie sesji powoduje zalogowanie się do sesji RDP.

W tym przypadku dostępne aplikacje są wyświetlone w panelu bocznym. Panel ten pojawia się po wybraniu przycisku [Activities].

Poprawne wylogowanie następuje po kliknięciu strzałki w prawym górnym rogu i wybraniu przycisku [Log Out], dostępnym pod nazwą użytkownika.

Konfiguracja połączenia SSH z MobaXterm

Za pomocą sesji SSH można wydawać polecenia w wierszu poleceń  na serwerze Linux. Analogicznie do sesji RDP tworzy się ją za pomocą metody PopUp i nowej sesji.

Następnie pojawia się następujące okno do wprowadzania poleceń:

Informacja na temat typu przeglądarki wprowadzonej w ustawieniach Advanced SSH Settings znajduje się na obrazku w opisie ostatniej zakładki z systemem folderów po lewej stronie.

Wykorzystując opcję SCP normal speed można kopiować pliki do aktualnego folderu metodą Drag&Drop (w innych trybach czasami występowały problemy).

Uruchamianie kokpitu stertującego

Jeśli centralne narzędzie Comarch e-Faktura jest zainstalowane zgodnie z rozdziałem Instalacja, kokpit sterujący można uruchomić w następujący sposób:

  1. Należy uruchomić oprogramowanie.
  2. Należy zalogować się do sesji.
  3. Z poziomu Activities należy wybrać aplikację Terminal (jest to sesja CLI w RDP).
  4. W terminalu należy zmienić katalog na katalog instalacyjny, przykładowo cd/opt/comarch/eInvoice/Application.
  5. Aplikacja uruchamia się za pomocą polecenia ./cockpit_start.sh.

W terminalu przed wybraniem przycisku [Enter] wygląda to w następujący sposób:

Aplikacja zostaje uruchomiona po wybraniu przycisku [Enter].

Przed aktualizacją należy zmienić użytkownika za pomocą su – e-Invoice a następnie pod tym użytkownikiem uruchamiana jest aktualizacja, przedstawiona poniżej:

Instalacja

Pierwsza instalacja

Użytkownik i uprawnienia

Zaleca się utworzenie własnego użytkownika i powiązanej z nim własnej grupy użytkowników. Użytkownik powinien posiadać przypisanie do grupy użytkowników jako do grupy głównej. Więcej informacji na ten temat można znaleźć pod linkiem https://wiki.ubuntuusers.de/Benutzer_und_Gruppen/ .

Instalacja i aktualizacje odbywają się za pośrednictwem kokpitu sterującego i powinny być wykonywane przez utworzonego w tym celu użytkownika.

Daje to gwarancję, że po instalacji lub aktualizacji obiekty będą miały tego samego użytkownika i tę samą grupę jako właściciela.

Użytkownicy, którzy pracują z kokpitem sterującym, lub pod którymi działa serwer centralnego narzędzia, również potrzebują przynależności do tej grupy, nawet jeśli nie jest to ich grupa główna.

Instalacja obiektów

Instalacja i konfiguracja przebiegają zasadniczo zgodnie z opisem w artykule Podręcznik: Konwerter Comarch e-Faktura.

Uwaga
Użytkownika należy używać zgodnie z opisem zawartym w rozdziale Użytkownik i uprawnienia.

Na początku tworzony jest folder instalacyjny, przykładowo /opt/comarch/eInvoice/Application, do którego kopiowany jest plik ComarchERechnung.zip (można do tego wykorzystać np. WinSCP).

  1. Na początku tworzony jest folder instalacyjny, przykładowo /opt/comarch/eInvoice/Application, do którego kopiowany jest plik ComarchERechnung.zip (można do tego wykorzystać np. WinSCP).
  2. W terminalu należy przejść do folderu, a następnie rozpakować plik poleceniem unzip ComarchERechnung.zip
  3. Następnie za pomocą ./Copy_CEE_DefaultSpecifiactions_To_InstallFolder.sh kopiuje się pozostałe niezbędne obiekty.
  4. Następnie ustawia się uprawnienia za pomocą poniższej sekwencji poleceń chmod -R ug=rwx /opt/comarch/eInvoice/Application

Dzięki temu użytkownik, który jest właścicielem, oraz grupa, która jest właścicielem, otrzymują pełne prawa do wszystkich obiektów w folderze instalacyjnym i podfolderach.

Jeśli istnieje już instalacja na systemie Windows, możliwe jest przeniesienie jej lub jej części na Linuxa. Dodatkowe informacje, które należy wziąć pod uwagę, opisano w rozdziale Przenoszenie z Windows na Linux.

Nadawanie uprawnień do obiektów

Jeśli użytkownik i grupa użytkowników dla obiektów w folderze instalacyjnym nie są zgodne, należy je zmienić na właściwe w następujący sposób (np. z root-User):

chown -R (nazwa użytkownika) /opt/comarch/eInvoice/Application

zmienia właścicieli wszystkich obiektów w folderze rekursywnie na podanego użytkownika i

chown -R :(nazwa grupy użytkowników) /opt/comarch/eInvoice/Application

zmienia grupę/właściciela grupy dla wszystkich obiektów w folderze rekursywnie na podaną grupę

Uwaga
W komendzie należy pamiętać o dwukropku przed nazwą grupy użytkowników.

Sekwencją poleceń

chmod -R 770 /opt/comarch/eInvoice/Application

nadaje się natomiast rekursywnie uprawnienia rwx dla użytkownika i grupy, które są aktualnie właścicielami.

Wskazówka
Pierwsze uruchomienie kokpitu należy wykonać z poziomu użytkownika utworzonego w tym celu, a następnie sprawdzić dostępność aktualizacji. W ten sposób zostanie utworzony plik update.properties. Jemu również należy nadać uprawnienia 770.
Uwaga
Jeśli w systemie włączone jest logowanie, codziennie tworzone są nowe pliki logów. Może to prowadzić do problemów, jeśli kokpit i serwer działają pod różnymi użytkownikami.

Dlatego w tym przypadku zaleca się:

  • uruchamiać kokpit i serwer zawsze pod tym samym, zdefiniowanym użytkownikiem
  • używać oddzielnych plików log4j (można zmienić w ustawieniach), aby zapisywać logi w różnych folderach dla kokpitu i serwera.

Jeśli różni użytkownicy korzystają z kokpitu, zaleca się wyłączenie tworzenia codziennie nowych plików i nadanie uprawnień do pliku logowania zgodnie z opisem powyżej.

Konfiguracja

Ustawienia dla centralnego narzędzia są wprowadzane za pośrednictwem kokpitu sterującego. Sposób jego uruchomienia opisano w rozdziale Uruchamianie kokpitu sterującego.

Należy pamiętać, że zgodnie z rozdziałem Nadawanie uprawnień do obiektów, wszystkie foldery (takie jak foldery robocze i wyjściowe), a także używane w nich obiekty (np. certyfikat Comarch ERP Enterprise), które są wykorzystywane w ustawieniach, muszą mieć nadane uprawnienia.

Interaktywne uruchamianie serwera narzędzia do konwersji

Serwer narzędzia do konwersji można uruchomić interaktywnie, tzn. w sesji SSH lub terminala za pomocą komend:

  • cd /opt/comarch/eInvoice/Application
  • ./run_conversion_server.sh

Dzięki temu można od razu sprawdzić, czy ustawienia działają.

Interaktywne uruchamianie serwera Webcockpit

Serwer narzędzia do konwersji można uruchomić interaktywnie, tzn. w sesji SSH lub terminala za pomocą komend:

  • cd /opt/comarch/eInvoice/Application
  • ./run_webcockpit server.sh

Dzięki temu można od razu dokonać ustawień.

Serwer narzędzia do konwersji jako usługa systemd

W katalogu instalacyjnym znajduje się plik linux_conversion_service.service, który należy skopiować lub zmienić jego nazwę na einvoice_conversion.service. Zawiera on dane do uruchomienia usługi i ewentualnie może zostać dostosowany:

  • Jako nazwa użytkownika do uruchomienia podano nazwę użytkownika, pod którym działa usługa, niezależnie od tego, kto ją uruchomił.
  • Jeśli java -version nie zwraca żadnego wyniku, należy podać pełną ścieżkę do java (/bin/java).
  • Jeśli nie użyto zalecanego folderu instalacyjnego, należy dostosować ścieżki do folderów.

Następnie:

  • Plik service należy skopiować do /etc/systemd/system.
  • Zmianę należy zgłosić systemowi za pomocą polecenia systemctl daemon-reload.
  • Za pomocą polecenia systemctl enable einvoice_conversion.service należy aktywować automatyczne uruchamianie przy starcie systemu.

Usługa może zostać dezaktywowana za pomocą polecenia:

  • systemctl disable einvoice_conversion.service

Ręcznie usługa jest zarządzana za pomocą poleceń:

  • systemctl status einvoice_conversion.service
  • systemctl start einvoice_conversion.service
  • systemctl stop einvoice_conversion.service
Serwer Webcockpit jako usługa systemd

W katalogu instalacyjnym znajduje się plik linux_webcockpit_service.service, który należy skopiować lub zmienić jego nazwę na einvoice_webcockpit.service.

Aby z poziomu Webcockpitu można było sterować usługami narzędzia do konwersji/ Webcockpitu, należy w następujących skryptach zdefiniować odpowiednie polecenie.

Skrypt Akcja Usługa dla Uwagi
RestartConversionService.sh Restart (tzn. w razie potrzeby zakończenie, a następnie ponowne uruchomienie) Narzędzie konwersji Przykładowo:systemctl restart einvoice_conversion.service
RestartWebCockpitService.sh Restart Webcockpit
StartConversionService.sh Start Narzędzie konwersji
StartWebCockpitService.sh Start Webcockpit
StopConversionService.sh Zakończenie Narzędzie konwersji
StopWebCockpitService.sh Zakończenie Webcockpit

Przed przejściem do kolejnego kroku, wykorzystywane polecenia powinny zakończyć swoje działanie. Jeśli przykładowo wykonuje się polecenie zakończenia usługi, to po jego zakończeniu usługa powinna być zatrzymana.

Dodatkowo, w pliku webcockpit-users.properties należy wprowadzić użytkowników (z hasłem) do logowania się do Webcockpitu.

Kokpit satelitarny

Tworzenie folderu z obiektami dla kokpitu satelitarnego odbywa się za pomocą pliku .sh Create_Installationfolder_For_Satellite.sh (przejście do folderu instalacyjnego i wywołanie za pomocą ./sh-nazwa pliku).

Utworzony folder można następnie skopiować na inny system Windows lub Linux.

Przenoszenie z Windows na Linux

Jeśli istnieje już działająca i skonfigurowana instalacja centralnego narzędzia, należy  postępować w następujący sposób, wykorzystując użytkownikiem zgodnie  z rozdziałem Użytkownik i uprawnienia:

  • Jeśli istniejąca wersja centralnego narzędzia jest już przystosowana do Linuxa, co ma miejsce od wersji 1.5.7, to zamiast polecenia unzip z rozdziału Instalacja obiektów można skopiować folder instalacyjny z systemu Windows wraz ze wszystkimi podfolderami do folderu instalacyjnego na systemie Linux. Następnie należy wykonać pozostałe polecenia opisane w rozdziale Instalacja obiektów.
  • Jeśli nie ma jeszcze wersji przystosowanej do Linuxa postępuje się zgodnie z instrukcją, zawartą w rozdziale Instalacja obiektów. Następnie z systemu Windows kopiuje się wszystkie pliki konfiguracyjne, tj. pliki .xml i .properties, do folderu instalacyjnego. W kolejnym kroku przechodzi się do realizacji punktów, opisanych w rozdziale Nadawanie uprawnień do obiektów.
Uwaga
W przypadku używania nowszej wersji centralnego narzędzia może być konieczne zainstalowanie aktualnej wersji dodatku Comarch e-Invoice na systemie Comarch ERP Enterprise.
  • W plikach konfiguracyjnych ścieżki dostępu nadal odnoszą się do Windowsa. Należy je odpowiednio skonfigurować. Można to zrobić z poziomu kokpitów, ponieważ ścieżki są tam sprawdzane pod kątem poprawności.

Informacje dodatkowe

Problemy z sesją RDP w MobaXterm (sesja GNOME)

Czasami sesja RDP sprawia kłopoty, przykładowo:

  • Sesja nie odpowiada
  • Nowa sesja znika natychmiast po jej uruchomieniu

Jeśli jest to blokada wygaszacza ekranu, należy przejść na zakładkę i wybrać przycisk [Enter], aby ponownie wprowadzić hasło. Na takie blokady można wpływać, klikając prawym przyciskiem myszy na pulpicie i w Ustawieniach w sekcjach Privacy i Power.

Jeśli problemu nie można rozwiązać w inny sposób, ostateczną możliwością jest zalogowanie się za pomocą sesji SSH, ewentualnie przyjęcie uprawnień administratora root (sudo -i), a następnie zakończenie wszystkich własnych procesów lub procesów danego użytkownika:

  • Za pomocą ps aux | grep username można zobaczyć wszystkie sesje, które dotyczą danego użytkownika
  • Jego sesje / procesy są kończone poleceniem pkill: pkill -9 -u username, gdzie username to wartość w pierwszej kolumnie wyniku polecenia ps aux

Jeśli nie dotyczy to innych aplikacji lub użytkowników, można również wykonać reboot.

Wykorzystanie dysków sieciowych

W ustawieniach e-faktury jako foldery wyjściowe, np. dla plików faktur FatturaPA, można podać dyski sieciowe.

Na Linuxie te dyski muszą oczywiście wcześniej zostać udostępnione przez mount.

Uwaga
Należy pamiętać, aby przed uruchomieniem serwera centralnego narzędzia używane dyski były zamontowane za pomocą mount.

Problemy z dostępem do serwera rozliczeniowego

W systemie Linux występowały problemy z szyfrowaniem TLS, ponieważ obowiązywały tu inne ustawienia domyślne niż w systemie Windows. Aby temu zapobiec, przy bezpośrednim wywołaniu serwera oraz w definicji usługi właściwa wersja protokołu TLS jest od razu przekazywana jako właściwość systemowa Javy z opcją -D, za pomocą:

-Dtls.versions=TLSv1.2

poprzez wstawienie tej informacji przed -jar (w plikach run_conversion_server.sh, einvoice_conversion.service). Standardowe wywołanie jest w tych plikach zakomentowane i zostało zastąpione wywołaniem z tą opcją.

Czy ten artykuł był pomocny?