Spec-Zone.ru › Ansible

Поиск community.general.passwordstore — управление паролями с помощью утилиты pass от passwordstore.org

Примечание

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

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

Чтобы установить её, используйте: ansible-galaxy collection install community.general.

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

  • Краткое описание
  • Термины
  • Параметры-ключевые слова
  • Примечания
  • Примеры
  • Возвращаемое значение

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

  • Позволяет Ansible получать, создавать или обновлять пароли с помощью утилиты pass от passwordstore.org. Также позволяет получать, создавать или обновлять ключи в формате YAML, хранящиеся в файле паролей в виде нескольких строк.
  • Чтобы избежать проблем при одновременном доступе к нескольким секретам, добавьте auto-expand-secmem в ~/.gnupg/gpg-agent.conf. Если это невозможно, рассмотрите возможность использования вместо этого lock=readwrite.

Термины

Параметр

Комментарии

Термины

строка / обязательный

Ключ запроса.

Параметры-ключевые слова

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

Параметр

Комментарии

backend

строка

добавлено в community.general 5.2.0

Укажите используемую серверную часть.

По умолчанию используется pass — оригинальная утилита pass от passwordstore.org.

Поддержка gopass реализована не полностью.

Варианты:

  • "pass" ← (по умолчанию)
  • "gopass"

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

  • Запись INI:

    [passwordstore_lookup]
    backend = pass
    
  • Переменная: passwordstore_backend

backup

логическое значение

Используется вместе с overwrite=true. Сохранить предыдущий пароль или вложенный ключ во вложенном ключе.

Варианты:

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

create

логическое значение

Создать пароль или вложенный ключ, если он ещё не существует. Имеет приоритет над missing.

Варианты:

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

directory

путь

Каталог хранилища паролей.

Если backend=pass, используется значение по умолчанию ~/.password-store.

Если backend=gopass, в качестве значения по умолчанию используется поле path в ~/.config/gopass/config.yml; если path не задано в конфигурации gopass, используется ~/.local/share/gopass/stores/root.

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

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

length

целое число

Длина генерируемого пароля.

По умолчанию: 16

lock

строка

добавлено в community.general 4.5.0

Способ синхронизации операций.

Значение по умолчанию write синхронизирует только операции записи.

Значение readwrite синхронизирует все операции (включая чтение). Это гарантирует, что gpg-agent никогда не будет вызван параллельно.

Значение none отключает синхронизацию.

Варианты:

  • "readwrite"
  • "write" ← (по умолчанию)
  • "none"

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

  • Запись INI:

    [passwordstore_lookup]
    lock = write
    

locktimeout

строка

добавлено в community.general 4.5.0

Тайм-аут блокировки, применяемый, когда lock не равно none.

Время с суффиксом единицы измерения: s, m, h обозначают секунды, минуты и часы соответственно. Например, 900s соответствует 15m.

Соответствует pinentry-timeout в ~/.gnupg/gpg-agent.conf; подробности см. в man gpg-agent.

По умолчанию: "15m"

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

  • Запись INI:

    [passwordstore_lookup]
    locktimeout = 15m
    

missing

строка

добавлено в community.general 3.1.0

Список предпочтительных действий в случае отсутствия файла пароля.

Если create=true, значение этого параметра игнорируется и считается равным create.

Если задано значение error, поиск завершается с ошибкой, если passname не существует.

Если задано значение create, passname создаётся с указанной длиной length, если он не существует.

Если задано значение empty или warn, при отсутствии passname возвращается none. При использовании lookup без query это преобразуется в пустую строку.

Варианты:

  • "error" ← (по умолчанию)
  • "warn"
  • "empty"
  • "create"

missing_subkey

строка

добавлено в community.general 8.6.0

Предпочтительное действие в случае отсутствия вложенного ключа пароля.

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

Если задано значение empty или warn, при отсутствии вложенного ключа возвращается none.

Варианты:

  • "error"
  • "warn"
  • "empty" ← (по умолчанию)

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

  • Запись INI:

    [passwordstore_lookup]
    missing_subkey = empty
    

nosymbols

логическое значение

Использовать буквенно-цифровые символы.

Варианты:

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

overwrite

логическое значение

Перезаписать пароль или вложенный ключ, если он уже существует.

Варианты:

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

preserve

логическое значение

добавлено в community.general 8.1.0

Добавить старый (изменённый) пароль в файл pass.

Варианты:

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

returnall

логическое значение

Возвращать всё содержимое пароля, а не только первую строку.

Варианты:

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

subkey

строка

По умолчанию возвращает указанный вложенный ключ пароля. Если задано значение password, всегда возвращается первая строка.

При использовании overwrite=true вложенный ключ создаётся и возвращается.

По умолчанию: "password"

timestamp

логическое значение

добавлено в community.general 8.1.0

Добавить сведения о генерации пароля в конец файла.

Варианты:

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

umask

строка

добавлено в community.general 1.3.0

Задаёт umask для создаваемых файлов .gpg. Первая восьмеричная цифра должна быть больше 3 (доступ на чтение для пользователя).

Обратите внимание: значение по умолчанию для pass — '077'.

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

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

userpass

строка

Укажите пароль для сохранения вместо сгенерированного.

Примечание

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

Примечания

Примечание

  • При совместном использовании параметров позиционных и параметров-ключевых слов позиционные параметры должны указываться перед параметрами-ключевыми словами: lookup('community.general.passwordstore', term1, term2, key1=value1, key2=value2) и query('community.general.passwordstore', term1, term2, key1=value1, key2=value2)
  • Начиная с community.general 6.0.0, поиск поддерживает передачу всех параметров в качестве параметров поиска.

Примеры

ansible.cfg: |
  [passwordstore_lookup]
  lock=readwrite
  locktimeout=45s
  missing_subkey=warn

tasks.yml: |-
  ---

  # Debug is used for examples, BAD IDEA to show passwords on screen
  - name: Basic lookup. Fails if example/test does not exist
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test')}}"

  - name: Basic lookup. Warns if example/test does not exist and returns empty string
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', missing='warn')}}"

  - name: Create pass with random 16 character password. If password exists just give the password
    ansible.builtin.debug:
      var: mypassword
    vars:
      mypassword: "{{ lookup('community.general.passwordstore', 'example/test', create=true)}}"

  - name: Create pass with random 16 character password. If password exists just give the password
    ansible.builtin.debug:
      var: mypassword
    vars:
      mypassword: "{{ lookup('community.general.passwordstore', 'example/test', missing='create')}}"

  - name: >-
      Create a random 16 character password in a subkey. If the password file already exists, just add the subkey in it.
      If the subkey exists, returns it
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', create=true, subkey='foo') }}"

  - name: >-
      Create a random 16 character password in a subkey. Overwrite if it already exists and backup the old one.
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', create=true, subkey='user', overwrite=true, backup=true) }}"

  - name: Prints 'abc' if example/test does not exist, just give the password otherwise
    ansible.builtin.debug:
      var: mypassword
    vars:
      mypassword: >-
        {{ lookup('community.general.passwordstore', 'example/test', missing='empty')
           | default('abc', true) }}

  - name: Different size password
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', create=true, length=42)}}"

  - name: >-
      Create password and overwrite the password if it exists.
      As a bonus, this module includes the old password inside the pass file
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', create=true, overwrite=true)}}"

  - name: Create an alphanumeric password
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', create=true, nosymbols=true) }}"

  - name: Return the value for user in the KV pair user, username
    ansible.builtin.debug:
      msg: "{{ lookup('community.general.passwordstore', 'example/test', subkey='user')}}"

  - name: Return the entire password file content
    ansible.builtin.set_fact:
      passfilecontent: "{{ lookup('community.general.passwordstore', 'example/test', returnall=true)}}"

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

Ключ

Описание

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

список / элементы=строка

Пароль.

Возвращается: при успешном выполнении

Авторы

  • Patrick Deelman

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

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

© 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/general/passwordstore_lookup.html

Spec-Zone.ru

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