Korzystanie z narzędzi automatyzacji infrastruktury z maszynami wirtualnymi na platformie Azure
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania
Aby tworzyć maszyny wirtualne platformy Azure i zarządzać nimi w spójny sposób na dużą skalę, zwykle wymagana jest pewna forma automatyzacji. Istnieje wiele narzędzi i rozwiązań, które umożliwiają automatyzację pełnego wdrażania infrastruktury platformy Azure i cyklu życia zarządzania. W tym artykule przedstawiono niektóre narzędzia automatyzacji infrastruktury, których można używać na platformie Azure. Te narzędzia często pasują do jednego z następujących podejść:
Automatyzowanie konfiguracji maszyn wirtualnych
- Narzędzia obejmują szablony Ansible, Chef, Puppet, Bicep i Azure Resource Manager.
- Narzędzia specyficzne dla dostosowywania maszyny wirtualnej obejmują cloud-init dla maszyn wirtualnych z systemem Linux, konfigurację żądanego stanu programu PowerShell (DSC) oraz rozszerzenie niestandardowego skryptu platformy Azure dla wszystkich maszyn wirtualnych platformy Azure.
Automatyzowanie zarządzania infrastrukturą
- Narzędzia obejmują narzędzie Packer do automatyzowania niestandardowych kompilacji obrazów maszyn wirtualnych i narzędzia Terraform w celu zautomatyzowania procesu kompilacji infrastruktury.
- Usługa Azure Automation może wykonywać akcje w infrastrukturze platformy Azure i infrastrukturze lokalnej.
Automatyzowanie wdrażania i dostarczania aplikacji
- Przykłady obejmują usługi Azure DevOps Services i jenkins.
Terraform
Terraform to narzędzie automatyzacji, które umożliwia definiowanie i tworzenie całej infrastruktury platformy Azure przy użyciu jednego języka formatu szablonu — hashiCorp Configuration Language (HCL). Za pomocą narzędzia Terraform definiujesz szablony, które automatyzują proces tworzenia zasobów sieci, magazynu i maszyn wirtualnych dla danego rozwiązania aplikacji. Istniejące szablony programu Terraform można używać dla innych platform z platformą Azure, aby zapewnić spójność i uprościć wdrażanie infrastruktury bez konieczności konwertowania na szablon usługi Azure Resource Manager.
Instrukcje:
- Instalowanie i konfigurowanie programu Terraform na platformie Azure.
- Tworzenie infrastruktury platformy Azure za pomocą programu Terraform.
Azure Automation
Usługa Azure Automation używa elementów Runbook do przetwarzania zestawu zadań na docelowych maszynach wirtualnych. Usługa Azure Automation służy do zarządzania istniejącymi maszynami wirtualnymi, a nie do tworzenia infrastruktury. Usługa Azure Automation może działać zarówno na maszynach wirtualnych z systemami Linux, jak i Windows, oraz na lokalnych maszynach wirtualnych lub fizycznych z hybrydowym procesem roboczym elementu Runbook. Elementy Runbook mogą być przechowywane w repozytorium kontroli źródła, takim jak GitHub. Te elementy Runbook można następnie uruchamiać ręcznie lub zgodnie ze zdefiniowanym harmonogramem.
Usługa Azure Automation udostępnia również usługę Desired State Configuration (DSC), która umożliwia tworzenie definicji sposobu konfigurowania danego zestawu maszyn wirtualnych. Rozszerzenie DSC gwarantuje, że wymagana konfiguracja jest stosowana, a maszyna wirtualna pozostaje spójna. Usługa Azure Automation DSC działa zarówno na maszynach z systemami Windows, jak i Linux.
Instrukcje:
- Tworzenie elementu Runbook programu PowerShell.
- Użyj hybrydowego procesu roboczego elementu Runbook do zarządzania zasobami lokalnymi.
- Użyj usługi Azure Automation DSC.
Azure DevOps Services
Azure DevOps Services to zestaw narzędzi, które ułatwiają udostępnianie i śledzenie kodu, używanie zautomatyzowanych kompilacji i tworzenie kompletnego potoku ciągłej integracji i programowania (CI/CD). Usługa Azure DevOps Services integruje się z programem Visual Studio i innymi edytorami, aby uprościć użycie. Usługi Azure DevOps Services mogą również tworzyć i konfigurować maszyny wirtualne platformy Azure, a następnie wdrażać w nich kod.
Dowiedz się więcej na następujące tematy:
Szablon usługi Azure Resource Manager
Usługa Azure Resource Manager to usługa wdrażania i zarządzania dla platformy Azure. Zapewnia warstwę zarządzania, która umożliwia tworzenie, aktualizowanie i usuwanie zasobów w ramach subskrypcji platformy Azure. Za pomocą funkcji zarządzania, takich jak kontrola dostępu, blokady i tagi, można zabezpieczyć oraz zorganizować zasoby po wdrożeniu.
Instrukcje:
- Wdrażanie maszyn wirtualnych typu spot przy użyciu szablonu usługi Resource Manager.
- Utwórz maszynę wirtualną z systemem Windows na podstawie szablonu usługi Resource Manager.
- Pobierz szablon maszyny wirtualnej.
- Tworzenie szablonu narzędzia Azure Image Builder.
Bicep
Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów platformy Azure. W pliku Bicep zdefiniujesz infrastrukturę, którą chcesz wdrożyć na platformie Azure, a następnie użyjesz tego pliku w całym cyklu życia programowania, aby wielokrotnie wdrażać infrastrukturę. Zasoby są wdrażane w spójny sposób.
Rozpocznij pracę z przewodnikiem Szybki start.
Cloud-init
Cloud-init to powszechnie używana metoda dostosowywania maszyny wirtualnej z systemem Linux podczas jej pierwszego rozruchu. Za pomocą pakietu cloud-init można instalować pakiety i zapisywać pliki lub konfigurować użytkowników i zabezpieczenia. Ponieważ pakiet cloud-init jest wywoływany podczas początkowego procesu rozruchu, nie ma dodatkowych kroków ani agentów wymaganych do zastosowania konfiguracji. Aby uzyskać więcej informacji na temat prawidłowego formatowania #cloud-config
plików, zobacz witrynę dokumentacji cloud-init. #cloud-config
pliki są plikami tekstowym zakodowanym w formacie base64.
Pakiet cloud-init działa również w różnych dystrybucjach. Przykładowo nie używa się poleceń apt-get install lub yum install do zainstalowania pakietu. Zamiast tego możesz zdefiniować listę pakietów do zainstalowania. Pakiet cloud-init automatycznie używa natywnego narzędzia do zarządzania pakietami dla wybranej dystrybucji.
Aktywnie współpracujemy z naszymi zatwierdzonymi partnerami dystrybucji systemu Linux w celu udostępnienia obrazów z obsługą pakietu cloud-init w witrynie Azure Marketplace. Te obrazy sprawiają, że wdrożenia i konfiguracje pakietu cloud-init bezproblemowo współpracują z maszynami wirtualnymi i zestawami skalowania maszyn wirtualnych. Dowiedz się więcej na temat pakietu cloud-init na platformie Azure:
- Obsługa pakietu Cloud-init dla maszyn wirtualnych z systemem Linux na platformie Azure
- Wypróbuj samouczek dotyczący automatycznej konfiguracji maszyny wirtualnej przy użyciu pakietu cloud-init.
Rozszerzenie DSC programu PowerShell
PowerShell Desired State Configuration (DSC) to platforma zarządzania służąca do definiowania konfiguracji maszyn docelowych. Rozszerzenie DSC można również używać w systemie Linux za pośrednictwem serwera OMI (Open Management Infrastructure).
Konfiguracje DSC definiują, co należy zainstalować na maszynie i jak skonfigurować hosta. Aparat lokalnego programu Configuration Manager (LCM) działa na każdym węźle docelowym, który przetwarza żądane akcje na podstawie wypychanych konfiguracji. Serwer ściągania to usługa internetowa działająca na hoście centralnym do przechowywania konfiguracji DSC i skojarzonych zasobów. Serwer ściągania komunikuje się z aparatem LCM na każdym hoście docelowym, aby zapewnić wymagane konfiguracje i zgłosić zgodność.
Instrukcje:
- Utwórz podstawową konfigurację DSC.
- Konfigurowanie serwera ściągania DSC.
- Użyj rozszerzenia DSC dla systemu Linux.
Rozszerzenie niestandardowego skryptu platformy Azure
Rozszerzenie niestandardowego skryptu platformy Azure dla systemu Linux lub Windows pobiera i wykonuje skrypty na maszynach wirtualnych platformy Azure. Rozszerzenie można używać podczas tworzenia maszyny wirtualnej lub w dowolnym momencie, gdy maszyna wirtualna jest używana.
Skrypty można pobrać z usługi Azure Storage lub z dowolnej lokalizacji publicznej, takiej jak repozytorium GitHub. Rozszerzenie niestandardowego skryptu umożliwia pisanie skryptów w dowolnym języku uruchomionym na źródłowej maszynie wirtualnej. Te skrypty mogą służyć do instalowania aplikacji lub konfigurowania maszyny wirtualnej zgodnie z potrzebami. Aby zabezpieczyć poświadczenia, poufne informacje, takie jak hasła, mogą być przechowywane w konfiguracji chronionej. Te poświadczenia są odszyfrowywane tylko wewnątrz maszyny wirtualnej.
Instrukcje:
- Utwórz maszynę wirtualną z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure i użyj rozszerzenia niestandardowego skryptu.
- Utwórz maszynę wirtualną z systemem Windows przy użyciu programu Azure PowerShell i użyj rozszerzenia niestandardowego skryptu.
Ansible
Rozwiązanie Ansible to aparat automatyzacji do zarządzania konfiguracją, tworzenia maszyny wirtualnej lub wdrażania aplikacji. Rozwiązanie Ansible używa modelu bez agenta, zwykle z kluczami SSH, do uwierzytelniania maszyn docelowych i zarządzania nimi. Zadania konfiguracyjne są definiowane w podręcznikach z kilkoma modułami rozwiązania Ansible dostępnymi do wykonywania określonych zadań. Aby uzyskać więcej informacji, zobacz Jak działa narzędzie Ansible.
Instrukcje:
- Instalowanie i konfigurowanie rozwiązania Ansible w systemie Linux do użycia z platformą Azure.
- Utwórz maszynę wirtualną z systemem Linux.
- Zarządzanie maszyną wirtualną z systemem Linux.
Chef
Chef to platforma automatyzacji, która ułatwia definiowanie sposobu konfigurowania, wdrażania i zarządzania infrastrukturą. Niektóre składniki obejmują program Chef Habitat na potrzeby automatyzacji cyklu życia aplikacji, a nie infrastrukturę, oraz program Chef InSpec, który pomaga zautomatyzować zgodność z wymaganiami dotyczącymi zabezpieczeń i zasad. Klienci programu Chef są instalowani na maszynach docelowych z co najmniej jednym centralnym serwerem Chef, które przechowują konfiguracje i zarządzają nimi. Aby uzyskać więcej informacji, zobacz Omówienie programu Chef.
Instrukcje:
- Wdrażanie usługi Chef Automate z witryny Azure Marketplace.
- Zainstaluj program Chef w systemie Windows i utwórz maszyny wirtualne platformy Azure.
Puppet
Puppet to platforma automatyzacji gotowa do użycia w przedsiębiorstwie, która obsługuje proces dostarczania i wdrażania aplikacji. Agenci są instalowani na maszynach docelowych, aby umożliwić usłudze Puppet Master uruchamianie manifestów definiujących żądaną konfigurację infrastruktury i maszyn wirtualnych platformy Azure. Platforma Puppet może integrować się z innymi rozwiązaniami, takimi jak Jenkins i GitHub, w celu uzyskania ulepszonego przepływu pracy devops. Aby uzyskać więcej informacji, zobacz Jak działa narzędzie Puppet.
Instrukcje:
Pakowacz
Narzędzie Packer automatyzuje proces kompilacji podczas tworzenia niestandardowego obrazu maszyny wirtualnej na platformie Azure. Program Packer służy do definiowania systemu operacyjnego i uruchamiania skryptów po konfiguracji, które dostosują maszynę wirtualną pod kątem konkretnych potrzeb. Po skonfigurowaniu maszyna wirtualna zostanie przechwycona jako obraz dysku zarządzanego. Program Packer automatyzuje proces tworzenia źródłowej maszyny wirtualnej, zasobów sieci i magazynu, uruchamiania skryptów konfiguracji, a następnie tworzenia obrazu maszyny wirtualnej.
Instrukcje:
- Użyj narzędzia Packer, aby utworzyć obraz maszyny wirtualnej z systemem Linux na platformie Azure.
- Użyj narzędzia Packer, aby utworzyć obraz maszyny wirtualnej z systemem Windows na platformie Azure.
Jenkins
Jenkins to serwer ciągłej integracji, który ułatwia wdrażanie i testowanie aplikacji oraz tworzenie zautomatyzowanych potoków na potrzeby dostarczania kodu. Istnieją setki wtyczek, które rozszerzają podstawową platformę Jenkins, a także można zintegrować z wieloma innymi produktami i rozwiązaniami za pośrednictwem elementów webhook. Narzędzie Jenkins można zainstalować ręcznie na maszynie wirtualnej platformy Azure, uruchomić narzędzie Jenkins z poziomu kontenera platformy Docker lub użyć wstępnie utworzonego obrazu witryny Azure Marketplace.
Instrukcje:
Następne kroki
Istnieje wiele różnych opcji używania narzędzi automatyzacji infrastruktury na platformie Azure. Masz swobodę korzystania z rozwiązania, które najlepiej odpowiada Twoim potrzebom i środowisku. Aby rozpocząć pracę i wypróbować niektóre narzędzia wbudowane na platformie Azure, zobacz, jak zautomatyzować dostosowywanie maszyny wirtualnej z systemem Linux lub Windows .