Spec-Zone.ru › Ansible

поиск community.sops.sops — чтение содержимого файлов, зашифрованных SOPS

Примечание

Этот плагин поиска входит в коллекцию community.sops (версия 2.3.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.sops. Для использования этого плагина поиска могут потребоваться дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать его в плейбуке, укажите: community.sops.sops.

Добавлено в community.sops 0.1.0

  • Краткое описание
  • Требования
  • Аргументы
  • Именованные параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемое значение

Краткое описание

  • Этот плагин поиска возвращает содержимое файла в файловой системе контроллера Ansible.
  • Для работы этого плагина поиска исполняемый файл sops должен быть доступен в PATH контроллера.

Требования

Следующие требования должны быть выполнены на локальном узле контроллера, который выполняет этот плагин поиска.

  • Двоичный исполняемый файл sops (https://github.com/getsops/sops) должен находиться в PATH или быть указан в sops_binary.

Аргументы

Параметр

Комментарии

Terms

list / elements=string / обязательный

Путь или пути к файлам для чтения.

Именованные параметры

В этом разделе описаны именованные параметры плагина поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.sops.sops', key1=value1, key2=value2, ...) и query('community.sops.sops', key1=value1, key2=value2, ...)

Параметр

Комментарии

age_key

string

добавлено в community.sops 1.4.0

Один или несколько закрытых ключей age, которые можно использовать для расшифровки зашифрованных файлов.

При вызове SOPS будет задана переменная окружения SOPS_AGE_KEY.

Требуется SOPS версии 3.7.1 или новее.

Конфигурация:

  • Переменная окружения: ANSIBLE_SOPS_AGE_KEY
  • Переменная: sops_age_key

age_key_cmd

string

добавлено в community.sops 2.3.0

Команда, которую SOPS выполнит для получения закрытого ключа age, используемого для расшифровки зашифрованных файлов.

При вызове SOPS будет задана переменная окружения SOPS_AGE_KEY_CMD.

Требуется SOPS версии 3.10.0 или новее.

При выполнении этой команды, если используется SOPS версии 3.12.0 или новее, SOPS задаст переменную SOPS_AGE_RECIPIENT, содержащую идентификатор ключа, который требуется использовать для расшифровки.

Конфигурация:

  • Запись INI:

    [community.sops]
    age_key_cmd = VALUE
    
  • Переменная окружения: ANSIBLE_SOPS_AGE_KEY_CMD
  • Переменная: sops_age_key_cmd

age_keyfile

path

добавлено в community.sops 1.4.0

Файл, содержащий закрытые ключи age, которые SOPS может использовать для расшифровки зашифрованных файлов.

При вызове SOPS будет задана переменная окружения SOPS_AGE_KEY_FILE.

По умолчанию SOPS ищет sops/age/keys.txt в каталоге конфигурации пользователя.

Требуется SOPS версии 3.7.0 или новее.

Конфигурация:

  • Запись INI:

    [community.sops]
    age_keyfile = VALUE
    
  • Переменная окружения: ANSIBLE_SOPS_AGE_KEYFILE
  • Переменная: sops_age_keyfile

age_ssh_private_key_cmd

string

добавлено в community.sops 2.3.0

Команда, которую SOPS выполнит для получения закрытого ключа SSH, используемого для расшифровки зашифрованных файлов.

При вызове SOPS будет задана переменная окружения SOPS_AGE_SSH_PRIVATE_KEY_CMD.

При выполнении этой команды SOPS задаст переменную SOPS_AGE_RECIPIENT, содержащую идентификатор ключа, который требуется использовать для расшифровки.

Требуется SOPS версии 3.12.0 или новее.

Конфигурация:

  • Запись INI:

    [community.sops]
    age_ssh_private_key_cmd = VALUE
    
  • Переменная окружения: ANSIBLE_SOPS_AGE_SSH_PRIVATE_KEY_CMD
  • Переменная: sops_age_ssh_private_key_cmd

age_ssh_private_keyfile

path

добавлено в community.sops 1.4.0

Файл, содержащий закрытый ключ SSH, который SOPS может использовать для расшифровки зашифрованных файлов.

При вызове SOPS будет задана переменная окружения SOPS_AGE_SSH_PRIVATE_KEY_FILE.

По умолчанию SOPS ищет ~/.ssh/id_ed25519, а при его отсутствии использует ~/.ssh/id_rsa.

Требуется SOPS версии 3.10.0 или новее.

Конфигурация:

  • Запись INI:

    [community.sops]
    age_ssh_private_keyfile = VALUE
    
  • Переменная окружения: ANSIBLE_SOPS_AGE_SSH_PRIVATE_KEYFILE
  • Переменная: sops_age_ssh_private_keyfile

aws_access_key_id

string

добавлено в community.sops 1.0.0

Идентификатор ключа доступа AWS для запросов к AWS.

Для вызова SOPS задаёт переменную окружения AWS_ACCESS_KEY_ID.

Конфигурация:

  • Запись INI:

    [community.sops]
    aws_access_key_id = VALUE
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_AWS_ACCESS_KEY_ID

    добавлено в community.sops 1.2.0

  • Переменная: sops_aws_access_key_id

aws_profile

string

добавлено в community.sops 1.0.0

Профиль AWS для запросов к AWS.

Соответствует параметру SOPS --aws-profile.

Конфигурация:

  • Запись INI:

    [community.sops]
    aws_profile = VALUE
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_AWS_PROFILE

    добавлено в community.sops 1.2.0

  • Переменная: sops_aws_profile

aws_secret_access_key

string

добавлено в community.sops 1.0.0

Секретный ключ доступа AWS для запросов к AWS.

Для вызова SOPS задаёт переменную окружения AWS_SECRET_ACCESS_KEY.

Конфигурация:

  • Переменная окружения: ANSIBLE_SOPS_AWS_SECRET_ACCESS_KEY

    добавлено в community.sops 1.2.0

  • Переменная: sops_aws_secret_access_key

aws_session_token

string

добавлено в community.sops 1.0.0

Токен сеанса AWS для запросов к AWS.

Для вызова SOPS задаёт переменную окружения AWS_SESSION_TOKEN.

Конфигурация:

  • Запись INI:

    [community.sops]
    aws_session_token = VALUE
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_AWS_SESSION_TOKEN

    добавлено в community.sops 1.2.0

  • Переменная: sops_session_token
  • Переменная: sops_aws_session_token

    добавлено в community.sops 1.2.0

base64

boolean

Кодирует результат разбора в Base64.

Используйте этот параметр, если хотите хранить двоичные данные в переменных Ansible.

Варианты:

  • false ← (по умолчанию)
  • true

config_path

path

добавлено в community.sops 1.0.0

Путь к файлу конфигурации SOPS.

Если параметр не задан, SOPS будет рекурсивно искать файл конфигурации, начиная с файла, который шифруется или расшифровывается.

Соответствует параметру SOPS --config.

Конфигурация:

  • Запись INI:

    [community.sops]
    config_path = VALUE
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_CONFIG_PATH

    добавлено в community.sops 1.2.0

  • Переменная: sops_config_path

empty_on_not_exist

boolean

Если задано значение true, ошибка при отсутствии файла не возникает, вместо этого возвращается пустая строка.

Варианты:

  • false ← (по умолчанию)
  • true

enable_local_keyservice

boolean

добавлено в community.sops 1.0.0

Указывает SOPS использовать локальную службу ключей.

Если задано значение false, это соответствует параметру SOPS --enable-local-keyservice=false.

Варианты:

  • false
  • true ← (по умолчанию)

Конфигурация:

  • Запись INI:

    [community.sops]
    enable_local_keyservice = true
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_ENABLE_LOCAL_KEYSERVICE

    добавлено в community.sops 1.2.0

  • Переменная: sops_enable_local_keyservice

extract

string

добавлено в community.sops 1.9.0

Указывает SOPS извлечь определённый ключ из файла JSON или YAML.

Ожидается строка с синтаксисом «querystring», аналогичным параметру SOPS --encrypt, например ["somekey"][0].

Примечание: Экранируйте кавычки соответствующим образом.

gcp_kms_client_type

string

добавлено в community.sops 3.2.0

Определяет, какой клиент использовать для взаимодействия с Google Cloud Services.

При вызове SOPS будет задана переменная окружения SOPS_GCP_KMS_CLIENT_TYPE.

Требуется SOPS версии 3.12.0 или новее.

Варианты:

  • "grpc": использовать клиент gRPC
  • "rest": использовать клиент REST

Конфигурация:

  • Запись INI:

    [community.sops]
    gcp_kms_client_type = VALUE
    
  • Переменная окружения: ANSIBLE_SOPS_GCP_KMS_CLIENT_TYPE
  • Переменная: sops_gcp_kms_client_type

gcp_oauth_access_token

string

добавлено в community.sops 3.2.0

Предоставляет токен Google Cloud OAuth.

При вызове SOPS будет задана переменная окружения GOOGLE_OAUTH_ACCESS_TOKEN.

Требуется SOPS версии 3.10.0 или новее.

Конфигурация:

  • Переменная окружения: ANSIBLE_SOPS_GCP_OAUTH_ACCESS_TOKEN
  • Переменная: sops_gcp_oauth_access_token

input_type

string

Указывает SOPS, как интерпретировать зашифрованный файл.

По умолчанию SOPS выбирает тип входных данных по расширению файла. Если для файла определяется неправильный тип, расшифровка может завершиться ошибкой.

Значение ini доступно начиная с community.sops 1.9.0.

Варианты:

  • "binary"
  • "json"
  • "yaml"
  • "dotenv"
  • "ini"

keyservice

list / elements=string

добавлено в community.sops 1.0.0

Указывает службы ключей, которые будут использоваться наряду с локальной службой.

Служба ключей должна быть указана в формате protocol://address, например tcp://myserver.com:5000.

Соответствует параметру SOPS --keyservice.

Конфигурация:

  • Запись INI:

    [community.sops]
    keyservice = VALUE
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_KEYSERVICE

    добавлено в community.sops 1.2.0

  • Переменная: sops_keyservice

output_type

string

Указывает SOPS, как интерпретировать расшифрованный файл.

По умолчанию SOPS выбирает тип выходных данных по расширению файла. Если для файла определяется неправильный тип, расшифровка может завершиться ошибкой.

Значение ini доступно начиная с community.sops 1.9.0.

Варианты:

  • "binary"
  • "json"
  • "yaml"
  • "dotenv"
  • "ini"

rstrip

boolean

Удалять ли завершающие символы новой строки и пробелы.

Варианты:

  • false
  • true ← (по умолчанию)

sops_binary

string

добавлено в community.sops 1.0.0

Путь к исполняемому файлу SOPS.

По умолчанию используется sops.

Конфигурация:

  • Запись INI:

    [community.sops]
    binary = VALUE
    

    добавлено в community.sops 1.2.0

  • Переменная окружения: ANSIBLE_SOPS_BINARY

    добавлено в community.sops 1.2.0

  • Переменная: sops_binary

Примечание

Для каждого типа записи конфигурации, указанного выше (переменная Ansible, переменная окружения и т. д.), записи перечислены в порядке от низкого приоритета к высокому. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также перечислены в порядке от низкого приоритета к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

  • При совместном использовании именованных и позиционных параметров позиционные параметры необходимо указывать перед именованными: lookup('community.sops.sops', term1, term2, key1=value1, key2=value2) и query('community.sops.sops', term1, term2, key1=value1, key2=value2)
  • Этот плагин поиска не поддерживает подстановочные шаблоны — вместо него используйте плагин поиска ansible.builtin.fileglob.

См. также

См. также

community.sops.decrypt — плагин фильтра

Фильтр decrypt можно использовать для расшифровки данных в памяти, зашифрованных SOPS.

community.sops.sops — плагин переменных

Плагин переменных sops можно использовать для загрузки переменных узлов или групп, зашифрованных SOPS.

community.sops.load_vars

Динамическая загрузка переменных, зашифрованных SOPS, из файлов во время выполнения задачи.

Примеры

---
- name: Output secrets to screen (BAD IDEA!)
  ansible.builtin.debug:
    msg: "Content: {{ lookup('community.sops.sops', item) }}"
  loop:
    - sops-encrypted-file.enc.yaml

- name: Add SSH private key
  ansible.builtin.copy:
  # Note that rstrip=false is necessary for some SSH versions to be able to use the key
    content: "{{ lookup('community.sops.sops', user + '-id_rsa', rstrip=false) }}"
    dest: /home/{{ user }}/.ssh/id_rsa
    owner: "{{ user }}"
    group: "{{ user }}"
    mode: "0600"
  no_log: true # avoid content to be written to log

- name: The file file.json is a YAML file, which contains the encryption of binary data
  ansible.builtin.debug:
    msg: "Content: {{ lookup('community.sops.sops', 'file.json', input_type='yaml', output_type='binary') }}"

Возвращаемое значение

Ключ

Описание

Возвращаемое значение

list / elements=string

Расшифрованное содержимое файла.

Возвращается: при успехе

Авторы

  • Edoardo Tenani (@endorama)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь (SOPS)
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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/sops/sops_lookup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API