一位厨师统御一切


10

我正在寻找厨师来自动化Magento部署-既可以进入标准Magento托管选项,也可以进入EC2等环境。我到处搜索,看到很多食谱,但没有一个能真正使我感到经典。是否有一个特定的厨师脚本会更好/最好?另外,如果您以前使用PHP完成过厨师部署,那么刚开始时希望知道的一件事是什么?


2
我希望知道Ansible(ansible.com/home)存在。
Reid Blomquist 2014年

如果您有兴趣,可以选择其他一些替代方法,例如saltstack.comdocker.com。两者看起来都很有前途,但是我都没有机会合作。
beeplogic

1
我一直在试验capistrano-ash:github.com/augustash/capistrano-ash
pzirkind 2014年

我想瑞德(Reid)有事了,艾伦(Alan):Ansible。它不需要在客户端上安装代理(与ssh +键一起使用),它是一个声明式系统,因此具有幂等性,总的来说,我发现使用它会使我“做一件事情,简单地做一下,并与厨师,人偶和盐等更强大的系统相比,具有“ Unix”的感觉。自从您最初发布此书已有一段时间了,与厨师合作一段时间后您的想法是否有任何更新?
Bryan'BJ'Hoffpauir Jr.

Answers:


6

一套适合所有情况的例程几乎是不可能的。我已经成功编写了一个Bash脚本,该脚本chef-client在所提供的主机列表上执行运行knife search。程序看起来像这样……

Ubuntu 12.04 LTS上的开源Chef Server 10.18.2

  1. 初始化变量
  2. 从GitHub获取最新的修订哈希 $branch
  3. 禁用可用性监视以防止通过HTTP 503状态发出警报
  4. 将所有Web和实用程序主机切换到维护模式
  5. 部署工具
    1. 停止Magento的计划和所有Resque工人
    2. 地址文件系统依赖性
    3. Chef将定义的修订签出为新版本
    4. 解决Magento依赖关系(包,模块,文件系统,权限)
    5. 更新所有cron任务和脚本以实现自动化
    6. 部署所有模块(composer)
    7. 使用清除缓存 n98-magerun.phar
    8. 使用运行任何迁移 n98-magerun.phar
    9. 重新启用Magento Cron
    10. 开始Resque工作者
  6. 部署第一个Web主机
    1. 地址文件系统依赖性
    2. Chef签出定义$revision为新版本
    3. 解决Magento依赖性
    4. 部署所有Magento模块
  7. 在New Relic中标记新部署
  8. 启用可用性监视服务
  9. 禁用所有其他Web主机的负载平衡器服务
  10. 继续在Web主机上进行部署,然后使其联机
  11. 为搜索主机执行Chef例程

资料来源:https : //gist.github.com/parhamr/6177160#file-2-deployment


4

这就是想成为sysadmin / devops角色时进入该领域的方式。以下大多数内容只是我尝试遵循的一般原则,而不是特定于Chef的。

我最终选择了Puppet,因为我发现当时有更多的资源,并且觉得自己更容易上手。

我查看了可用于apache,php5等的各种预构建模块。其中许多模块似乎做得比我需要的更多,而且对平台如此陌生,我不相信发生了什么。我认为,确定每种节点类型所需要做的事情对我来说将变得更加简单。

我通过提供团队的本地开发环境(vargrant +虚拟盒子)开始了该过程。对于每个服务/组件,我创建了一个模块:php5,apache2,redis,mysql等。

开发环境稳定/可以正常工作后,我便开始构建质量检查环境。我为Web服务器,redis,清漆等定义了通用节点类型,它们重用了与dev相同的模块。完成此操作后,只需进行最少的更改即可启动和运行。

在阅读和编写配方/模板时,您应该考虑如何重用/通用化。不要硬编码可能在发行版/项目/环境之间更改的路径或用户/组之类的东西。由于您正在寻找一种通用方法,因此我猜想将很难解决* nix分布之间的差异。

最重要的是,保持简单。自动化/标准化环境中最重要/最耗时的部分。迭代,发展。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.