我正在尝试使用厨师食谱在生产中设置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