Neuen Docker-Host auf Ubuntu-Basis erstellen

  • Erst-Installation Ubuntu via kickstart (siehe hier).
  • Konfigurieren via ansible-playbook --limit docker1 ansible/docker.yml (yml-File: siehe unten).
  • Mit docker-machine “verbinden” via docker-machine create --driver generic --generic-ip-address=docker1.steinkopf.net --engine-opt storage-driver=overlay --engine-opt icc=false --engine-opt iptables docker1:
    Dadurch werden Zertifiakte etc. erstellt und auf den lokalen (fernsteuernden) Computer kopiert.
  • Danach musste ich auch 1x aufräumen mit rm -rf /var/lib/docker/aufs.
  • Außerdem sind die systemd-Files kaputt:
    mv /etc/systemd/system/docker.service . (eigentlich löschen, aber man weiß ja nie)
  • ggf. systemctl daemon-reload und systemctl restart docker. Interessant ist auch systemctl status docker.service.

Anhang: ansible/docker.yml:

- name: Install docker and docker-compose
  hosts: dockerhosts dockercontrollers

  become: true
  become_user: root

  # see https://galaxy.ansible.com/angstwad/docker_ubuntu/

  roles:
    - role: angstwad.docker_ubuntu
      docker_pkg_name: docker-engine
      update_docker_package: yes
      install_kernel_extras: yes
      kernel_update_and_reboot_permitted: yes
      docker_opts: --storage-driver=overlay --icc=false --iptables -H tcp://0.0.0.0:2376 --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem

      # So funktionierts nicht, weil dann ein Zeilenumbruch IN den DOCKER_OPTS landet - damit hat systemd ein Problem:
      #docker_opts: >
      #  --storage-driver=overlay
      #  --icc=false
      #  --iptables
      #  -H tcp://0.0.0.0:2375
      #  --tlsverify
      #  --tlscacert /etc/docker/ca.pem
      #  --tlscert /etc/docker/server.pem
      #  --tlskey /etc/docker/server-key.pem

  tasks:
    - name: Fetch docker_compose_version
      shell: docker-compose --version | awk 'NR==1{print $NF}'
      register: docker_compose_version

    - name: Install Bash completion for Docker Compose
      get_url:
         url='https://raw.githubusercontent.com/docker/compose/{{ docker_compose_version['stdout'] }}/contrib/completion/bash/docker-compose'
        dest=/etc/bash_completion.d/docker-compose
        force=yes # always overwrite in case docker version changed
      when: docker_compose_version|success

One thought on “Neuen Docker-Host auf Ubuntu-Basis erstellen

Schreibe einen Kommentar

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