community.docker.docker_login – Авторизация в Docker репозитории.
Примечание
Этот плагин входит в коллекцию community.docker (версия 1.1.0).
Для его установки используйте: ansible-galaxy collection install community.docker.
Для использования в книге задач укажите: community.docker.docker_login.
Обзор
- Обеспечивает функциональность, аналогичную команде «docker login».
- Авторизует пользователя в Docker репозитории и добавляет учетные данные в локальный файл конфигурации Docker или соответствующее хранилище учетных данных. Добавление учетных данных в файлы конфигурации соответственно хранилище учетных данных позволяет в дальнейшем подключаться к репозиторию с помощью инструментов, таких как Ansible’s Docker модули, Docker CLI и Docker SDK для Python, без необходимости ввода учетных данных.
- При выполнении в режиме проверки произойдет аутентификация без обновления файла конфигурации.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- Docker API >= 1.20
- Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменён на docker (см. здесь для получения подробностей). Для Python 2.6 необходимо использовать
docker-py. В противном случае рекомендуется установить модуль Pythondocker. Обратите внимание, что оба модуля не должны устанавливаться одновременно. Также обратите внимание, что при установке обоих модулей и удалении одного из них, другой может перестать работать, и потребуется его переустановка. - Docker SDK для Python >= 1.8.0 (используйте docker-py для Python 2.6)
- L(Python bindings for docker credentials store API) >= 0.2.1 (используйте docker-pycreds при использовании Docker SDK для Python < 4.0.0)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api_version строка | Значение по умолчанию: "auto" | Версия Docker API, работающая на хосте Docker. По умолчанию используется последняя поддерживаемая версия API Docker SDK для Python и демона docker. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_API_VERSION. Если переменная среды не установлена, будет использовано значение по умолчанию.алиасы: docker_api_version |
| ca_cert путь | Использование сертификата CA при проверке подлинности сервера путем указания пути к файлу сертификата CA. Если значение не указано в задаче, а переменная среды DOCKER_CERT_PATH установлена, будет использован файл ca.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.алиасы: tls_ca_cert, cacert_path | |
| client_cert путь | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче, а переменная среды DOCKER_CERT_PATH установлена, будет использован файл cert.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.алиасы: tls_client_cert, cert_path | |
| client_key путь | Путь к файлу TLS-ключа клиента. Если значение не указано в задаче, а переменная среды DOCKER_CERT_PATH установлена, будет использован файл key.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.алиасы: tls_client_key, key_path | |
| config_path путь | Значение по умолчанию: "~/.docker/config.json" | Пользовательский путь к файлу конфигурации Docker CLI. алиасы: dockercfg_path |
| debug логический |
| Режим отладки |
| docker_host строка | Значение по умолчанию: "unix://var/run/docker.sock" | URL или путь к Unix-сокету, используемые для подключения к Docker API. Для подключения к удалённому хосту укажите строку TCP-подключения. Например, tcp://192.0.2.23:2376. Если TLS используется для шифрования соединения, модуль автоматически заменит tcp в URL подключения на https.Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_HOST вместо него. Если переменная среды не установлена, будет использовано значение по умолчанию.алиасы: docker_url |
| email строка | Не выполняет никаких действий, не используйте. Будет удалено в community.docker 2.0.0. | |
| password строка | Текстовое пароли для учетной записи репозитория. Необходимо, когда state равно present. | |
| reauthorize логический |
| Обновить существующую аутентификацию, найденную в файле конфигурации. алиасы: reauth |
| registry_url строка | Значение по умолчанию: "https://index.docker.io/v1/" | URL репозитория. алиасы: registry, url |
| ssl_version строка | Укажите допустимый номер версии SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_SSL_VERSION вместо него. | |
| state строка |
| Это контролирует текущее состояние пользователя. present будет авторизовать пользователя, absent будет его разлогинить.Для выхода из системы достаточно указать сервер репозитория, который по умолчанию является DockerHub. До версии 2.1 вы могли ТОЛЬКО авторизоваться. Docker не поддерживает «выход из системы» с пользовательским файлом конфигурации. |
| timeout целое число | Значение по умолчанию: 60 | Максимальное время в секундах ожидания ответа от API. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TIMEOUT вместо него. Если переменная среды не установлена, будет использовано значение по умолчанию. |
| tls логический |
| Защитить подключение к API с использованием TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в значение yes, оно будет иметь приоритет.Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS вместо него. Если переменная среды не установлена, будет использовано значение по умолчанию. |
| tls_hostname строка | Значение по умолчанию: "localhost" | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_HOSTNAME вместо него. Если переменная среды не установлена, будет использовано значение по умолчанию. |
| username строка | Имя пользователя для учетной записи репозитория. Необходимо, когда state равно present. | |
| validate_certs логический |
| Защитить подключение к API с использованием TLS и проверкой подлинности сервера Docker. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_VERIFY вместо него. Если переменная среды не установлена, будет использовано значение по умолчанию.алиасы: tls_verify |
Примечания
Примечание
- Подключитесь к демону Docker, предоставив параметры для каждой задачи или определив переменные окружения. Вы можете определить
DOCKER_HOST,DOCKER_TLS_HOSTNAME,DOCKER_API_VERSION,DOCKER_CERT_PATH,DOCKER_SSL_VERSION,DOCKER_TLS,DOCKER_TLS_VERIFYиDOCKER_TIMEOUT. Если вы используете docker machine, запустите скрипт, поставляемый с продуктом, который настраивает среду. Он установит эти переменные за вас. Подробнее см. https://docs.docker.com/machine/reference/env/. - При подключении к демону Docker с TLS, возможно, потребуется установить дополнительные пакеты Python. Для Docker SDK for Python версии 2.4 или новее это можно сделать, установив
docker[tls]с помощью ansible.builtin.pip. - Обратите внимание, что Docker SDK for Python позволяет указать путь к конфигурации Docker только для очень немногих функций. В общем случае он будет использовать
$HOME/.docker/config.jsonесли переменная окруженияDOCKER_CONFIGне указана, и$DOCKER_CONFIG/config.jsonв противном случае. - Этот модуль использует Docker SDK for Python для связи с демоном Docker.
Примеры
- name: Log into DockerHub
community.docker.docker_login:
username: docker
password: rekcod
- name: Log into private registry and force re-authorization
community.docker.docker_login:
registry_url: your.private.registry.io
username: yourself
password: secrets3
reauthorize: yes
- name: Log into DockerHub using a custom config file
community.docker.docker_login:
username: docker
password: rekcod
config_path: /tmp/.mydockercfg
- name: Log out of DockerHub
community.docker.docker_login:
state: absent
Значения возврата
Общие значения возврата описаны здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| login_results словарь | при state='present' | Результаты входа. Пример: {'serveraddress': 'localhost:5000', 'username': 'testuser'} |
Авторы
- Olaf Kilian (@olsaki) <olaf.kilian@symanex.com>
- Chris Houseknecht (@chouseknecht)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/docker/docker_login_module.html