PostgreSQL: PostgreSQL Build Europe 2021 Conference

2021-12-12

Zainteresowanym polecam udział w przyszłych edycjach konferencji PostgreSQL Build. Ostatnia w jakiej uczestniczyłem to europejska edycja 2021.

https://www.postgresbuild.com/agenda

Jak to na konferencjach bywa, było poruszanych mnóstwo tematów. 2 dni pełne wykładów podzielonych na kilka równoległych ścieżek. Organizatorzy przyjęli koncepcję nagrywania sesji wcześniej i odtwarzania ich w trakcie konferencji. Wielką zaletą konferencji jest to, że po każdej sesji wykładowej odbywała się sesja Q&A, gdzie było można na żywo zadawać do prowadzących pytania. Pomysł nagrywania sesji wcześniej daje też to, że demonstracje są udane. Może trochę brakuje „dreszczyku emocji”, kiedy prowadzący demonstrację musi na bieżąco rozwiązywać problemy, ale… co tam – fajnie, że w konferencji można uczestniczyć z domu i fajnie, że można zadawać pytania do samodzielnie wybranych sesji.

Jedna z sesji spodobała mi się szczególnie. Pełna dynamiki, humoru, pytań i odpowiedzi sesja Haki Benita pod tytułem „Mniej znane funkcjonalności PostgreSQL” (Lesser Known PostgreSQL Features). Zobacz zresztą bloga autora – ile kreatywności wymaga rozwiązanie konkretnych problemów i … koniec końców, jak proste te rozwiązania są:

https://hakibenita.com/postgresql-unknown-features

By Rafał Kraik in PostgreSQL

Linux: Zmiana adresu IP v4 na statyczny

2021-12-08

Skoro już masz Linuxa i skoro ten Linux ma świadczyć w sieci jakieś usługi, to może warto byłoby przypisać mu stały adres IP? Oto, jak to zrobić:

Ustal aktualną adresację sieci

Twój system teraz już pracuje w jakieś sieci, pewnie dostaje adres IP przez DHCP. Jeśli ta sieć jest zarządzana przez administratora,  który sam decyduje o adresacji, to zatrzymaj się ze swoją zmianą i skontaktuj się z administratorem. Zazwyczaj admini określają jakie adresy IP są rozdzielane przez serwer DHCP, a jakie można sobie ukraść i przypisać ręcznie do swojego komputera. Tutaj jednak, tym problemem się nie przejmuję, ale Ty musisz.

Poleceniem

ip addres

można wyświetlić informację o aktualnie przypisanym adresie IP

W wyświetlonym wyniku powinno się udać odnaleźć aktualnie wykorzystywany adres IP:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:01:0b:05 brd ff:ff:ff:ff:ff:ff
    inet 192.168.137.220/24 brd 192.168.137.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::8adb:ccf3:d4ed:4331/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Tutaj jest to 192.168.137.220. Dodatkowy zapis /24 określa maskę sieci. W tym przypadku początkowy adres 192.168.137.0 to adres sieci, maską jest 255.255.255.0 a sam komputer otrzymał 192.168.137.220. Twój admin może np. powiedzieć, że możesz używać adresu 192.168.137.100, cała reszta, czyli sieć i maska sieci pozostaną prawdopodobnie takie same.

Warto też znać adres gateway, przez który odbywa się komunikacja z całą siecią zewnętrzną, w tym z Internetem. Wyświetlisz go poleceniem

ip route

U mnie wynik wygląda tak:

default via 192.168.137.1 dev eth0 proto static metric 100 
192.168.137.0/24 dev eth0 proto kernel scope link src 192.168.137.100 metric 100

Gateway to adres wskazywany w pierwszej linijce czyli 192.168.137.1

Co się jeszcze może przydać to adres DNS. Często jest to ten sam adres, co gateway, ale żeby uzyskać pewność, należałoby zajrzeć do pliku /etc/resolv.conf. Jeśli adresu nie znamy, to pomijając pewne zagrożenia security można zaryzykować używanie adresu serwera Google: 8.8.8.8

Mając te informacje możemy przejść do zmian: Czytaj dalej »

By Rafał Kraik in Linuxy

Azure: Postgresql – powershell module

2021-12-07

Kiedy chcesz automatyzować instalację PostgreSQL w Azure przyda się zestaw poleceń dostępny w module Az.PostgreSql. Niestety nie jest on domyślnie instalowany nawet w Cloud Shell.

Komenda do instalacji:

Install-Module -Name Az.PostgreSql

Po instalacji warto sprawdzić czy i w jakiej wersji ten moduł jest dostępny:

Getl-Module -Name Az.PostgreSql

ModuleType Version    PreRelease Name                                ExportedCommands 
---------- -------    ---------- ----                                ---------------- 
Script     0.8.0                 Az.PostgreSql                       {Get-AzPostgreSqlConfiguration, Get-AzPostgreSqlConnectionString, Get-AzPostgreSqlFirewallRule, Get-AzPostgreSqlFlexibleServer…}

Teraz widać, że moduł jest i ma mnóstwo fajnych komend. Ich dokładniejszy opis jest np. tu:

https://docs.microsoft.com/en-us/powershell/module/az.postgresql/?view=azps-6.6.0

Natomiast sama dokumentacja modułu jest tu:

https://www.powershellgallery.com/packages/Az.PostgreSql

 

By Rafał Kraik in Azure, PostgreSQL

Azure: Konfiguracja polaczenia do maszyny wiertualnej bez publicznego adresu IP

2021-11-28

Nie kazda tworzona w Azure usluga powinna byc widoczna publicznie w internecie. Co zrobic, jesli do takiej maszyny chcesz sie jednak zalogowac z zewnatrz swojej sieci? Usluga Bastion moze w tym pomoc. Bastion pozwala na podlaczenie sie do maszyny zdalnej pulpitem lub ssh poprzez przegladarke

Wymagania

– VLAN – pewnie juz masz

– VM podpiety do VLAN – tez pewnie juz masz

– Odpowiednie uprawnienia i otwarty port do VM – z tym moze byc roznie, ale jesli to Twoje zabawki, to tez je masz

Instrukcje

– do sieci wirtulanej dodaj podsiec o nazwie AzureBastionSubnet. Ta siec musi miec maske /26 lub mniejsza. Domyslnie Azure proponuje /24 – tez jest ok

– dodaj obiekt Bastion. Nazwij go jak chcesz, okresl jego wlasciwosci jak chcesz, ale dwie rzeczy sa wazne: Nalezy wybrac ten sam region, wtedy w liscie prezentujacej sieci wirtualne pokaze sie twoja siec, a w liscie podsieci utworzona w poprzednim kroku  podsiec

– prawie gotowe! Przejdz do maszyny wirtualnej, do sekcji Bastion i tam… wypelnij dane dotyczace polaczenia do tej maszyny – kliknij connect i gotowe!

Potencjalne problemy:

– na liscie nie ma vnet, w ktorym chcesz utworzyc Bastion – sprawdz, czy bastion jest tworzony w tym samym regionie, co VLAN

– pojawia sie komunikat o braku podsieci AzureBastionSubnet – no to upewnij sie czy ona jest, czy ma dobra nazwe i maske  podsieci

https://docs.microsoft.com/en-us/azure/bastion/tutorial-create-host-portal

 

By Rafał Kraik in Azure

PostgreSQL: Konfiguracja klienta

2021-11-27

Nie kazdy serwer musi pelnic role  serwera. Zdarzaja sie maszyny, ktore pracuja po prostu jako klient. W przypadku postgresql wymagane bedzie wtedy zainstalowanie narzedzi klienckich.

Swietnie sie zapowiadajace polcenie:

sudo apt install postgresql-client-common

moze jednak sprawic niespodzianke. Po probie polaczenia mozna otrzymac blad:

Error: You must install at least one postgresql-client-<version> package

O co chodzi? Ten pakiet zawiera tylko linki do innych juz wczesniej zainstalowanych binariow. Pewnie fajnie sie sprawdzi, jesli na danym serwerze bylo by zainstalowanych kilka clustrow postgresql, a ty pracujac z nimi preferujesz wybrac tylko jedna wersje klienta. Ale my na poczatku zalozylismy, ze system jest „goly” – nie ma na nim postgresql server. Co zrobic? Trzeba samodzielnie zdecydowac sie na wersje, ktora bedzie wykorzystywana i uruchomic np.:

 sudo apt -y install postgresql-client-12

Teraz mozna juz bedzie polaczyc sie do postgresql:

 psql "host=****  port=5432 dbname=postgres user=****  password='****' sslmode=require"

https://stackoverflow.com/questions/28290488/get-error-you-must-install-at-least-one-postgresql-client-version-package-whe

By Rafał Kraik in PostgreSQL

Azure: Wykaz wszystkich uprawnień w Azure

2021-11-21

Tyle razy tego szukałem… że chyba lepiej będzie zapamiętać ten link też tutaj. Uprawnienia z podziałem na zasoby, które można tworzyć w Azure:

https://docs.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkeyvault

 

By Rafał Kraik in Azure

Linux: Polaczenie do sesji zdalnej w interfejsie graficznym (X session – XRDP)

2021-11-19

Systemy Linux slyna z tego, ze cala administracja moze byc na nich wykonywana zdalnie przez linie polecen. Co zrobic, jesli maszyna powstala z mysla o uruchamianiu programow wykorzystujacych GUI?Np uruchamiania Visual Studio Code?

Z pomoca moze przyjsc pakiet xrdp

Instalacja jest prosta:

sudo apt install xrdp

sudo systemctl enable --now xrdp

sudo ufw allow from any to any port 3389 proto tcp

Potem, na stacji windows, mozna uruchomic „Remote Desktop Client”, podac adres serwera Linux, nazwe uzytkownika haslo i gotowe! No prawie… jesli na serwerze jest juz uruchomione srodowisko graficzne lokalnie, to polaczenie moze sie skonczyc czarnym ekranem. Warto wiec wylaczyc uruchamianie sesji graficznej na serwerze. Mozna to zrobic przez modyfikacje target systemctl znana tez czasami jako run-level

Polecenie

systemctl get-default

wyswietla akualny target. Zeby go zmienic na multi-user bez grafiki, ale z uruchomionymi pozostalymi uslugami posluz sie:

sudo systemctl set-default multi-user.target

Potem mozna przelaczys sie manualnie miedzy target porzez opcje isolate dla systemctl, ale restart tez pomoze.

Od tej porty serwer startuje sobie w interfejsie tekstowym, a xrdp pozwala na polaczenie sie do maszyny zdalnie przez interfejs graficzny

https://linuxconfig.org/ubuntu-20-04-remote-desktop-access-from-windows-10

 

 

By Rafał Kraik in Linuxy