Wprowadzenie do systemu FreeBSD na platformie Azure

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy ✔️ skalowania

Ten artykuł zawiera omówienie uruchamiania maszyny wirtualnej FreeBSD na platformie Azure.

Omówienie

FreeBSD for Microsoft Azure to zaawansowany system operacyjny komputera używany do zasilania nowoczesnych serwerów, komputerów stacjonarnych i platform osadzonych.

Firma Microsoft Corporation udostępnia obrazy freeBSD na platformie Azure za pomocą wstępnie skonfigurowanego agenta gościa maszyny wirtualnej platformy Azure . Obecnie następujące wersje FreeBSD są oferowane jako obrazy firmy Microsoft:

  • FreeBSD 10.4 na Azure Marketplace
  • FreeBSD 11.2 na Azure Marketplace
  • FreeBSD 11.3 na Azure Marketplace
  • FreeBSD 12.0 na Azure Marketplace

Następujące wersje FreeBSD obejmują również agenta gościa maszyny wirtualnej platformy Azure, jednak są one oferowane jako obrazy przez FreeBSD Foundation:

  • FreeBSD 11.4 na Azure Marketplace
  • FreeBSD 12.2 w Azure Marketplace
  • FreeBSD 13.0 na Azure Marketplace

Agent jest odpowiedzialny za komunikację między maszyną wirtualną FreeBSD a siecią szkieletową platformy Azure na potrzeby operacji, takich jak aprowizowanie maszyny wirtualnej podczas pierwszego użycia (nazwa użytkownika, hasło lub klucz SSH, nazwa hosta itp.) i włączanie funkcji dla selektywnych rozszerzeń maszyn wirtualnych.

Jeśli chodzi o przyszłe wersje FreeBSD, strategia polega na utrzymaniu aktualności i udostępnieniu najnowszych wersji wkrótce po ich opublikowaniu przez zespół inżynierów wersji FreeBSD.

Tworzenie maszyny wirtualnej FreeBSD za pomocą interfejsu wiersza polecenia platformy Azure w usłudze FreeBSD

Najpierw musisz zainstalować interfejs wiersza polecenia platformy Azure , wykonując następujące polecenie na maszynie FreeBSD.

curl -L https://aka.ms/InstallAzureCli | bash

Jeśli powłoka bash nie jest zainstalowana na maszynie FreeBSD, uruchom następujące polecenie przed instalacją. 

sudo pkg install bash

Jeśli język Python nie jest zainstalowany na maszynie FreeBSD, uruchom następujące polecenia przed instalacją. 

sudo pkg install python38
cd /usr/local/bin 
sudo rm /usr/local/bin/python 
sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python

Podczas instalacji zostanie wyświetlony monit Modify profile to update your $PATH and enable shell/tab completion now? (Y/n). Jeśli odpowiesz y i wprowadzisz /etc/rc.conf jako a path to an rc file to update, możesz napotkać problem ERROR: [Errno 13] Permission denied. Aby rozwiązać ten problem, należy udzielić użytkownikowi prawa zapisu do bieżącego użytkownika względem pliku etc/rc.conf.

Teraz możesz zalogować się do platformy Azure i utworzyć maszynę wirtualną FreeBSD. Poniżej przedstawiono przykład tworzenia maszyny wirtualnej FreeBSD 11.0. Można również dodać parametr --public-ip-address-dns-name z globalnie unikatową nazwą DNS dla nowo utworzonego publicznego adresu IP.

az login 
az group create --name myResourceGroup --location eastus
az vm create --name myFreeBSD11 \
    --resource-group myResourceGroup \
    --image MicrosoftOSTC:FreeBSD:11.0:latest \
    --admin-username azureuser \
    --generate-ssh-keys

Następnie możesz zalogować się do maszyny wirtualnej FreeBSD za pomocą adresu IP wydrukowanego w danych wyjściowych powyższego wdrożenia.

ssh azureuser@xx.xx.xx.xx -i /etc/ssh/ssh_host_rsa_key

Rozszerzenia maszyn wirtualnych dla freeBSD

Poniżej przedstawiono obsługiwane rozszerzenia maszyn wirtualnych w warstwie FreeBSD.

VmAccess

Rozszerzenie VMAccess może:

  • Zresetuj hasło oryginalnego użytkownika sudo.
  • Utwórz nowego użytkownika sudo z określonym hasłem.
  • Ustaw klucz hosta publicznego przy użyciu podanego klucza.
  • Zresetuj klucz hosta publicznego podany podczas aprowizacji maszyny wirtualnej, jeśli nie podano klucza hosta.
  • Otwórz port SSH (22) i przywróć sshd_config, jeśli reset_ssh ma wartość true.
  • Usuń istniejącego użytkownika.
  • Sprawdź dyski.
  • Napraw dodany dysk.

CustomScript

Rozszerzenie CustomScript może:

  • Jeśli to możliwe, pobierz dostosowane skrypty z usługi Azure Storage lub zewnętrznego magazynu publicznego (na przykład GitHub).
  • Uruchom skrypt punktu wejścia.
  • Obsługa poleceń wbudowanych.
  • Automatyczne konwertowanie nowego wiersza w stylu systemu Windows w powłoce i skryptach języka Python.
  • Automatycznie usuwaj model BOM w powłoce i skryptach języka Python.
  • Ochrona poufnych danych w poleceniu CommandToExecute.

Uwaga

Maszyna wirtualna FreeBSD obsługuje teraz tylko język CustomScript w wersji 1.x.

Uwierzytelnianie: nazwy użytkowników, hasła i klucze SSH

Podczas tworzenia maszyny wirtualnej FreeBSD przy użyciu Azure Portal należy podać nazwę użytkownika, hasło lub klucz publiczny SSH. Nazwy użytkowników do wdrażania maszyny wirtualnej FreeBSD na platformie Azure nie mogą być zgodne z nazwami kont systemowych (UID <100) już obecnych na maszynie wirtualnej ("root", na przykład). Obecnie obsługiwany jest tylko klucz SSH RSA. Wielowierszowy klucz SSH musi zaczynać się od i kończyć się ciągiem ---- BEGIN SSH2 PUBLIC KEY -------- END SSH2 PUBLIC KEY ----.

Uzyskiwanie uprawnień administratora

Konto użytkownika określone podczas wdrażania wystąpienia maszyny wirtualnej na platformie Azure jest kontem uprzywilejowanym. Pakiet sudo został zainstalowany w opublikowanym obrazie FreeBSD. Po zalogowaniu się za pomocą tego konta użytkownika możesz uruchamiać polecenia jako katalog główny przy użyciu składni polecenia.

$ sudo <COMMAND>

Opcjonalnie możesz uzyskać powłokę główną przy użyciu polecenia sudo -s.

Znane problemy

Agent gościa maszyny wirtualnej platformy Azure w wersji 2.2.2 ma znany problem, który powoduje niepowodzenie aprowizacji maszyny wirtualnej FreeBSD na platformie Azure. Poprawka została przechwycona przez agenta gościa maszyny wirtualnej platformy Azure w wersji 2.2.3 lub nowszej.

Następne kroki