Udostępnij za pośrednictwem


Konfigurowanie serwera GitHub Enterprise Server w rozwiązaniu Azure VMware

Z tego artykułu dowiesz się, jak skonfigurować usługę GitHub Enterprise Server , "lokalną" wersję GitHub.com w chmurze prywatnej usługi Azure VMware Solution. Scenariusz obejmuje wystąpienie usługi GitHub Enterprise Server, które może obsługiwać maksymalnie 3000 deweloperów, którzy uruchamiają maksymalnie 25 zadań na minutę w funkcji GitHub Actions. Obejmuje ona konfigurację (w momencie pisania) funkcji w wersji zapoznawczej , takich jak Funkcja GitHub Actions. Aby dostosować konfigurację pod kątem konkretnych potrzeb, zapoznaj się z wymaganiami wymienionymi w temacie Instalowanie serwera GitHub Enterprise Server w programie VMware.

Zanim rozpoczniesz

Serwer GitHub Enterprise Server wymaga ważnego klucza licencji. Możesz zarejestrować się w celu uzyskania licencji próbnej. Jeśli chcesz rozszerzyć możliwości programu GitHub Enterprise Server za pośrednictwem integracji, sprawdź, czy kwalifikujesz się do bezpłatnej licencji dewelopera z pięcioma miejscami. Ubiegać się o tę licencję za pośrednictwem programu partnerskiego usługi GitHub.

Instalowanie serwera GitHub Enterprise Server w programie VMware

  1. Pobierz bieżącą wersję serwera GitHub Enterprise Server dla oprogramowania VMware ESXi/vSphere (OVA) i wdróż pobrany szablon OVA.

    Zrzut ekranu przedstawiający serwer GitHub Enterprise Server w opcjach instalacji programu VMware.

    Zrzut ekranu przedstawiający opcję menu Wdróż szablon OVA.

  2. Podaj rozpoznawalną nazwę nowej maszyny wirtualnej, taką jak GitHubEnterpriseServer. Nie musisz uwzględniać szczegółów wydania w nazwie maszyny wirtualnej, ponieważ te szczegóły stają się nieaktualne po uaktualnieniu wystąpienia.

  3. Wybierz wszystkie wartości domyślne na razie (szczegóły do edycji później) i poczekaj na zaimportowanie OVA.

  4. Po zaimportowaniu dostosuj konfigurację sprzętu w zależności od potrzeb. W naszym przykładowym scenariuszu potrzebujemy następującej konfiguracji.

    Zasób Konfiguracja Standardowa Konfiguracja Standardowa + "Funkcje beta" (akcje)
    Procesory wirtualne 4 8
    Pamięć 32 GB 61 GB
    Dołączony magazyn 250 GB 300 GB
    Magazyn główny 200 GB 200 GB

    Twoje potrzeby mogą się różnić. Zapoznaj się ze wskazówkami dotyczącymi zagadnień sprzętowych w temacie Instalowanie serwera GitHub Enterprise Server w programie VMware. Zobacz również Dodawanie zasobów procesora CPU lub pamięci dla programu VMware , aby dostosować konfigurację sprzętu w zależności od sytuacji.

Konfigurowanie wystąpienia serwera GitHub Enterprise Server

Zrzut ekranu przedstawiający okno Instalowanie usługi GitHub Enterprise.

Po włączeniu nowo aprowizowanej maszyny wirtualnej skonfiguruj ją za pośrednictwem przeglądarki. Musisz przekazać plik licencji i ustawić hasło konsoli zarządzania. Pamiętaj, aby zapisać to hasło gdzieś bezpiecznie.

Zrzut ekranu przedstawiający ekran dostępu SSH usługi GitHub Enterprise w celu dodania nowego klucza SSH.

Zalecamy przynajmniej wykonanie następujących czynności:

  1. Przekaż publiczny klucz SSH do konsoli zarządzania, aby uzyskać dostęp do powłoki administracyjnej za pośrednictwem protokołu SSH.

  2. Skonfiguruj protokół TLS w wystąpieniu , aby można było użyć certyfikatu podpisanego przez zaufany urząd certyfikacji. Zastosuj ustawienia.

    Zrzut ekranu przedstawiający ustawienia stosowane do wystąpienia.

  3. Podczas ponownego uruchamiania wystąpienia skonfiguruj magazyn obiektów blob dla funkcji GitHub Actions.

    Zewnętrzny magazyn obiektów blob jest niezbędny do włączenia funkcji GitHub Actions na serwerze GitHub Enterprise Server (obecnie dostępnym jako funkcja "beta"). Akcje używają tego zewnętrznego magazynu obiektów blob do przechowywania artefaktów i dzienników. Akcje na serwerze GitHub Enterprise Server obsługują usługę Azure Blob Storage jako dostawcę magazynu (i inne). Musisz utworzyć nowe konto usługi Azure Storage z typem konta magazynu BlobStorage.

    Zrzut ekranu przedstawiający szczegóły wystąpienia do wprowadzenia na potrzeby aprowizacji konta usługi Azure Blob Storage.

  4. Po zakończeniu wdrażania nowego zasobu BlobStorage zapisz parametry połączenia (dostępne w obszarze Klucze dostępu), które będą używane później.

  5. Po ponownym uruchomieniu wystąpienia utwórz nowe konto administratora w wystąpieniu. Pamiętaj, aby zanotować również hasło tego użytkownika.

    Zrzut ekranu przedstawiający tworzenie konta administratora dla usługi GitHub Enterprise.

Inne kroki konfiguracji

Aby wzmocnić ochronę wystąpienia w środowisku produkcyjnym, zalecane są następujące opcjonalne kroki konfiguracji:

  1. Konfigurowanie wysokiej dostępności pod kątem ochrony przed:

    • Awarie oprogramowania (poziom systemu operacyjnego lub aplikacji)
    • Awarie sprzętowe (magazyn, procesor CPU, pamięć RAM itd.)
    • Błędy systemu hosta wirtualizacji
    • Logicznie lub fizycznie zerwana sieć
  2. Skonfigurujnarzędzia do tworzenia kopii zapasowych, udostępniając wersje migawek na potrzeby odzyskiwania po awarii hostowane w dostępności, która jest oddzielona od wystąpienia podstawowego.

  3. Skonfiguruj izolację poddomeny przy użyciu prawidłowego certyfikatu TLS w celu ograniczenia skryptów między witrynami i innych powiązanych luk w zabezpieczeniach.

Konfigurowanie modułu uruchamiającego funkcję GitHub Actions

Na tym etapie powinno być uruchomione wystąpienie serwera GitHub Enterprise Server z utworzonym kontem administratora. Należy również mieć zewnętrzny magazyn obiektów blob używany przez funkcję GitHub Actions na potrzeby trwałości.

Utwórz miejsce uruchamiania funkcji GitHub Actions przy użyciu rozwiązania Azure VMware Solution.

  1. Aprowizuj nową maszynę wirtualną w klastrze i bazuj ją na najnowszej wersji systemu Ubuntu Server.

    Zrzut ekranu przedstawiający nazwę i lokalizację maszyny wirtualnej w celu aprowizacji nowej maszyny wirtualnej.

  2. Kontynuuj konfigurowanie, wybierając zasób obliczeniowy, magazyn i zgodność.

  3. Wybierz system operacyjny gościa, który chcesz zainstalować na maszynie wirtualnej.

    Zrzut ekranu przedstawiający wersję rodziny systemów operacyjnych gościa i systemu operacyjnego gościa do zainstalowania na maszynie wirtualnej.

  4. Po utworzeniu maszyny wirtualnej włącz ją i połącz się z nią za pośrednictwem protokołu SSH.

  5. Zainstaluj aplikację modułu uruchamiającego akcje, która uruchamia zadanie z przepływu pracy funkcji GitHub Actions. Zidentyfikuj i pobierz najnowszą wersję x64 systemu Linux modułu uruchamiającego akcje ze strony wydania lub uruchamiając następujący szybki skrypt. Ten skrypt wymaga obecności zarówno narzędzia curl, jak i jq na maszynie wirtualnej.

    LATEST\_RELEASE\_ASSET\_URL=$( curl https://api.github.com/repos/actions/runner/releases/latest | \
    
    jq -r '.assets | .[] | select(.name | match("actions-runner-linux-arm64")) | .url' )
    
    DOWNLOAD\_URL=$( curl $LATEST\_RELEASE\_ASSET\_URL | \
    
    jq -r '.browser\_download\_url' )
    
    curl -OL $DOWNLOAD\_URL
    

    Teraz plik powinien znajdować się lokalnie na maszynie wirtualnej, actions-runner-linux-arm64-*.tar.gz. Wyodrębnij ten tarball lokalnie:

    tar xzf actions-runner-linux-arm64-\*.tar.gz
    

    To wyodrębnianie rozpakuje kilka plików lokalnie, w tym skrypt config.sh i run.sh .

Włączanie funkcji GitHub Actions

Konfigurowanie i włączanie funkcji GitHub Actions w wystąpieniu usługi GitHub Enterprise Server.

  1. Uzyskaj dostęp do powłoki administracyjnej wystąpienia usługi GitHub Enterprise Server za pośrednictwem protokołu SSH, a następnie uruchom następujące polecenia:

  2. Ustaw zmienną środowiskową zawierającą parametry połączenia usługi Blob Storage.

    export CONNECTION\_STRING="<your connection string from the blob storage step>"
    
  3. Konfigurowanie magazynu akcji.

    ghe-config secrets.actions.storage.blob-provider azure
    
    ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`      
    
  4. Zastosuj ustawienia.

    ghe-config-apply
    
  5. Wykonaj wstępne sprawdzanie, aby zainstalować więcej oprogramowania wymaganego przez akcje na serwerze GitHub Enterprise Server.

    ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
    
  6. Włącz akcje i ponownie zastosuj konfigurację.

    ghe-config app.actions.enabled true
    
    ghe-config-apply      
    
  7. Sprawdź kondycję magazynu obiektów blob.

    ghe-actions-check -s blob
    

    Powinny zostać wyświetlone dane wyjściowe: Usługa Blob Storage jest w dobrej kondycji.

  8. Po skonfigurowaniu funkcji GitHub Actions włącz ją dla użytkowników. Zaloguj się do wystąpienia usługi GitHub Enterprise Server jako administrator i wybierz w prawym górnym rogu dowolnej strony.

  9. Na pasku bocznym po lewej stronie wybierz pozycję Przegląd przedsiębiorstwa, a następnie pozycję Zasady, akcje i wybierz opcję włączenia akcji dla wszystkich organizacji.

  10. Skonfiguruj moduł uruchamiający na karcie Moduły uruchamiającego samodzielnie. Wybierz pozycję Dodaj nowy , a następnie pozycję Nowy moduł uruchamiający z listy rozwijanej. Zostanie wyświetlony zestaw poleceń do uruchomienia.

  11. Skopiuj polecenie , aby skonfigurować moduł uruchamiający, na przykład:

    ./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
    
  12. config.sh Skopiuj polecenie i wklej je do sesji w module uruchamiającym akcje (utworzonym wcześniej).

    Zrzut ekranu przedstawiający rejestrację i ustawienia modułu uruchamiającego akcje GitHub Actions.

  13. Użyj polecenia , ./run.sh aby uruchomić moduł uruchamiający:

    Napiwek

    Aby udostępnić ten moduł uruchamiający organizacjom w przedsiębiorstwie, zmodyfikuj dostęp do organizacji. Możesz ograniczyć dostęp do podzbioru organizacji, a nawet do określonych repozytoriów.

    Zrzut ekranu przedstawiający sposób edytowania dostępu dla własnych modułów uruchamiaczy.

(Opcjonalnie) Konfigurowanie programu GitHub Connect

Mimo że ten krok jest opcjonalny, zalecamy użycie akcji typu open source dostępnych w GitHub.com. Umożliwia ona tworzenie pracy innych osób przez odwoływanie się do tych akcji wielokrotnego użytku w przepływach pracy.

Aby włączyć program GitHub Connect, wykonaj kroki opisane w artykule Włączanie automatycznego dostępu do akcji GitHub.com przy użyciu narzędzia GitHub Connect.

Po włączeniu programu GitHub Connect wybierz opcję Serwer, aby użyć akcji z GitHub.com w uruchomieniu przepływu pracy.

Zrzut ekranu przedstawiający serwer może używać akcji z GitHub.com w uruchomionych przepływach pracy Włączone.

Konfigurowanie i uruchamianie pierwszego przepływu pracy

Teraz, po skonfigurowaniu funkcji Actions i GitHub Connect, przełożymy całą tę pracę na dobre użycie. Oto przykładowy przepływ pracy, który odwołuje się do doskonałej akcji octokit/request-action, umożliwiając nam "skrypt" w usłudze GitHub za pośrednictwem interakcji przy użyciu interfejsu API usługi GitHub obsługiwanego przez funkcję GitHub Actions.

W tym podstawowym przepływie pracy użyj polecenia octokit/request-action , aby otworzyć problem w usłudze GitHub przy użyciu interfejsu API.

Zrzut ekranu przedstawiający przykładowy przepływ pracy.

Uwaga

GitHub.com hostuje akcję, ale gdy jest uruchamiana na serwerze GitHub Enterprise Server, automatycznie używa interfejsu API serwera GitHub Enterprise Server.

Jeśli nie chcesz włączać programu GitHub Connect, możesz użyć następującego alternatywnego przepływu pracy.

Zrzut ekranu przedstawiający alternatywny przykładowy przepływ pracy.

  1. Przejdź do repozytorium w wystąpieniu i dodaj powyższy przepływ pracy jako: .github/workflows/hello-world.yml

    Zrzut ekranu przedstawiający inny przykładowy przepływ pracy.

  2. Na karcie Akcje dla repozytorium poczekaj na wykonanie przepływu pracy.

    Zrzut ekranu przedstawiający wykonany przykładowy przepływ pracy.

    Można zobaczyć, że jest przetwarzany.

    Zrzut ekranu przedstawiający przepływ pracy przetworzony przez moduł uruchamiający.

Jeśli wszystko przebiegło pomyślnie, w repozytorium powinien zostać wyświetlony nowy problem zatytułowany "Hello world".

Zrzut ekranu przedstawiający problem Hello world w usłudze GitHub utworzony przez funkcję github-actions.

Gratulacje! Właśnie ukończono pierwszy przepływ pracy Actions na serwerze GitHub Enterprise Server uruchomiony w chmurze prywatnej usługi Azure VMware Solution.

W tym artykule skonfigurowano nowe wystąpienie serwera GitHub Enterprise Server ( self-hosted odpowiednika GitHub.com) w oparciu o chmurę prywatną usługi Azure VMware Solution. Wystąpienie obejmuje obsługę funkcji GitHub Actions i używa usługi Azure Blob Storage do utrwalania dzienników i artefaktów. Jednak po prostu rysujemy powierzchnię tego, co można zrobić za pomocą funkcji GitHub Actions. Zapoznaj się z listą akcji w witrynie GitHub Marketplace lub utwórz własną.

Następne kroki

Po omówieniu konfigurowania serwera GitHub Enterprise Server w chmurze prywatnej usługi Azure VMware Solution dowiedz się więcej o: