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.

    Screenshot showing the GitHub Enterprise Server on VMware installation options.

    Screenshot showing the Deploy the OVA Template menu option.

  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 100 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

Screenshot of the Install GitHub Enterprise window.

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.

Screenshot of the GitHub Enterprise SSH access screen to add a new SSH key.

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.

    Screenshot showing the settings being applied to your instance.

  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.

    Screenshot showing the instance details to enter for provisioning an Azure Blob Storage account.

  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.

    Screenshot showing the Create admin account for 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.

    Screenshot showing the virtual machine name and location to provision a new VM.

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

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

    Screenshot showing the Guest OS Family and Guest OS version to install on the VM.

  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 na maszynie wirtualnej powinien znajdować się plik, 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).

    Screenshot showing the GitHub Actions runner registration and settings.

  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.

    Screenshot of how to edit access for the self-hosted runners.

(Opcjonalnie) Konfigurowanie usługi GitHub Połączenie

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ć usługę GitHub Połączenie, wykonaj kroki opisane w artykule Włączanie automatycznego dostępu do akcji GitHub.com przy użyciu Połączenie usługi GitHub.

Po włączeniu Połączenie usługi GitHub wybierz opcję Serwer, aby użyć akcji z GitHub.com w uruchomieniach przepływu pracy.

Screenshot of the Server can use actions from GitHub.com in workflow runs Enabled.

Konfigurowanie i uruchamianie pierwszego przepływu pracy

Teraz, po skonfigurowaniu Połączenie Actions i GitHub, zastosujmy wszystkie te czynności do dobrego użycia. 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.

Screenshot of an example workflow.

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ć Połączenie usługi GitHub, możesz użyć następującego alternatywnego przepływu pracy.

Screenshot of an alternative example workflow.

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

    Screenshot of another alternative example workflow.

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

    Screenshot of an executed example workflow.

    Można zobaczyć, że jest przetwarzany.

    Screenshot of the workflow processed by runner.

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

Screenshot of the Hello world issue in GitHub created by 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: