SaltStack - Salt dla infrastruktury chmurowej

Sól stanowi oddzielny moduł, Salt Cloud zapewnienie maszyn wirtualnych różnych dostawców chmury, takich jak Amazon AWS, Google Compute, itp. Salt Cloud to ogólny interfejs do konfigurowania i zarządzania maszynami wirtualnymi różnych dostawców chmury.

  • Cloud Config- Głównym plikiem konfiguracyjnym dla Salt Cloud jest / etc / salt / cloud i dotyczy on wszystkich maszyn wirtualnych. Główny plik konfiguracyjny nosi nazwęCloud Config.

  • Cloud Providers - Aby skierować reklamy do konkretnych dostawców usług w chmurze, możemy użyć określonego pliku konfiguracyjnego, który znajduje się w /etc/salt/cloud.providers.d/*.conf, nazywają się Cloud Providers.

  • Cloud Profiles - Aby wskazać konkretną maszynę wirtualną, możemy również użyć specjalnego pliku konfiguracyjnego, który dotyczy tylko tej konkretnej maszyny wirtualnej i znajduje się w /etc/salt/cloud.profiles.d/*.conf, są one nazywane jako Cloud Profiles.

W przypadku maszyny wirtualnej ustawienia w Cloud Config jest stosowany jako pierwszy, a następnie w Cloud Providers i wreszcie nadpisanie jest wykonywane przez Cloud Profiles.

Instalacja chmury solnej

Domyślnie Salt Cloud jest wbudowany w Salt i jest łatwo dostępny. Jeśli nie jest dostępny, możemy go zainstalować za pomocą poniższego polecenia.

pip install salt-cloud

Ponieważ Salt Cloud jest oddzielnym modułem i działa we własnym procesie, można go również zainstalować w systemie Salt Minion zamiast w Salt Master.

Udostępnianie maszyny wirtualnej

Aby udostępnić maszynę wirtualną, musimy zdefiniować dostawcę chmury i profil chmury. Po utworzeniu obu możemy udostępnić nową maszynę wirtualną do korzystania z niej.

Dostawca chmury

Informacje o hoście chmury są konfigurowane w pliku konfiguracyjnym dostawcy usług w chmurze. Zwykle podstawowe informacje, które należy skonfigurować, to sterownik chmury, nazwa użytkownika, hasło, klucz prywatny itp. Utwórzmy nowego dostawcę chmury o nazwie jakomy-amazon-cloud.

  • Utwórz plik my-amazon-cloud.conf w /etc/salt/cloud.providers.d/

  • Dodaj nowego dostawcę za pomocą ec2 kierowca.

my-amazon-cloud:
   driver: ec2
   id: '<AWS_ID>'
   key: '<AWS_KEY>'
   private_key: /path/to/privatekey.pem
   keyname: <name of the key>
   securitygroup: default

   minion:
      master: <master server>

Salt zapewnia sterowniki dla różnych hostów w chmurze po wyjęciu z pudełka, takich jak GoGrid, HP Cloud, Google Compute Engine (GCE), Amazon AWS, Joyent, Linode, OpenNebula, ProfitBricks, Proxmox, Saltify, VexxHost, VMWare itp.

Po skonfigurowaniu dostawców usług w chmurze możemy zapytać o dostępną lokalizację dostawcy, dostępne obrazy maszyn i ich różne rozmiary.

salt-cloud --list-location my-amazon-cloud
salt-cloud --list-images my-amazon-cloud
salt-cloud --list-sizes my-amazon-cloud

Profil chmury

Profil chmury określa obraz i rozmiar maszyny wirtualnej. Można go skonfigurować w - /etc/salt/cloud.profiles.d/. Stwórzmy prosty profil,simple.conf.

aws_micro:
   provider: my-amazon-cloud
   image: <image_id>
   size: <machine_id e.g. t1.micro>

Maszyna wirtualna

Po skonfigurowaniu dostawcy i profili możemy łatwo udostępnić maszynę wirtualną za pomocą chmury soli, jak pokazano poniżej.

salt-cloud -p aws_micro master minion1 minion2

Gdzie, p - Profile name master, minion1 i minion2 to nowe maszyny wirtualne.

Szczegóły nowo utworzonej maszyny wirtualnej można uzyskać za pomocą następującego polecenia.

salt-cloud --query

Maszyny wirtualne można zniszczyć za pomocą następującego polecenia -

slat-cloud -d master minion1

Mapa chmur

Mapa chmury to specjalny format do jednoczesnego tworzenia wielu maszyn wirtualnych. Format pliku mapy polega na określeniu profilu, a następnie dodaniu pod nim listy maszyn wirtualnych.

Przykładowy plik mapy wygląda następująco -

micro:
   - web1
   - web2
large:
   - db1
   - db2

Plik mapy można przekazać jako argument do polecenia Salt-Cloud w celu utworzenia maszyny wirtualnej w następujący sposób -

salt-cloud -m /path/to/mapfile