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