<commit_before>---
layout: post
title: "Hosts mit Docker und Puppet provisionieren"
modified: 2014-07-03 20:33:04 +0200
tags: [draft, tech,docker,andreasschmidt ]
category: docker
links:
  - Backends für die Entwicklung mit Vagrant und Docker starten: http://maori.geek.nz/post/vagrant_with_docker_how_to_set_up_postgres_elasticsearch_and_redis_on_mac_os_x
  - Vagrant Docker Provisioner: http://docs.vagrantup.com/v2/provisioning/docker.html
keywords:
  - docker
  - serverspec
  - puppet
  - vagrant
---

Die ersten Schritte mit Docker gestalten sich durch [boot2docker](2014-06-30-docker-mit-boot2docker-starten.md)
recht einfach, so hat man schnell eine Spielwiese erstellt, um die Funktionalität
ausprobieren zu können. Aber spätestens wenn Docker-Container im Test- oder Produktionssystem live gestellt werden sollen,
stellt sich die Frage nach dem reproduzierbaren Aufsetzen eines Docker-Hosts.
Das kann unter anderem mit Puppet gemacht werden. Um das ganze testbar zu haben, empfiehlt
sich die Kombination mit [serverspec](http://www.serverspec.org).

## Vagrant/Docker-Provisioning

Vagrant bietet selber einen [Docker-Provisioner](http://docs.vagrantup.com/v2/provisioning/docker.html) an.
(Nicht zu verwechseln mit dem Docker-Provider, der Docker als Backend verwendet, damit Vagrant
Container anstelle von VMs startet...). Der Provisioner ist in der Lage, Docker
auf der gestartetem VM zu installieren, mit Images zu bestücken und
daraus Container zu starten. Die Konfiguration des Docker-Daemons ist davon noch ausgenommen.

Das ist schon eine gute Abkürzung auf dem Weg in Richtung Reproduzierbarkeit, sie hängt
allerdings auch davon ab, wie weit in der Delivery Chain Vagrant zum Einsatz kommt. Wenn z.B.
das Livesystem auf einer Virtualisierung beruht, die nicht durch ein Vagrant-Backend
unterstützt wird, kommt man mit dem Docker-Provisioner an der Stelle nicht weiter.

## Puppet-Modul für Docker
<commit_msg>add docker vagrant provider link<commit_after>---
layout: post
title: "Hosts mit Docker und Puppet provisionieren"
modified: 2014-07-03 20:33:04 +0200
tags: [draft, tech,docker,andreasschmidt ]
category: docker
links:
  - Backends für die Entwicklung mit Vagrant und Docker starten: http://maori.geek.nz/post/vagrant_with_docker_how_to_set_up_postgres_elasticsearch_and_redis_on_mac_os_x
  - Vagrant Docker Provisioner: http://docs.vagrantup.com/v2/provisioning/docker.html
  - Vagrant Docker Provider: https://docs.vagrantup.com/v2/docker/basics.html
keywords:
  - docker
  - serverspec
  - puppet
  - vagrant
---

Die ersten Schritte mit Docker gestalten sich durch [boot2docker](2014-06-30-docker-mit-boot2docker-starten.md)
recht einfach, so hat man schnell eine Spielwiese erstellt, um die Funktionalität
ausprobieren zu können. Aber spätestens wenn Docker-Container im Test- oder Produktionssystem live gestellt werden sollen,
stellt sich die Frage nach dem reproduzierbaren Aufsetzen eines Docker-Hosts.
Das kann unter anderem mit Puppet gemacht werden. Um das ganze testbar zu haben, empfiehlt
sich die Kombination mit [serverspec](http://www.serverspec.org).

## Vagrant/Docker-Provisioning

Vagrant bietet selber einen [Docker-Provisioner](http://docs.vagrantup.com/v2/provisioning/docker.html) an.
(Nicht zu verwechseln mit dem Docker-Provider, der Docker als Backend verwendet, damit Vagrant
Container anstelle von VMs startet...). Der Provisioner ist in der Lage, Docker
auf der gestartetem VM zu installieren, mit Images zu bestücken und
daraus Container zu starten. Die Konfiguration des Docker-Daemons ist davon noch ausgenommen.

Das ist schon eine gute Abkürzung auf dem Weg in Richtung Reproduzierbarkeit, sie hängt
allerdings auch davon ab, wie weit in der Delivery Chain Vagrant zum Einsatz kommt. Wenn z.B.
das Livesystem auf einer Virtualisierung beruht, die nicht durch ein Vagrant-Backend
unterstützt wird, kommt man mit dem Docker-Provisioner an der Stelle nicht weiter.

## Puppet-Modul für Docker

{'fraction_non_alphanumeric': 0.0680495825954971, 'fraction_numerical': 0.01543131798633949, 'mean_word_length': 5.055130168453292, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5102822', 'n_tokens_mistral': 1371, 'n_tokens_neox': 1308, 'n_words': 440}