一、安装 Vault 服务
#添加管理仓库的工具
yum install -y yum-utils
# 添加 HashiCorp 官方 Linux 仓库
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
#安装vault
yum -y install vault
二、启动一个标准的 Vault 服务
1.创建配置文件vault.hcl
#指定做持久化存储的数据库
storage "mysql" {
address = "192.168.2.141:4000" #使用的tidb数据库,所以端口是4000
username = "root"
password = "123qweQWE"
database = "vault" #需提前到数据库创建好该库
}
ui = true
api_addr="http://0.0.0.0:8200"
listener "tcp"{
address = "0.0.0.0:8200"
tls_disable = 1 #关闭vault证书认证
}
2.启动vault服务
nohup vault server -config=vault.hcl > nohup.out &
3.启动后进行初始化
vault operator init
#初始化后产生的key和token需要保存,登录时需要验证
Unseal Key 1: 4g8FTfPiyE5f/6vzURVm+ljTEfOCRQPXSZp1WteK1rJu
Unseal Key 2: si53pSe8AulsCZelBPFypf1dyuNeLgUVGKdVfbNWc3+3
Unseal Key 3: qhONs6vqG7eO7DeRgatuCbVPMZ2X06g/U6gnWVliO+de
Unseal Key 4: H8GNnfQdkeACSuHo4dyj+yNrRTs/UEVZbYWHNn6drRR3
Unseal Key 5: uSIbqitWpwcfzP4Tg3y4GJO7NIxRQ+qiy0ZbJBvmHSpY
Initial Root Token: s.n3YQoQMDILejIuWPcQBIGW3Q
4.查看vault状态
vault status
5.登录验证
vault login s.n3YQoQMDILejIuWPcQBIGW3Q #启动时产生的token
参考地址:https://lonegunmanb.github.io/essential-vault/1.%E4%BB%80%E4%B9%88%E6%98%AFvault/5.%E5%90%AF%E5%8A%A8%E6%A0%87%E5%87%86%E7%9A%84Vault%E6%9C%8D%E5%8A%A1.html
三、常见问题
1设置VAULT_ADDR路径时报错
failed to create client: parse 'http://127.0.0.1:8200': first path segment in URL cannot contain colon
解决方式:set VAULT_ADDR=http://127.0.0.1:8200 设置路径时不需要引号
2 vault status
Error checking seal status: Get https://127.0.0.1:8200/v1/sys/seal-status: http: server gave HTTP response to HTTPS client
解决方式:没有指定VAULT_ADDR,可以通过指定-address来查看vault status -address='http://0.0.0.0:8200'
3 vault policy write app1 app1.hcl
Error uploading policy: Error making API request.
URL: PUT http://*.*.*.*:8200/v1/sys/policies/acl/app1
Code: 403. Errors:
* permission denied
解决方式:用解封时产生的token登陆后,进行写策略操作
4 vault中遇到解封错误,解封到第三个时报错key invalid,是因为主机和虚拟机用了同一个数据库,主机中的vault解封后,虚拟机中再解封就不能成功了
5 vault中unseal key和token丢失后,如果是用的mysql database,将数据库中的vault相关信息删除后,可以重新初始化vault,获取新的token和unseal key。
6 启动vault :vault server -config=vault.hcl报错
Error initializing storage of type mysql: failed to check mysql schema exist: dial tcp *.*.*.46:3306: connect: connection timed out
Error initializing storage of type mysql: failed to check mysql schema exist: dial tcp 10.0.1.6:3306: connect: connection refused
数据库连接问题,不能访问
注:设置程序开机后一段时间自启动方式