generelles Vorgehen

Installieren Sie salt-cloud

apt -y install salt-cloud

Salt-Cloud ist darauf angewiesen, dass die virtuellen Maschinen bereits im Basis-Image einen SSH-Key enthalten, mit dem sich der Salt-Master ohne Passwort als Root-User anmelden kann. Bei fast allen Cloud-Providern können Sie öffentliche SSH-Schlüssel hinterlegen, welche in jeder neuerstellten VM hinterlegt werden.

Sofern der Root-User des Salt-Masters noch nicht über ein SSH-Schlüsselpaar verfügt, generieren Sie eines.

ssh-keygen -t rsa

Scaleway

Hinterlegen Sie den öffentlichen SSH-Schlüssel des Salt-Masters, damit dieser in jeder neuen VM hinterlegt wird.

Sofern Sie es noch nicht getan haben, generieren Sie ein API-Token-Paar.

Tragen Sie den Access key aund den Scret key in die Datei /etc/salt/cloud.providers.d/scaleway.conf ein.

my-scaleway-config:
  access_key: <organization ID>
  token: xxx-yyy-zzz-12345-abcdefg
  driver: scaleway
  key_filename: /etc/salt/id_rsa

Als access_key tragen Sie Ihre Scaleway organization ID ein.

Binden Sie die privaten SSH-Schlüssel nicht aus dem Verzeichnis /root/.ssh ein. Dies wird zu einem Fehler wie diesem führen. salt-cloud: error: There was a profile error: The defined ssh_keyfile '/root/.ssh/id_rsa' does not exist Kopieren Sie den Schlüssel beispielsweise nach /etc/salt

cp /root/.ssh/id_rsa /etc/salt/

Prüfen Sie, ob eine Verbindung zu Scaleway-API aufgebaut werden kann.

salt-cloud --list-images my-scaleway-config

Legen Sie eine Datei /etc/salt/cloud.profiles/scaleway.conf an.

ubuntu_xenial_s:
  provider: my-scaleway-config
  image: 005fa2c5-3563-4682-a62f-111a98fa2149
  commercial_type: VC1S
  script_args: -l
  minion:
    master: <your_master>
debian_s:
  provider: my-scaleway-config
  image: 5da80087-ea0a-482d-80d2-e2e50622f8e0
  commercial_type: VC1S
  script_args: -l
  minion:
    master: <your_master>

debian_start1:
  provider: my-scaleway-config
  image: 5da80087-ea0a-482d-80d2-e2e50622f8e0
  commercial_type: START1-XS
  script_args: -l
  minion:
    master: <your_master>

salt-cloud -p debian_start1 debian-minion-1

Digital Ocean

Fügen Sie die öffentlichen SSH Schlüssel des Salt-Masters ein.

Generieren Sie einen "Personal access tokens", welchen Sie später für den Salt-Master verwenden.

/etc/salt/cloud.providers.d/digital_ocean.conf

my-digitalocean-config:
  driver: digital_ocean
  personal_access_token: XYZ
  ssh_key_file: /etc/salt/id_rsa
  ssh_key_names: Salt-Master
  location: ams2

Prüfen Sie, ob eine Verbindung zu DigitalOcean-API aufgebaut werden kann.

salt-cloud --list-images my-digitalocean-config
salt-cloud --list-locations my-digitalocean-config

/etc/salt/cloud.profiles.d/digital_ocean.conf

debian9@digitalocean:
  provider: my-digitalocean-config
  image: debian-8-x64
  size: 512MB
  location: ams3
  private_networking: False
  backups_enabled: False
  ipv6: False

ubuntu18@digitalocean:
  provider: my-digitalocean-config
  image: ubuntu-18-04-x64
  size: 512MB
  location: ams3
  private_networking: False
  backups_enabled: False
  ipv6: False

centos7@digitalocean:
  provider: my-digitalocean-config
  image: centos-7-x64
  size: 512MB
  location: ams3
  private_networking: False
  backups_enabled: False
  ipv6: False

Vmware ESXi

Pyvmomi wird benötigt.

Verwenden Sie nicht das Ubuntu-Paket. Dieses ist zu alt.

apt-get install salt-cloud python-pip
pip install pyvmomi

Virtual Center als Provider

/etc/salt/cloud.providers.d/vcenter.conf

vcenter01:
  driver: vmware
  user: '[email protected]'
  password: 'geheim'
  url: '172.16.70.157'

Profile zum Clonen

/etc/salt/cloud.profiles.d/vmware.conf

ubuntu@esx01:
  provider: vcenter01
  clonefrom: UBUNTU
  num_cpus: 1
  memory: 256MB
  datacenter: DC01
  host: 172.16.70.151  # Name or IP from ESX Host
  minion:
    master: 172.16.70.169

In der VM, welche als Vorlage dient, muss der SSH-Key des Root-Users vom Salt-Master beim Root-User hinterlegt sein. Außerdem müssen die Vmware-Tools –open-vm-tools auch möglich– installiert sein und automatisch starten.

Testen Sie, ob der Salt-Master die Kontrolle über den ESXi Server übernehmen kann mit

salt-cloud -F

salt-cloud -f list_datastores vcenter01

VM provisionieren

salt-cloud -p ubuntu@esx01 neue_vm

results matching ""

    No results matching ""