gpt4 book ai didi

laravel - 开始使用 Chef,并在部署时运行 Composer 安装

转载 作者:行者123 更新时间:2023-12-02 14:32:46 25 4
gpt4 key购买 nike

我们希望部署一些 Laravel4使用 OpsWorks 在亚马逊上基于 PHP 应用程序,这需要一些东西:

  • 从 git 获取代码
  • 从 getcomposer.com 下载composer.phar
  • 运行phpcomposer.phar install
  • 更改一些特定文件夹的权限

我对 Chef 完全陌生,所以最初寻找一个地方来掌握 Chef 的基础知识,然后如何完成上述任务,将不胜感激。

最佳答案

我不是 Chef 大师(我通常使用 Puppet),但请尝试以下操作:

从 git 获取代码

您可能想要执行 wget 命令(请参阅下面的示例)。

如果您想要更复杂的东西,请参阅 http://docs.opscode.com/resource_deploy.html

deploy_revision "/path/to/application" do
repo 'ssh://name-of-git-repo/repos/repo.git'
migrate false
purge_before_symlink %w{one two folder/three}
create_dirs_before_symlink []
symlinks(
"one" => "one",
"two" => "two",
"three" => "folder/three"
)
before_restart do
# some Ruby code
end
notifies :restart, "service[foo]"
notifies :restart, "service[bar]"
end

从 getcomposer.com 下载composer.phar

我会执行 wget。

我从这里提取了一些代码:http://cookingclouds.com/2012/06/23/chef-simple-cookbook-example/

它基本上只是在特定文件夹中执行 wget,提取 tar 的内容并更新新文件的一些权限。仅当该文件夹尚不存在时才会执行此操作。

# Run a bash shell -  download and extract composer
bash "install_composer" do
user "root"
cwd "/folder/to/extact/to"
code <<-EOH
wget http://getcomposer.com/composer.tar.gz
tar -xzf composer.tar.gz
chown -R user:group /folder/to/extact/to
EOH
not_if "test -d /folder/to/extact/to"
end

运行 php Composer.phar install

http://docs.opscode.com/resource_execute.html

execute "composer install" do
command "php composer.phar install && touch /var/log/.php_composer_installed"
creates "/var/log/.php_composer_installed"
action :run
end

这只会运行一次,否则您可以删除“creates”,它每次都会运行。

更改一些特定文件夹的权限

http://docs.opscode.com/resource.html

directory "/tmp/folder" do
owner "root"
group "root"
mode 0755
action :create
end

如果目录已经存在,则不会发生任何事情。如果目录以任何方式发生更改,资源将被标记为已更新。

终于

我发现搜索很方便,在 Chef 网站上浏览东西似乎没有希望(太多东西需要挖掘)。 http://docs.opscode.com/search.html

关于laravel - 开始使用 Chef,并在部署时运行 Composer 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16072524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com