Итак, теперь настраиваем Vault Agent на сервере (пошагово)



У нас на сервере уже должны лежать два файла из первого поста: `role-id` и `secret-id`. Теперь настраиваем самого агента. Он возьмет эти файлы, сходит в Vault и принесет готовый конфиг для твоего приложения.

Шаг 1. Кладем файлы в надежное место
Заходим на сервер по SSH. Создаем папку и перемещае туда файлы:

sudo mkdir -p /etc/vault
sudo mv role-id secret-id /etc/vault/
sudo chmod 600 /etc/vault/role-id /etc/vault/secret-id

(Команда chmod закрывает файлы от посторонних глаз)

Шаг 2. Создаем конфиг агента
Создаем файл с настройками. Он скажет агенту, куда подключаться и где искать файлы из Шага 1:
`sudo nano /etc/vault/agent-config.hcl`

Скопируем туда этот код (адрес `your-vault-server` заменим на свой):

vault {
address = "https://your-vault-server:8200"
}

auto_auth {
method "approle" {
config = {
role_id_file_path = "/etc/vault/role-id"
secret_id_file_path = "/etc/vault/secret-id"
}
}
sink "file" {
config = {
path = "/etc/vault/agent-token"
}
}
}

template {
source = "/etc/vault/app-config.tmpl"
destination = "/opt/myapp/config/application.yml"
command = "systemctl restart my-app"
}

Шаг 3. Создаем шаблон итогового файла
Агент не отдаст сырой JSON. Он соберет готовый файл настроек, который понимает приложение.
`sudo nano /etc/vault/app-config.tmpl`

Если у нас Spring Boot, пишем в шаблон это:

spring:
datasource:
username: {{ with secret "secret/data/myapp/db" }}{{ .Data.data.username }}{{ end }}
password: {{ with secret "secret/data/myapp/db" }}{{ .Data.data.password }}{{ end }}

(Агент сам подставит сюда логин и пароль из Vault).

Шаг 4. Проверяем работу (тест)
Сначала запустим агента вручную, чтобы убедиться, что всё работает:
`sudo vault agent -config=/etc/vault/agent-config.hcl`

Если в консоли нет ошибок, агент создал файл. Проверим его:
`sudo cat /opt/myapp/config/application.yml`
Мы должены увидеть там настоящий логин и пароль. Чтобы остановить тест, нажми `Ctrl+C`.

Шаг 5. Запускаем навсегда (как службу)
Чтобы агент работал сам, даже если закроем терминал, создадим сервис для Linux:
`sudo nano /etc/systemd/system/vault-agent.service`

Скопируем туда:

[Unit]
Description=HashiCorp Vault Agent
After=network-online.target

[Service]
ExecStart=/usr/bin/vault agent -config=/etc/vault/agent-config.hcl
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

Активируем и запускаем:

sudo systemctl daemon-reload
sudo systemctl enable vault-agent
sudo systemctl start vault-agent


Проверить, что агент жив, можно командой `sudo systemctl status vault-agent`.
Посмотреть логи: `sudo journalctl -u vault-agent -f`.
Просмотры: 108
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти