0Pricing
DevOps Bootcamp · Урок

Шифрование одной переменной в строке

Сочетайте открытые и секретные переменные

«Шифрование одной переменной в строке» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Не всё является секретом

Иногда в файле конфиденциально только одно значение, а остальное безвредно. Шифрование всего файла кажется излишней мерой. 🤔

Зашифруйте только одну переменную

Vault может зашифровать одно значение, оставив остальную часть YAML доступной для чтения. Это сохраняет изменения в удобном для проверки виде и позволяет просматривать конфигурацию.

Команда encrypt_string

Используйте ansible-vault encrypt_string, чтобы превратить одно значение в открытом тексте в зашифрованный блок, который можно вставить в любой файл vars.

ansible-vault encrypt_string 's3cr3t' --name 'db_password'

Что выводит команда

Команда выводит ключ YAML, значение которого использует тег !vault, за которым следует блок шифротекста с отступом.

db_password: !vault |
  $ANSIBLE_VAULT;1.1;AES256
  39653764...

Вставьте в vars

Скопируйте этот блок прямо в group_vars или в vars плейбука, рядом с обычными переменными в открытом тексте.

vars:
  app_user: deploy
  db_password: !vault |
    $ANSIBLE_VAULT;1.1;AES256
    39653764...

Тег !vault

Тег !vault сообщает Ansible: это единственное значение зашифровано, и перед использованием его нужно расшифровать.

Используется как любая переменная

Во время выполнения значение прозрачно расшифровывается. Вы обращаетесь к нему с помощью обычного синтаксиса {{ }}, как к обычной переменной.

- name: Set DB password
  debug:
    msg: "{{ db_password }}"

Не вводите открытый текст в командной строке

Сохранение секрета в истории командной оболочки опасно. Добавьте --stdin-name, чтобы ввести значение интерактивно.

ansible-vault encrypt_string --stdin-name 'db_password'

Отдельное значение или весь файл

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

В обоих случаях используется один пароль

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

Изменения остаются пригодными для проверки

Главное преимущество: шифротекстом является только строка с секретом, поэтому проверка кода и git diff по-прежнему ясно показывают все изменения, не связанные с секретами.

Быстрая проверка

Вам нужно зашифровать одно значение, оставив остальную часть файла vars доступной для чтения.

Итоги

С помощью encrypt_string Вы шифруете одно значение в блок !vault, смешивая секреты и открытый текст в одном доступном для чтения файле. ✨

Часто задаваемые вопросы

Урок «Шифрование одной переменной в строке» бесплатный?

Да — полный текст урока «Шифрование одной переменной в строке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Шифрование одной переменной в строке»?

Сочетайте открытые и секретные переменные Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Шифрование одной переменной в строке»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Шифрование файла с ansible-vault create
  2. Редактирование, просмотр и смена ключа файлов хранилища
  3. Шифрование одной переменной в строке
  4. Расшифровка во время выполнения с --ask-vault-pass
← Назад к DevOps Bootcamp