Chef:安装多个 Wordpress 站点
Chef: Install multiple Wordpress Site
我正在使用 Chef 在单个节点上部署 Wordpress 站点。我在超市“Wordpress recipe”上使用包装食谱。我不确定如何告诉我的包装器食谱在多个目录上安装 wordpress 文件:这里 si 需要设置属性来定义安装目录
node['wordpress']['dir'] = '<path for the install dir'
我试过将这个块放在默认属性文件中,但它只安装在最后一个文件夹而不是前 3 个文件夹。
default['apps'] = ['app1', 'app2, 'app3', 'app4']
default['apps'].each do |app|
node.default['wordpress']['dir'] = "/home/wordpress-user/#{app}"
end
我也在我的食谱文件中尝试过类似的东西
这就是我尝试创建文件夹的方式:
node['apps'].each do |app|
directory "/home/wordpress-user/#{app}" do
owner node['wordpress']['user']
group node['wordpress']['group']
mode '0755'
action :create
Chef::Log.info "App files will be installed under /home/wordpress-user/#{app}"
not_if { File.exist?("/home/wordpress-user/#{app}")}
end
end
然后我试图告诉它循环安装 wordpress 文件
node.default['apps'].each do |app|
node.override['wordpress']['dir'] = "/home/wordpress-user/#{app}"
end
但不知何故这不起作用。我确定我做错了什么。我对厨师很陌生。请帮忙..
关于你的情况,我会从头开始编写 wordpress 配方,因为你所描述的内容将保存属性节点 ['wordpress']['dir'] = “/home/wordpress-user/app4”,因为它覆盖现有属性。
请查看 attributes section.
我会使用:
node.default['apps'].each do |app|
node.override['wordpress']['dir'][app] = "/home/wordpress-user/#{app}"
directory node['wordpress']['dir'][app] do
owner node['wordpress']['user']
group node['wordpress']['group']
mode '0755'
action :create
Chef::Log.info "App files will be installed under /home/wordpress-user/#{app}"
not_if { File.exist?(node['wordpress']['dir'][app])}
end
bash "extract wp code to #{app}" do
cwd node['wordpress']['dir'][app]
code "tar -zxf #{sourcecode}"
end
end
此致,
阿列克谢
根据你的情况,我会在 apache 配置中分别配置每个应用程序,配置数据库和提取 wordpress 源。
我正在使用 Chef 在单个节点上部署 Wordpress 站点。我在超市“Wordpress recipe”上使用包装食谱。我不确定如何告诉我的包装器食谱在多个目录上安装 wordpress 文件:这里 si 需要设置属性来定义安装目录
node['wordpress']['dir'] = '<path for the install dir'
我试过将这个块放在默认属性文件中,但它只安装在最后一个文件夹而不是前 3 个文件夹。
default['apps'] = ['app1', 'app2, 'app3', 'app4']
default['apps'].each do |app|
node.default['wordpress']['dir'] = "/home/wordpress-user/#{app}"
end
我也在我的食谱文件中尝试过类似的东西
这就是我尝试创建文件夹的方式:
node['apps'].each do |app|
directory "/home/wordpress-user/#{app}" do
owner node['wordpress']['user']
group node['wordpress']['group']
mode '0755'
action :create
Chef::Log.info "App files will be installed under /home/wordpress-user/#{app}"
not_if { File.exist?("/home/wordpress-user/#{app}")}
end
end
然后我试图告诉它循环安装 wordpress 文件
node.default['apps'].each do |app|
node.override['wordpress']['dir'] = "/home/wordpress-user/#{app}"
end
但不知何故这不起作用。我确定我做错了什么。我对厨师很陌生。请帮忙..
关于你的情况,我会从头开始编写 wordpress 配方,因为你所描述的内容将保存属性节点 ['wordpress']['dir'] = “/home/wordpress-user/app4”,因为它覆盖现有属性。 请查看 attributes section.
我会使用:
node.default['apps'].each do |app|
node.override['wordpress']['dir'][app] = "/home/wordpress-user/#{app}"
directory node['wordpress']['dir'][app] do
owner node['wordpress']['user']
group node['wordpress']['group']
mode '0755'
action :create
Chef::Log.info "App files will be installed under /home/wordpress-user/#{app}"
not_if { File.exist?(node['wordpress']['dir'][app])}
end
bash "extract wp code to #{app}" do
cwd node['wordpress']['dir'][app]
code "tar -zxf #{sourcecode}"
end
end
此致, 阿列克谢
根据你的情况,我会在 apache 配置中分别配置每个应用程序,配置数据库和提取 wordpress 源。