Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated from Rosenheim 2018/2019 #14

Merged
merged 16 commits into from Feb 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Binary file removed 00-einfuehrung/vorlesung/00-einfuehrung.pdf
Binary file not shown.
Binary file removed 00-einfuehrung/vorlesung/00-organisatorisches.pdf
Binary file not shown.
Binary file added 00-einfuehrung/vorlesung/m00-einfuehrung.pdf
Binary file not shown.
Binary file modified 01-kommunikation/vorlesung/m01-kommunikation.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion 02-programmiermodelle/uebung/README.md
Expand Up @@ -12,7 +12,7 @@ Das Ziel der heutigen Übung ist es, ein Aktorensystem zu erstellen, mit dem Buc

## Aufgaben
### Aufgabe 1: Den Code in der Vorlage sichten
In der Vorlage sind die Connectoren zu finden (Paket `connectors`), mit denen Wikipedia und die OpenLibrary aufgerufen werden können (synchron). Ferner existieren Vorlagen zu allen notwendigen Aktoren (Paket `actors`). Dabei stehen zwei Klassen mit `main()`-Methoden zur Verfügung: `Mai`n nutzt die Connectoren direkt und sequenziell. `MainWithActors` nutzt das Aktorensystem, um die Ergebnisse zu ermitteln. Die jeweiligen Aktoren nutzen dann intern jeweils auch wieder die Connectoren. Ferner ist noch eine Konfigurationsdatei für akka hinterlegt (`application.conf`), die die Log-Ausgaben konfiguriert.
In der Vorlage sind die Connectoren zu finden (Paket `connectors`), mit denen Wikipedia und die OpenLibrary aufgerufen werden können (synchron). Ferner existieren Vorlagen zu allen notwendigen Aktoren (Paket `actors`). Dabei stehen zwei Klassen mit `main()`-Methoden zur Verfügung: `Main` nutzt die Connectoren direkt und sequenziell. `MainWithActors` nutzt das Aktorensystem, um die Ergebnisse zu ermitteln. Die jeweiligen Aktoren nutzen dann intern jeweils auch wieder die Connectoren. Ferner ist noch eine Konfigurationsdatei für akka hinterlegt (`application.conf`), die die Log-Ausgaben konfiguriert.

Machen sie ausgehend von den Main-Klassen einen Rundgang durch den Code und erschließen sie sich das definierte Aktorensystem dadurch. Nutzen sie bei Bedarf die akka Online-Dokumentation bei Verständnisproblemen. Lassen sie die sequentielle Variante (`Main`) einmal laufen und notieren sie sich die dabei gemessene Laufzeit (siehe Konsolenausgabe).

Expand Down
Binary file modified 02-programmiermodelle/vorlesung/m02-programmiermodelle.pdf
Binary file not shown.
Binary file modified 03-virtualisierung/vorlesung/m03-virtualisierung.pdf
Binary file not shown.
75 changes: 0 additions & 75 deletions 04-provisionierung/beispiele/ansible/README.md

This file was deleted.

20 changes: 20 additions & 0 deletions 04-provisionierung/beispiele/katacoda/README.md
@@ -0,0 +1,20 @@
# Übung: Provisionierung mit Docker Compose, Ansible und Terraform

Ziel dieser Übung ist es, praktische Erfahrungen mit den gängigen Technologien zur Provisionierung von Cloud Infrastrukturen nach dem Paradigma "Infrastructure as Code" zu sammeln. Die Übung basiert dabei auf Tutorials, die auf [Katacoda](https://www.katacoda.com/) verfügbar sind.

## Vorbereitung

1. Bitte richten sie einen [Katacoda](https://www.katacoda.com/)-Account für sich ein

## Aufgaben
Arbeiten Sie die folgenden Tutorials auf Katacoda durch. Sie vermitteln typische Arbeitsabläufe mit den Provisionierungs-Werkzeugen. Hinweis: Im Browser steht Ihnen dabei eine umfassende Umgebung zur Verfügung. Nutzen Sie dies auch, um mit den Funktionen der Werkzeuge zu experimentieren.

### Docker Compose
1. [Provisionierung multipler Container mit Docker Compose](https://www.katacoda.com/courses/docker/11)

### Ansible
1. [Mit Ansible warm werden](https://www.katacoda.com/jonatanblue/scenarios/1)
2. [Bootstrapping mit Ansible](https://www.katacoda.com/oliverveits/scenarios/ansible-bootstrap)

### Terraform
1. [Depolyment eines NGINX Containers mit Terraform](https://www.katacoda.com/courses/terraform/deploy-nginx)
@@ -0,0 +1,9 @@
# This file loads the proper rgloader/loader.rb file that comes packaged
# with Vagrant so that encoded files can properly run with Vagrant.

if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]
require File.expand_path(
"rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"])
else
raise "Encoded files can't be read outside of the Vagrant installer."
end
@@ -0,0 +1 @@
1.5:94f58cca-b47f-41af-ab2d-8a83b640508a
@@ -0,0 +1 @@
1510072599
@@ -0,0 +1 @@
501
@@ -0,0 +1 @@
94f58cca-b47f-41af-ab2d-8a83b640508a
@@ -0,0 +1 @@
414e7d8c0fd64c81a6dd2e71cd0e7435
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAuLmLMJgP9dWkzXZI0LN/vxKGpDyFkvz9v9+SzabtmtJRckVz
a2a4ASStlhmb40EJDCr+XtTm4xqsWOeK0rEAlTrfQi566QOUbMu5UisGBKzTmQzu
7IR4uNyH27PO4Y2O8tOn17ziEEQY8dC94X64AiRnUAgqkomjTUXOCIe4lOkkujBp
gvlQEPjHXk8WT3/8lkWiFwnZAdvszyNFh/bpb0Xd34F888H/k5VIwPkPH9o/Xr8Z
VX34ggVTt9iTwTGcWZM6/rO2EKSDfe73xMP2CojgjMaPYXMNE/cyWBkJj9j8TYIK
WnF9BW4PA/yBcECWnMf2y79uNHxf3zS6MGHJpwIDAQABAoIBAACo2PBhep0cGCyL
oZLtMSWTgVuQw8FUmetXdwS49dw5qATKbrERetK2ONByYvYaw1eBx8q64+AntjnT
CdHaw+/EeAuacuHmG1+QEqdSdAEMRO0k+K1rg6rVTr7gE3sGsF35l33TtNLuC1DB
uAvYEfwf+SZ2AQDo8OZTu3qYUXZmpSb7z3dRUDYNLJuQnK7oDBa9hQenbSikD3KD
jCY9pWva81jxrfjWEzZIhci2NTAbSeZT8gAsIX9VEjHeGLuEbFKTfKxFl9mHPN8V
GZpsOr8fKdL25Vv/uv7bhnncj6s1eP+k9KW8+ZC6wnw9NzM4w1O4Ho7bl+WlT4KQ
jeD2KOECgYEA42DLSKE3kxy2vvSJ2O4cYl7MTicwpZgtNseKrx3hTzxHh2LiZD7M
9MkWuaZTsv5B1TfgtJ3OYZdK9XwRH7ZQKA+VAL3AODlf3p0yuxJa4ovtsaDfEQRc
ItTgQTyIvWnmdhmvb21kXGZ95sxJ1w7VPgcYzyEas/jXqP4f3kSCaA8CgYEAz/pB
oL3lQx6Aw8aFg+yfx03IWTeN6yJU57ntMf8YKPeCffyXh7t4RXnT0ZUvUNjebMJj
gQh/0GSi0Swk4d3bELv6rEuZpi/JrUeaqp7ms+5LYRtA2Ug0daMrXP38BmH2rF1y
AzFLJ4IjV0L3G64KeOCu2gQv75QIGXoscTzJrOkCgYAYvoPg14qQu+M3TK1jqiX0
npRlPOaSXsks2PJCtGG8mba/CQfSGPN9ABU1BuC87eaEKZyOi03WWPyTUnkalmCK
u4dfmUa916CTPVA0A39YgBnR5svfsjXEpJ3y+391/XxTBeCNo730QEMbRsgSW07h
fSw5/kRFqaLuhRk6uwHmCQKBgCHEv30q+Buiy0N+a1VVSUgiEAK0a32fMGwDm0i/
45tbPLvaFHx8avXU5xijgXA+FjdQhLmBuMcMYAdYhJCL5jLcYsIw8Dy0i6lv8+P6
MvlKGsEknK3q9GGZYcQSlSYwJ84qygVMrqg2kCht/hNnednQmXNatLHQtlP0q1yj
gxdpAoGAO4I546UF+BDVobtC3me8mPpsA3hPCpRbvZrph7pXI3IRitHevu/54qBb
iQZWjDLIYuRvKrnFtMYy2DANpxNcqCBtf9p8zfi/+2Wzp1EL34N3ZX9IGUfPXyA7
aQWzuvFu+VNJWC9bcSVmbTeJvQfqZCqYsFmdMbtLDx/kBqvuFbw=
-----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/lreimer/Projekte/cloudcomputing/04-provisionierung/uebung/loesung/bonus","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}}
@@ -0,0 +1 @@
/Users/lreimer/Projekte/cloudcomputing/04-provisionierung/uebung/loesung/bonus
@@ -0,0 +1 @@
1.5:e783cc78-90a0-4e79-bb20-8fb28aeb9ca1
@@ -0,0 +1 @@
1510072096
@@ -0,0 +1 @@
501
@@ -0,0 +1 @@
e783cc78-90a0-4e79-bb20-8fb28aeb9ca1
@@ -0,0 +1 @@
2cff5747d87c4f50857d1a7071da6ce4
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAmiSHcXHnkbq9A+VN9q8wye9gtp/Y5BTfdPUAtdkTQgjmAw8k
MWfjNFO7JwnHUOcosoGpfmHE24WVUCWhdsMIzU20/pFfSRSIIJ7G6kynFP5tOF63
HafPDzdZHKqb+nW5b1d4ws423SQdmPBrTbnsg6N8LpkS7KiI04u/pTwcs1rwUIBv
bVbI83heKGyvSVjP22olvS6a5WVfun9ZN4OCJHB0G7zj2C3olaKYPKe/TTmbZRW7
3AVI7/c6hMoLOVSzSh6zgx6ew+6eq0jclodxtzFH4Nmomn26Q8wHuLi7GuJnbjlo
lpbPPRLlNnkWHVwmNBcpRC/EwMYa2rOmTf10ywIDAQABAoIBAEgEoTOj4Gn6Ma3M
SSzklYsDyNAKxy9pgS4H+pj8Hz9PIQh03pgmzcT5CgwnSXTHTAB7DFH8JBncw/J6
YoI2hbpGgDYgfcCLUz7KcG2v+rCYXzdjKXM1oEyfs4btP4s5zbXzzHxYFNIluZ5n
Vfsuzw6CJ9ctteXUqHkOZjAxccdqEBSIW1YPNoSh9egmkjD3KWMxpRU2t1FuCJt4
PaWlXVWNFla+UdWbJzE3n4wAL/RkAuqGP3AP5GpGFA/ThuSFk0bJs/ipQx2gh7P2
0ouXf2s2g9lDRb8lJWko9K8AZWt8Hw9J+l/l5Iz8YcB30Z4o/JX/E2SeqD0LEHUO
rf+46GECgYEAyBZqyc0S9IqUzJ+cq3kp+hz+sz3h9H89syxyIEhB28hNFZmKOfhm
gWTt4LGgcjqLK9wSuYu/3pIi60+59YPaNga5tzJYfuofpQYqmFL064v4il+lzBSH
GPLxcFNnl1ukBnEqVuUfDkhQzXUX5rBZ6IhfHM16FRmELUviBrk35t0CgYEAxTdf
QRyumxdRxdIDdn2JNaLnpjVcQ1eQGNQBcQBaihOun5aota4KyE2ksReFepU9cLfJ
o6cgSmk+51HkuJJtWSSE5luQwKZxuirmOuFEx34CIxIMTr3axKUbwTt4w96IXXtl
EYs1KqSOVbd3tTYkS6h6VhKRD0zvnTqNPfF7i8cCgYAJOF87ZWPWOPyaYVCK5k50
5BkokVV0OtjRBN9NdYbzZcuHj0e7XCL9G3WKwSSvntsC7mU+f54b14gcZ9Qd6DGK
A81TD9LcJlXG+P3Ffy0iHZUaa0XsnZWMJMXTc0R2yRZJ5bUZw/0mX1a54Qd07fN2
r7ISVbWme0KIA9MqlCZrUQKBgAkcqdYEUTzxMuIE9gv/eNt1j2ZqiLzDyvCauwZR
kd1XU3YkK99ZDz559+YGxDAJvTD8DOD209McUb+2VO8CNPMtcMaD7Ig6KH8FhGWs
CtV8yPR93Pu2Yek8B7BB4y6JlZtcHCtXVzmFKN5k/67rtXmZay2W5gTi9R86mVQH
WEH5AoGAPHo/ShPbm2iFPE4pCdAQ/AndL2/NFrQ19MmLVuFrrFNAqTVKFaXDkX2n
40hL5wWOXJi5dMza/ZCs6HLZTlVoPfftMCAQpvp4TtlWT/2It2znSuArCHadWqYv
DhUgMzSiGNxuHIChfmT13AgqcBp/brLFc156weoPtXlMVKFM+90=
-----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/lreimer/Projekte/cloudcomputing/04-provisionierung/uebung/loesung/bonus","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}}
@@ -0,0 +1 @@
/Users/lreimer/Projekte/cloudcomputing/04-provisionierung/uebung/loesung/bonus
@@ -0,0 +1 @@
1.5:c69d6c60-61d9-457c-81c6-a981054c1450
@@ -0,0 +1 @@
1510072349
@@ -0,0 +1 @@
501
@@ -0,0 +1 @@
c69d6c60-61d9-457c-81c6-a981054c1450
@@ -0,0 +1 @@
4cc39765067a4e78aa0b7121f9823c5d
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAxTGLmincF0lr7X1n/W+f405Pw1Ajmak3S+M/UC11TXNv/GXo
rWLXNPGyuk3IZ8U5pZJQfSIp6zWyq9P5L3+kECvDCC0zb+uRK03t6EpSWRm/B6Rp
Em5Ctqbd3eTYplCUkD0yNvOOEiMd8qmtLvmEIYGPC5oOwYvaY9pJatsyLKDQG7Zw
wpvYDoHtLP77jR41Z+A9dLg7IdehXCkBwS9B8yv9bvhdrjX6IQoNST9ECRwU8kUJ
UVMWSKfLkTMdTEVYyYRQRuuIiR3YidxQgK3xAOyGbPHF8+2V0jCV9OyPO/ylEVLY
LNmPq+nFRtjUcPJtkGZFdkAxu+RA9LZtzgtRgQIDAQABAoIBADWIvd2cf6PSyvou
kYy8QSv0lrLvjrqotdpkV0vtC2t7a2uaPxDTRJmbBGqPs1h4sq3AixltrPOuIFOF
uKCshl3dg5U0sEIyMbcP8QafJrwJwVLRz7SxOmtb4d/bwPVl6u89reQ9OtSxs++t
INcf5j8ybSM5L8hbr25sVIIt//EdPG+xBMbyy0cmFSf/KaL2oM6Xp3xJWqYVFv/W
aH7NqCLVUpiEEVAABE0VsxJDVgx/BQE7hCOrggHhKQXZJyUxKgu7xVc0Je1smi2S
Ts2gAjD+TNv73u3SJTMtYPTO5y4VFm2UGNzxuR9BYIoJ/BpdO9Ob4gfczIZgCtHD
wt1l9gECgYEA/pKsRHt1q6wHzW4cAF3VHUkUD/FoTnCIpxFxAZO1xKzPytPdUvuT
T90KE/smV5QfSYd6CPlHx5cO4vumcEd4y+sItadUbf80YW2FJKtIU79L8ZMGqqtB
LCAzW61bxjEY4YY4gAyKr0wU0jQtsEkAr3IflpVS2Q/hm43S4c599ecCgYEAxkyH
k4e7F0q+yA+hWJ8qpsdsjP7tD+x6TN5TC9f52ZWXSPfJZ2qPCO0QjBF1Wc/ZjMt5
41kzSIP4D566ElZn9PikzBO2dEzeTjdTijkY9H5lrVYb/EumnS/hT+NseAzI/nC0
9ONg+eoKXM7VaZ5fAY8zfnq6Z9ILm3oEZq/FQFcCgYATWCnm+kqyxNvC7H8MOBUd
qJPxsjJu43Y+28Bukj7ZtxgDHZ5P0/YZt34wjoEXXpYSDE1lqSufKwdikCTRm1y+
ghmjVBfCVAYy8ROQ+cMBOiQXM0jqZyEIrVm5ua6jnM97M6vPbySKtYlPf8+I+cMn
kdB8rNQi0mYeX+SKbBp+OQKBgAySb4oH8fGhGIVgkE8pEDAwto4d33PB/2L+OW+n
yrxjwoqqwwced2EOfp0SwkjmZ5mIkPq7/gdb7o829f8RoVejp/cUTN4EvZdh5Jb/
1bgyh0m9CtstBKw0i+lfttHJpbiT9rUL8WsGzo9hwaAHnWhg5tfe+hB4/almy/6i
qDPTAoGBAK6CFJ/3zbLoNSKTcWx7DqrjIbfbUnpm0IFQDJttcDCmLhfDy/y3DFJv
2ONLUVuTY8QQ/++audG+kPcBXSdXmh1ceJS1EmlEzu2GzRL90qUk5Uu97nyDyKwS
maZtJ/gA01Fi5ZGBkkTn2eRi+YD5WJ8UvpBvM97xPc6j6r5x7ByI
-----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"/Users/lreimer/Projekte/cloudcomputing/04-provisionierung/uebung/loesung/bonus","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}}}
@@ -0,0 +1 @@
/Users/lreimer/Projekte/cloudcomputing/04-provisionierung/uebung/loesung/bonus
79 changes: 67 additions & 12 deletions 04-provisionierung/uebung/README.md
@@ -1,20 +1,75 @@
# Übung: Provisionierung mit Docker Compose, Ansible und Terraform

Ziel dieser Übung ist es, praktische Erfahrungen mit den gängigen Technologien zur Provisionierung von Cloud Infrastrukturen nach dem Paradigma "Infrastructure as Code" zu sammeln. Die Übung basiert dabei auf Tutorials, die auf [Katacoda](https://www.katacoda.com/) verfügbar sind.
# Übung: Provisionierung mit Ansible

## Vorbereitung
* Prüfen sie, ob VirtualBox / Hyper-V und Vagrant installiert sind. Falls nicht: installieren.

1. Bitte richten sie einen [Katacoda](https://www.katacoda.com/)-Account für sich ein

## Aufgaben
Arbeiten Sie die folgenden Tutorials auf Katacoda durch. Sie vermitteln typische Arbeitsabläufe mit den Provisionierungs-Werkzeugen. Hinweis: Im Browser steht Ihnen dabei eine umfassende Umgebung zur Verfügung. Nutzen Sie dies auch, um mit den Funktionen der Werkzeuge zu experimentieren.

### Docker Compose
1. [Provisionierung multipler Container mit Docker Compose](https://www.katacoda.com/courses/docker/11)
### Hello Ansible (manuell)

In dieser Aufgabe wollen wir zunächst erste Gehversuche mit Ansible machen. Erzeugen sie sich hierfür mittels
Vagrant eine neue VM (siehe Übung 03-virtualisierung) und installieren sie entweder manuell oder per Shell-Provisioning
in der VM das Ansible Paket.

Legen sie anschließend ein neues Playbook YAML File an und führen sie es lokal aus. Erweitern sie das Hello World
Beispiel nach belieben, z.B. kopieren sie eine Datei vom Host-System in das `hello-world/` Verzeichnis mit dem `copy`
Command Modul.

```yaml
# To run this, name this file hello_world.yml and run the following in the same directory
# ansible-playbook hello_world.yml -i 'local,' --connection=local

- hosts:
- local
tasks:
- name: Create a directory
file: path=hello-world state=directory
```

### Hello Ansible Local Provisioner

In dieser Aufgabe soll nun der Ansible Local Provisioner (https://www.vagrantup.com/docs/provisioning/ansible_local.html)
verwendet werden. Ändern sie das Vagrantfile entsprechend, bzw. legen sie einfach ein neues an. Führen sie das Playbook aus
der ersten Aufgabe aus.

### Bonus-Aufgabe: Multi-Host Provisionierung

Führen sie eine komplexere Provisionierung von mehreren Hosts durch. Erzeugen sie hierfür mittels Vagrant einfach mehrfache
VMs. Die Provisionierung wird auf der `controller` VM ausgeführt. Installieren sie mittels Ansible, ähnlich zur Übung 03, einen NGINX, PHP und mySQL Stack auf den anderen beiden VMs.

```yaml
Vagrant.configure("2") do |config|

config.vm.box = "ubuntu/trusty64"

config.vm.define "webserver" do |machine|
machine.vm.network "private_network", ip: "172.17.177.21"
end

config.vm.define "database" do |machine|
machine.vm.network "private_network", ip: "172.17.177.22"
end

config.vm.define 'controller' do |machine|
machine.vm.network "private_network", ip: "172.17.177.11"

machine.vm.provision :ansible_local do |ansible|
ansible.playbook = "example.yml"
ansible.verbose = true
ansible.install = true
ansible.limit = "all" # or only "nodes" group, etc.
ansible.inventory_path = "inventory"
end
end

end
```

### Ansible
1. [Mit Ansible warm werden](https://www.katacoda.com/jonatanblue/scenarios/1)
2. [Bootstrapping mit Ansible](https://www.katacoda.com/oliverveits/scenarios/ansible-bootstrap)
## Referenzen

### Terraform
1. [Depolyment eines NGINX Containers mit Terraform](https://www.katacoda.com/courses/terraform/deploy-nginx)
* https://www.ansible.com/quick-start-video
* https://www.vagrantup.com/docs/provisioning/ansible_intro.html
* https://www.vagrantup.com/docs/provisioning/ansible_local.html
* https://docs.ansible.com/ansible/latest/modules_by_category.html
* https://docs.ansible.com/ansible/latest/playbooks.html
Expand Up @@ -12,16 +12,16 @@ Vagrant.configure("2") do |config|
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

config.vm.provider "virtualbox" do |vb|
#config.vm.provider "virtualbox" do |vb|
# Customize the amount of memory on the VM:
vb.memory = "1024"
end

# config.vm.provider "hyperv" do |vb|
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# vb.memory = "1024"
# end

#config.vm.provider "hyperv" do |vb|
# Customize the amount of memory on the VM:
# vb.memory = "1024"
#end

# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
Expand Down
Binary file modified 04-provisionierung/vorlesung/m04-provisionierung.pdf
Binary file not shown.
8 changes: 4 additions & 4 deletions 05-iaas/uebung/01-jclouds/loesung/pom.xml
Expand Up @@ -7,10 +7,10 @@
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<jclouds.version>2.0.2</jclouds.version>
<slf4j.version>1.7.2</slf4j.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<jclouds.version>2.1.1</jclouds.version>
<slf4j.version>1.7.25</slf4j.version>
<guava.version>18.0</guava.version>
</properties>
<dependencies>
Expand Down
Expand Up @@ -15,6 +15,7 @@ public static void main(String[] args) throws IOException {
ComputeService cs = connect(
Credentials.USER.get(), Credentials.KEY.get(), Credentials.PROVIDER.get())
.getComputeService();

String imageId = CloudUtils.getLastVersionImageForOs(OsFamily.UBUNTU, cs);
System.out.println(imageId);
cs.getContext().close();
Expand Down