使用 Chef docker 资源在生产中设置 hashicorp 保险库

问题描述

我正在尝试使用厨师食谱在生产中设置 hashicorp 保险库。这是我在 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: '.'

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)