2

我正在尝试使用厨师食谱在生产中设置hashicorp Vault。这就是我在 recipes/default.rb 中的内容

directory '/vault-docker' do
  action :create
end

cookbook_file '/vault-docker/config.hcl' do
  source 'config.hcl'
  action :create
end

cookbook_file '/vault-docker/local.json' do
  source 'local.json'
  action :create
end

docker_service 'default' do
  action [:create, :start]
end

docker_image 'vault' do
  action :pull
end

docker_container 'vault' do
  user 'root'
  repo 'vault'
  host_name 'vault'
  port '8200:8200'
  cap_add 'IPC_LOCK'
  volumes [ '/vault-docker/config.hcl:/vault/config/config.hcl' ]
  action [:run]
end

# bash 'vault' do
#   user 'root'
#   code <<-EOH
#     docker run -d -v /vault-docker/config.hcl:/vault/config/config.hcl --cap-add=IPC_LOCK \
#     -e 'VAULT_LOCAL_CONFIG={"backend": {"file": {"path": "/vault/file"}}, "default_lease_ttl": "168h", "max_lease_ttl": "720h"}' \
#      -p 8200:8200 vault server
#   EOH
# end

配置文件看起来像这样

ui = true
disable_mlock = true

listener "tcp" {
  address     = "0.0.0.0:8200"
  tls_disable = "true"
}

api_addr = "http://127.0.0.1:8200"
cluster_addr = "https://127.0.0.1:8201"

策略文件有

name 'vault'
default_source :supermarket
cookbook 'docker', '~> 7.7.0', :supermarket
run_list 'vault::default'
cookbook 'vault', path: '.'

当我运行厨房融合时,它以开发服务器模式而不是生产模式启动 Vault。如果我取消注释 recipes/default.rb 中的 bash 脚本,Vault 会按照我的预期以生产模式启动。我的问题是如何使用 docker_container 资源让 Vault 在生产模式下启动,因为我不想为此使用 bash 脚本。

链接到厨师码头资源https://supermarket.chef.io/cookbooks/docker#docker_volume

4

0 回答 0