Выполнение команд (exec)
Описание
exec извлекает элемент из Пассворка, расшифровывает значения и экспортирует их в переменные окружения, после чего запускает указанную команду с доступом к этим переменным.
Идентификация записей
Указать один или несколько параметров с значениями:
| Параметр | Описание |
|---|---|
--password-id | ID элем ента (или несколько через запятую) |
--folder-id | ID папки (или несколько через запятую) |
--vault-id | ID сейфа (или несколько через запятую) |
--tags | Теги для поиска (через запятую) |
Как это работает
- Подключение к серверу и аутентификация.
- Поиск записей по параметрам идентификации.
- Расшифровка значений (пароль, пользовательские поля).
- Формирование переменных окружения: имя переменной соответствует имени записи/поля (пробелы/символы заменяются на
_). - Запуск команды; код возврата команды возвращается наружу.
Синтаксис
- shell
passwork-cli exec [параметры] команда_для_выполнения
Либо с --cmd:
- shell
passwork-cli exec [параметры] --cmd "команда_для_выполнения"
Примеры
Запуск клиента БД со значением пароля из записи:
- shell
export PASSWORK_HOST="https://passwork.example.com"
export PASSWORK_TOKEN="<access_token>"
export PASSWORK_MASTER_KEY="<master_key>"
passwork-cli exec --password-id "db_password_id" \
mysql -u admin -h localhost -p"$DB_PASSWORD" database_name
Получение данных нескольких записей из папки и запуск скрипта:
- shell
passwork-cli exec --folder-id "project_folder_id" ./deploy.sh
Команда с пайпами/квотами (через --cmd):
- shell
passwork-cli exec --password-id "server_creds" \
--cmd "ssh user@server 'journalctl -u app | grep ERROR' > errors.log"
Поиск по тегам и запуск комплексного сценария:
- shell
passwork-cli exec \
--tags "production,api" \
./complex_deployment.sh
Примечания
- В переменное окружение: основное значение запи си (пароль) и дополнительные поля с типом пароль.
- Имена переменных нормализуются: пробелы и спецсимволы заменяются на
_. - Для SSL используйте
--ssl-verify: без значения — системные сертификаты, со значением — путь к CA bundle/директории сертификатов (например,--ssl-verify "/etc/ssl/certs"). --no-ssl-verifyсохранён как устаревший вариант для отключения проверки сертификатов.