sorrowless.docker

Rola Ansible: Docker

CI

Rola Ansible, która instaluje Docker na systemach Linux.

Wymagania

Brak.

Zmienne Roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

# Wydanie może być jednym z: 'ce' (Wersja Komunalna) lub 'ee' (Wersja Przemysłowa).
# Możesz zdefiniować wersję dockera za pomocą zmiennej docker_version, na przykład: '=5:23.0.2-1~ubuntu.20.04~focal'
docker_edition: 'ce'
docker_version: ''
docker_packages:
  - "docker-{{ docker_edition }}{{ docker_version }}"
  - "docker-{{ docker_edition }}-cli{{ docker_version }}"
  - "docker-{{ docker_edition }}-rootless-extras{{ docker_version }}"
  - "containerd.io"
docker_packages_state: present

docker_edition powinno być albo ce (Wersja Komunalna), albo ee (Wersja Przemysłowa). Możesz również określić konkretną wersję Dockera do zainstalowania za pomocą zmiennej "docker_version": docker_version: '=5:23.0.2-1ubuntu.20.04focal'

Możesz kontrolować, czy pakiet jest zainstalowany, odinstalowany, czy na najnowszej wersji, ustawiając docker_packages_state na present, absent lub latest. Zauważ, że demon Dockera zostanie automatycznie uruchomiony ponownie, jeśli pakiet Dockera zostanie zaktualizowany.

docker_service_manage: true
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted

Zmienne do kontrolowania stanu usługi docker oraz tego, czy powinna być uruchomiona przy starcie systemu. Jeśli instalujesz Dockera wewnątrz kontenera Dockera bez systemd lub sysvinit, powinieneś ustawić docker_service_manage na false.

docker_install_compose_plugin: false
docker_compose_package: docker-compose-plugin
docker_compose_package_state: present

Opcje instalacji wtyczki Docker Compose. Różnią się od poniższych tym, że docker-compose jest instalowany jako wtyczka dockera (i używany z docker compose) zamiast oddzielnego binarnego pliku.

docker_install_compose: true
docker_compose_version: "1.26.0"
docker_compose_arch: "{{ ansible_architecture }}"
docker_compose_path: /usr/local/bin/docker-compose

Opcje instalacji Docker Compose.

docker_add_repo: true

Kontroluje, czy ta rola doda oficjalne repozytorium Dockera. Ustaw na false, jeśli chcesz używać domyślnych pakietów dockera dla swojego systemu lub sam zarządzać repozytorium pakietów.

docker_repo_url: https://download.docker.com/linux

Główne URL repozytorium Dockera, wspólne dla systemów Debian i RHEL.

docker_apt_release_channel: stable
docker_apt_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] {{ docker_repo_url }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
docker_apt_ignore_key_error: true
docker_apt_gpg_key: "{{ docker_repo_url }}/{{ ansible_distribution | lower }}/gpg"
docker_apt_filename: "docker"

(Używane tylko dla Debian/Ubuntu.) Możesz przełączyć kanał na nightly, jeśli chcesz użyć wersji nocnej.

Możesz zmienić docker_apt_gpg_key na inny adres URL, jeśli jesteś za zaporą ogniową lub podać zaufany lustrzany serwer. Zazwyczaj w połączeniu ze zmianą docker_apt_repository. docker_apt_filename kontroluje nazwę pliku listy źródeł utworzonego w sources.list.d. Jeśli aktualizujesz z starszej (<7.0.0) wersji tej roli, powinieneś zmienić to na nazwę istniejącego pliku (np. download_docker_com_linux_debian na Debianie), aby uniknąć konfliktów na liście.

docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo"
docker_yum_repo_enable_nightly: '0'
docker_yum_repo_enable_test: '0'
docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg"

(Używane tylko dla RedHat/CentOS.) Możesz włączyć repozytorium Nightly lub Test, ustawiając odpowiednie zmienne na 1.

Możesz zmienić docker_yum_gpg_key na inny adres URL, jeśli jesteś za zaporą ogniową lub podać zaufany lustrzany serwer. Zazwyczaj w połączeniu ze zmianą docker_yum_repository.

docker_users:
  - user1
  - user2

Lista użytkowników systemowych, którzy mają zostać dodani do grupy docker (aby mogli używać Dockera na serwerze).

docker_daemon_options:
  storage-driver: "devicemapper"
  log-opts:
    max-size: "100m"

Niestandardowe opcje dockerd można skonfigurować za pomocą tego słownika reprezentującego plik json /etc/docker/daemon.json.

Aby zalogować się do rejestru, musisz zdefiniować następujące zmienne:

  • docker_registry_url
  • docker_registry_user
  • docker_registry_password

Użycie z Ansible (i biblioteką docker w Pythonie)

Wielu użytkowników tej roli chce również używać Ansible do budowania obrazów Dockera i zarządzania kontenerami Dockera na serwerze, na którym zainstalowany jest Docker. W takim przypadku łatwo możesz dodać bibliotekę docker w Pythonie, używając roli geerlingguy.pip:

- hosts: all

  vars:
    pip_install_packages:
      - name: docker

  roles:
    - geerlingguy.pip
    - geerlingguy.docker

Aby skonfigurować swarm, powinieneś dodać zmienną docker_swarm_configure: true dla wszystkich węzłów, oraz docker_swarm_manager: true dla menedżerów. inventory_hostname musi być równy nazwie hosta (ansible_hostname), aby prawidłowo zdalnie zidentyfikować węzły.

Zależności

Brak.

Przykładowy Playbook

- hosts: all
  roles:
    - geerlingguy.docker

Licencja

MIT / BSD

Sponsorzy

  • We Manage: Pomagamy start-upom oraz rozwijającym się firmom w skalowaniu ich infrastruktury w zrównoważony sposób.

Powyżsi sponsorzy wspierają Jeffa Geerlinga na GitHub Sponsors. Możesz również wesprzeć pracę Jeffa, aby pomóc mu kontynuować poprawę tych otwartych projektów Ansible!

Informacje o autorze

Ta rola została stworzona w 2017 roku przez Jeffa Geerlinga, autora Ansible for DevOps. Zaadaptowana do własnych potrzeb przez Stana Bogatkina.

Zainstaluj
ansible-galaxy install sorrowless.docker
Licencja
mit
Pobrania
4.6k
Właściciel
Barocco-style deployment engineer