Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Docker Installation mit Ansible

Veröffentlicht am 22. Juni 2019 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 1. April 2020
Geschätzte Lesezeit: 2 Minuten

Docker ist schon seit einiger Zeit ein Thema für mich. Aus diesem Grund gibt es auch eine extra Menüeintrag für Docker, um diese Artikel schneller finden zu können.

Um Docker mit Ansible zusammenzubringen, schauen wir uns heute an wie man Docker mittels Ansible installieren kann. Das kann zum Beispiel sinnvoll sein, wenn man Docker Cluster betreiben will und nicht jeden worker für den swarm per Hand installieren will.

Ansible Docker Rolle

Um Docker mittels Ansible zu installieren, brauchen wir erstmal einen Ordner für die neue Rolle mit dem Namen Docker. In diesem Ordner legt man einen weiteren Ordner mit dem Namen files und einen mit dem Namen tasks an. Innerhalb des tasks Ordners wird dann eine Datei mit dem Namen main.yml erstellt. Im files Ordner legt man eine Datei mit dem Namen docker.repo an. Das ganze sollte dann so aussehen:

1
2
3
4
5
├── docker
│   ├── files
│   │   └── docker.repo
│   └── tasks
│       └── main.yml

Zuerst öffnet man die Datei docker.repo mit einem beliebigen Editor. In die Datei wird dann folgender Inhalt kopiert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://download.docker.com/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://download.docker.com/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/7/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 
[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://download.docker.com/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
 

Die main.yml wird anschließend mit einen Editor geöffnet. Hier müssen wir zwei Blöcke erstellen.

1
2
3
4
5
6
- name: Docker | add repository
  copy:
    src: docker.repo
    dest: /etc/yum.repos.d/docker.repo
    mode: 0755
  when: ansible_pkg_mgr == "yum"

In diesem Block fügen wir dem System das Docker Community Repository hinzu, welches wir zuvor im files Ordner angelegt haben.

1
2
3
4
5
6
7
8
- name: Docker | Install docker ce
  yum:
    name="{{ item }}"
  with_items:
    - yum-utils
    - device-mapper-persistent-data
    - lvm2
    - docker-ce

Anschließend werden vier Pakete installiert, die von Docker benötigt werden.

Nachdem die beiden Blöcke der Datei hinzugefügt wurden, kann die Datei gespeichert und geschlossen werden.

Testen der Ansible Docker Rolle

Um Docker nun auf einem System zu installieren, müssen wir einen Eintrage in der site.yml und der hosts Datei anlegen. Schauen wir uns zuerst die site.yml an:

1
2
3
4
5
- name: docker
  hosts: docker
  remote_user: root
  roles:
      - docker

Wie bereits aus anderen Artikel bekannt, erstellen wir hier eine Gruppe mit dem Namen Docker welche auf allen Hosts in der hosts Datei im Bereich Docker definiert sind. Die ssh Verbindung wird mit dem User root aufgebaut und es soll die Rolle docker ausgeführt werden.

Jetzt muss in der host Datei noch ein Bereich für Docker angelegt werden und der entsprechende Host eingetragen werden.

1
2
[docker]
192.168.10.108

Jetzt können wir das ganze mit ansible-playbook ausführen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ansible-playbook site.yml -i hosts
 
PLAY [docker] *************************************************************************************************************************************************
 
TASK [Gathering Facts] ****************************************************************************************************************************************
ok: [192.168.10.108]
 
TASK [docker : Docker | add repository] ***********************************************************************************************************************
changed: [192.168.10.108]
 
TASK [docker : Docker | Install docker ce] ********************************************************************************************************************
 
changed: [192.168.10.108] => (item=[u'yum-utils', u'device-mapper-persistent-data', u'lvm2', u'docker-ce'])
 
PLAY RECAP ****************************************************************************************************************************************************
192.168.10.108             : ok=3    changed=2    unreachable=0    failed=0

Die Installation kann einen Moment dauern. Nach der Installation können wir uns auf das Zielsystem verbinden. Um zu prüfen das Docker installiert ist, kann man hier sich einmal die Version von Docker ausgeben lassen:

1
2
docker -v
Docker version 18.09.6, build 481bc77156

Kategorie: Ansible, Docker Tags: Ansible, Docker, Role

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden