Модуль community.docker.docker_secret – управление секретами Docker
Примечание
Этот модуль входит в коллекцию community.docker (версия 5.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.docker. Для работы с этим модулем требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.docker.docker_secret.
Краткое описание
- Создание и удаление секретов Docker в среде Swarm. Аналогично
docker secret createиdocker secret rm. - Добавляет в метаданные новых секретов
ansible_key— зашифрованное хеш-представление данных, которое затем используется при последующих запусках для проверки, изменился ли секрет. Еслиansible_keyотсутствует, секрет не будет обновлён, если не задан параметрforce. - Обновление секретов выполняется путём удаления секрета и его повторного создания.
Требования
На узле, на котором выполняется этот модуль, необходимы следующие компоненты.
- Docker API >= 1.25
- Docker SDK for Python: обратите внимание, что модуль Python docker-py заменён модулем docker (подробности см. здесь). Этот модуль не работает с docker-py.
- Docker SDK for Python >= 2.1.0
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия Docker API, работающая на узле Docker. По умолчанию используется последняя версия API, поддерживаемая Docker SDK for Python и демоном Docker. Если значение не указано в задаче, вместо него будет использоваться значение переменной среды По умолчанию: |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Для проверки сервера используйте сертификат центра сертификации, указав путь к файлу сертификата. Если значение не указано в задаче, а переменная среды Ранее этот параметр назывался |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче, а переменная среды |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу TLS-ключа клиента. Если значение не указано в задаче, а переменная среды |
data строка | Значение секрета. Несовместим с |
data_is_b64 логическое значение | Если задано значение Для использования двоичных Варианты:
|
data_src путь добавлено в community.docker 1.10.0 | Файл на целевом узле, из которого считывается секрет. Несовместим с |
debug логическое значение | Режим отладки. Варианты:
|
docker_host псевдоним: docker_url строка | URL или путь к сокету Unix для подключения к Docker API. Для подключения к удалённому узлу укажите строку TCP-подключения. Например, Если значение не указано в задаче, вместо него будет использоваться значение переменной среды По умолчанию: |
force логическое значение | Используйте вместе с Если задано Варианты:
|
labels словарь | Набор метаданных в формате «ключ:значение», где и ключ, и значение должны быть строками. Если указаны новые метаданные или изменены существующие, секрет будет обновлён путём его удаления и повторного создания. |
name строка / обязательный | Имя секрета. |
rolling_versions логическое значение добавлено в community.docker 2.2.0 | Если задано значение К управляемым секретам добавляется метка с номером версии и именем Варианты:
|
state строка | Укажите Варианты:
|
timeout целое число | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задаче, вместо него будет использоваться значение переменной среды По умолчанию: |
tls логическое значение | Защитите подключение к API с помощью TLS без проверки подлинности сервера узла Docker. Обратите внимание: если для Если значение не указано в задаче, вместо него будет использоваться значение переменной среды Варианты:
|
tls_hostname строка | При проверке подлинности сервера узла Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него будет использоваться значение переменной среды Обратите внимание, что в старых версиях значение этого параметра по умолчанию было Примечание: этот параметр больше не поддерживается в Docker SDK for Python 7.0.0+. Его указание в Docker SDK for Python версии 7.0.0 или новее приведёт к ошибке. |
use_ssh_client логическое значение добавлено в community.docker 1.5.0 | Для SSH-подключений используйте инструмент командной строки Требуется Docker SDK for Python версии 4.4.0 или новее. Варианты:
|
validate_certs псевдоним: tls_verify логическое значение | Защитите подключение к API с помощью TLS и проверяйте подлинность сервера узла Docker. Если значение не указано в задаче, вместо него будет использоваться значение переменной среды Варианты:
|
versions_to_keep целое число добавлено в community.docker 2.2.0 | При использовании Лишние старые секреты удаляются после создания нового. Укажите По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: полная | Может выполняться в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения о том, что изменилось (или, возможно, должно измениться в |
idempotent | Поддержка: частичная Если задано | При повторном запуске с теми же аргументами вне режима check второй запуск сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом. |
Примечания
Примечание
- Подключайтесь к демону Docker, передавая параметры для каждой задачи или задавая переменные среды. Можно задать
DOCKER_HOST,DOCKER_TLS_HOSTNAME,DOCKER_API_VERSION,DOCKER_CERT_PATH,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 с помощью Docker SDK for Python.
Примеры
---
- name: Create secret foo (from a file on the control machine)
community.docker.docker_secret:
name: foo
# If the file is JSON or binary, Ansible might modify it (because
# it is first decoded and later re-encoded). Base64-encoding the
# file directly after reading it prevents this to happen.
data: "{{ lookup('file', '/path/to/secret/file') | b64encode }}"
data_is_b64: true
state: present
- name: Create secret foo (from a file on the target machine)
community.docker.docker_secret:
name: foo
data_src: /path/to/secret/file
state: present
- name: Change the secret data
community.docker.docker_secret:
name: foo
data: Goodnight everyone!
labels:
bar: baz
one: '1'
state: present
- name: Add a new label
community.docker.docker_secret:
name: foo
data: Goodnight everyone!
labels:
bar: baz
one: '1'
# Adding a new label will cause a remove/create of the secret
two: '2'
state: present
- name: No change
community.docker.docker_secret:
name: foo
data: Goodnight everyone!
labels:
bar: baz
one: '1'
# Even though 'two' is missing, there is no change to the existing secret
state: present
- name: Update an existing label
community.docker.docker_secret:
name: foo
data: Goodnight everyone!
labels:
bar: monkey # Changing a label will cause a remove/create of the secret
one: '1'
state: present
- name: Force the removal/creation of the secret
community.docker.docker_secret:
name: foo
data: Goodnight everyone!
force: true
state: present
- name: Remove secret foo
community.docker.docker_secret:
name: foo
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
secret_id строка | Идентификатор, присвоенный объекту секрета Docker. Возвращается: при успешном выполнении и Пример: |
secret_name строка добавлено в community.docker 2.2.0 | Имя созданного объекта секрета. Возвращается: при успешном выполнении и Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/docker/docker_secret_module.html