Хотя Vault можно установить на различных платформах (www.vaultproject.io/downloads.html), есть один очень грамотный подход, который будет работать для последующей миграции в облако, – это использовать опубликованный Docker контейнер.
Для начала вам все равно нужно скачать бинарник Vault для локального компьютера, чтобы использовать клиент Vault.
$ docker run -p 8200:8200 --cap-add=IPC_LOCK -d --name=dev-vault vault #
Если вы уже запускали в прошлом, но не видите, что он работает с Docker PS, просто запустите:$ docker run vault #
Если вы хотите принудительно использовать токен (для автоматизации позже это станет полезным)
$ docker run -p 8200:8200
--cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=5l8v34FMhOVBozD9IAAkHREj' vault
==> Vault server configuration:
Api Address: http://0.0.0.0:8200
Cgo: disabled
Cluster Address: https://0.0.0.0:8201
#
определить IP
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
44597b284377 vault "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:8200->8200/tcp vigorous_darwin
#входи
vault login -address=http://0.0.0.0:8200
Token (will be hidden):
Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.
Key Value
--- -----
token 5l8v34FMhOVBozD9IAAkHREj
token_accessor 5g5IJ5WZtfIrQ7KpWhFBWELq
token_duration ∞
token_renewable false
token_policies ["root"]
identity_policies []
policies ["root"]
Вы также можете использовать REST API для входа в систему не в интерактивном режиме (все, что вы можете сделать в CLI, можно сделать через API).
#
используя pod ip
docker inspect zen_chatterjee | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
$ sudo ifconfig lo0 alias 172.17.0.2
$ sudo vi /etc/hosts
$ cat /etc/hosts | grep vault.local
172.17.0.2 vault.local
$ vault login -address=http://vault.local:8200
Token (will be hidden):
Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.
Key Value
--- -----
token 5l8v34FMhOVBozD9IAAkHREj
token_accessor 5g5IJ5WZtfIrQ7KpWhFBWELq
D:\Vault>vault server -dev
==> Vault server configuration:
Api Address: http://127.0.0.1:8200
Cgo: disabled
Cluster Address: https://127.0.0.1:8201
Listener 1: tcp (addr: "127.0.0.1:8200", cluster address: "127.0.0.1:8201", max_request_duration: "1m30s", max_request_size: "33554432", tls: "disabled")
Log Level: (not set)
Mlock: supported: false, enabled: false
Storage: inmem
Version: Vault v1.0.1
Version Sha: 08df121c8b9adcc2b8fd55fc8506c3f9714c7e61
WARNING! dev mode is enabled! In this mode, Vault runs entirely in-memory
and starts unsealed with a single unseal key. The root token is already
authenticated to the CLI, so you can immediately begin using Vault.
You may need to set the following environment variable:
$ set VAULT_ADDR=http://127.0.0.1:8200
Используя подсистему Windows для Linux в Windows 10, вы также можете использовать бинарный файл linux.
Как запустить файл .sh или Shell скрипт в Windows 10
Вы можете увидеть различные конфигурации сервера здесь: https://www.vaultproject.io/docs/configuration/
Теперь можно также установить Vault в Kubernetes.
Для этого требуется сначала работающий экземпляр consul (который также теперь имеет helm chart ):
- Consul Helm Chart: https://github.com/helm/charts/tree/master/stable/consul
- Vault Helm Chart: https://github.com/helm/charts/tree/master/incubator/vault