问题标签 [chef-infra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 用于简单 LAMP 开发的 Chef/Fabric/Puppet 的替代品?
我终于致力于真正正确地学习软件设计过程,以提高我的技能并发展我的业务。这意味着采用版本控制 (git),设置开发-登台-生产环境,并尽可能保持这些环境的配置相似。
我真的赶上了最后一步,即选择一种解决方案来自动化和同步我的服务器设置。我研究过 Chef、Puppet 和 Fabric,但就我的目的而言,它们似乎都过于复杂。我是:
- 在单个服务器上开发小型 Web 应用程序
- 将在具有中级 PHP 和 UNIX 技能的 LAMP 环境中进行开发
- 不会大量修改环境变量(主要是 php.ini、apache 配置)
对于比掌握复杂的 Chef 环境或学习 Python 以使用 Fabric 更容易实施的解决方案的任何建议,我将不胜感激。如有必要,我可以这样做,但鉴于我非常简单的需求,我希望有一个更基本/优雅的解决方案。
ruby-on-rails - 厨师部署?
我有兴趣从 Capistrano 切换到 Chef,但是在将所有部分放在一起时遇到了一些问题。
我已经关注了http://wiki.opscode.com/display/chef/Quick+Start并且能够使用knife
. 至于代码部署,看起来好像我想做http://wiki.opscode.com/display/chef/Deploy+Resource中的内容,唯一的问题是,该页面上没有提到它在哪个目录中/file 部署/to/path
代码块应该去。
我遇到的另一个问题是了解如何在设置服务器后部署代码更改。也许我只是习惯了我当前的工作流程(git push && cap deploy
),但我能说的最好的是,在我提交我的更改后,我应该 ssh 到服务器并运行sudo chef-client
?感觉有些不对劲。是否没有等效的上限,即chef deploy
?
最后(也许这有点困难),我希望将多个 Rails 应用程序部署到单个服务器。在每个应用程序的存储库中保留某种厨师配置文件来描述其部署的细节似乎是谨慎的,但我不确定这将如何与厨师存储库/托管服务器进行交互。每个应用程序都是一个角色吗?从我对事物工作方式的理解来看,我对“主厨客户端”会在运行时尝试部署所有应用程序的想法也有点不安。我git push && cap deploy
确定我正在部署什么。而其他一些应用程序存储库可能不处于可部署状态。有没有办法在这个设置中只部署一个应用程序?
ruby-on-rails - 如何使用厨师的部署资源部署更改?
我有另一个关于厨师部署的问题?范围可能有点太宽泛了。所以我会在这里问一个更具体的问题:
设置服务器后,如何使用厨师的部署资源部署代码更改。也许我只是习惯了我当前的 capistrano 工作流程(“git push && cap deploy”)......但我能说的最好的是,在我提交我的更改后,我应该 ssh 到服务器并运行“sudo chef -客户”?感觉有些不对劲。是否没有等效的上限,即“厨师部署”?
ruby - 如何设置对在 Chef 加载食谱时不存在的 Ruby 库的依赖关系?
设想:
- 配方1:下载档案,提取它们。提供一个 CLI,它也定义了一个 Ruby 库。
- Recipe2:利用上述库中的 Ruby API。
在 recipe1/recipes/default.rb 中:
在 recipe2/recipes/default.rb 中:
但是,在加载食谱时,Chef 会宣布:
在所有配方都在运行过程中后,如何声明/启用 Ruby 库?
git - 在 vagrant+chef 设置中使用带有密码的 ssh 密钥
我有一个使用 vagrant 运行的虚拟机,我正在使用 Chef 配置它。其中一个步骤涉及克隆 git repo,但我的 ssh 密钥(在我的主机上)上有一个密码。
当我运行时vagrant up
,该过程在 git clone 步骤失败并出现以下错误:(
Permission denied (publickey). fatal: The remote end hung up unexpectedly
密钥已添加到主机上,带有密码)
我尝试通过执行以下操作通过 ssh 代理转发解决此问题:
添加config.ssh.forward_agent = true
到vm 上的已VagrantFile
添加Defaults env_keep = "SSH_AUTH_SOCK
到/etc/sudoers
现在,vagrant up
当它到达 git clone 部分时仍然失败,但如果我vagrant provision
在那之后运行,它就会通过。我猜这是因为 ssh 配置是在启动 vm 并且没有重新加载时设置的
在调整这两个设置后,我尝试重新加载 ssh,但这并没有帮助。
知道如何解决这个问题吗?
谢谢。
ruby - 厨师外壳脚本未运行
我在Scalarium上使用 Chef来下载代理并在其上运行各种命令。我正在尝试在配方中编写一个 shell 脚本来执行此操作。
当我在 Scalarium 中运行配方时,没有发生错误,但命令也没有运行。命令本身没有错误,因为我已经在我的计算机上运行了它们。
食谱肯定是读过的,因为厨师日志包含Processing file[/etc/profile.d/blah.sh] on blah.localdomain
.
我以前从未使用过 Chef,我需要做其他事情来告诉它执行 shell 脚本吗?
ruby - Chef shell脚本交互
我在 Chef 中有一个配方,它使用execute
命令连接到存储库并安装守护程序,然后配置并启动它。
运行时apt-get install
,它需要用户确认(Y/N 输入)在确定需要多少空间后才能继续。这如何在 Chef 中以编程方式完成?
amazon-ec2 - 使用 Chef 卸载软件包
我一直在使用 Chef 来管理我们的服务器。
我的角色/app.rb 看起来像这样:
现在我想从机器中删除 nginx 包。如果我删除 run_list 中的 nginx 接收方,它会从节点中删除 nginx 吗?如果不是,请告诉我在节点上进行变更管理的最佳策略是什么。
ruby - ubuntu 10.04 的 chef-solo 引导程序
上周我一直在和 chef-solo 一起玩,我有很多问题。
我想使用 ruby 1.9.2-p290 和 Ubuntu 10.04,所以看起来我必须使用 rvm 之类的东西。
我应该将 RVM 与 chef-solo 一起使用吗?
如果我使用 RVM,我应该“系统范围”还是“每个用户”安装它?
或者我应该改用 Ubuntu 11.04 服务器并通过 apt-get 使用 ruby?
ruby - 如何在厨师中定义一个函数/动作/...返回一个可以在例如 not_if 中使用的值
我现在正在学习厨师,我正在尝试以一种重复配置不会破坏任何东西的方式编写所有内容。
我有一个部署在机器上的服务器,然后加载了一些代码。下次配置时,我想先测试代码是否已经加载。我想以一种通用的方式来做,因为我在不同的食谱中使用它。我的想法是定义一个函数/定义/等。我可以调用测试条件并返回一个值的函数。我的希望是我可以在 not_if 子句中使用这个函数/... 来执行其他操作。
有没有办法在厨师中通过定义/动作/提供者/......或者我需要在某处添加一些红宝石的东西?