有没有办法从 Chef recipe 返回而不引发异常?
说我有一个很长的食谱。我想在它的开头添加一个 ruby 块,它将检查某些条件(例如目录是否存在)并停止处理此配方(但继续执行 run_list 的其余部分),如果条件成功则不会引发异常。
条件执行 (only_if/not_if) 不能解决问题,因为我必须将条件添加到配方中的每个资源调用中,而它们可能有很多。
Opscode 的 wiki 中有一条评论,评论者询问相同但没有答案。
我获得了一个 Microsoft 修补程序,我需要在整个域中部署该修补程序。我想使用 GPO,因为用户没有管理员权限并且 Office 不是从管理点部署的。它是在个人基础上随机部署的。我尝试将 exe 转换为 msi,但是当我运行 msi 时,它只是提取了 MSP 文件。
我是否可以通过 GPO 在不同版本的 Office 2003 中部署 MSP 或 EXE?
我拿了一份 Pro11.msi 并尝试运行 MSIexec.exe /a "[outlook.msi path]" /P "[Outlook.exe path]" 并且与 MSP 文件相同。两次我都收到一条错误消息“无法打开安装包。请联系应用程序供应商以验证这是一个有效的 Windows 安装程序包”。
另一个解决方案是否可以通过 WSUS 进行部署?
我们希望我们的部署过程直接从我们的 git 存储库中提取,但只有在签名时才激活新的更改(通过 git
tag -s在使用 GPG 签名)签名。我发现很少有使用 GPG 验证 git 标签的工作流示例,所以我不确定是否有此类事情的“最佳实践”。
到目前为止,我们所拥有的看起来是这样的:
# discard erroneous local changes
git reset --hard HEAD
# get changes
git fetch
start=$(git rev-parse FETCH_HEAD)
# get new tags
git fetch --tags
# find most recent release tag
tag=$(git describe --abbrev=0 --match "release-*" $start)
if git tag -v $tag; then
git checkout $tag
...do stuff...
fi
Run Code Online (Sandbox Code Playgroud)
这有意义吗?特别是,为了避免在部署过程中进行错误的本地更改git reset --hard
HEAD,这样做是正确的吗?此外,记住FETCH_HEAD似乎是必要的,其他明智的标签随后HEAD不会出现在git describe. 有没有另一种方法可以做到这一点?
或者,如果您有一个使用签名标签进行验证的文档化部署工作流程,我会对指向它的链接感兴趣。
目前,我正在使用以下手动过程将我的 PHP 网站从登台部署到生产:
整个过程非常复杂,大约需要 5-10 分钟,我每次对网站进行更改时都必须这样做,因此它变成了一件苦差事。
现在有没有办法使用一些脚本工具来自动化这个过程?或者是否有一个很好的部署工具,人们可以使用它来完成所有这些工作?我的临时和生产机器是基于 Ubuntu 12.04 服务器的,所以我可能可以使用 bash 脚本来完成一些工作。
我可以看到到目前为止可以进行的一些改进是:
我工作过的一家公司使用Fabric 命令行工具来自动化部署和做这种事情。但是,这是一个不错的选择还是有更好的工具?
我是 dev-ops 方面的新手,我一直在努力将 Python 应用程序打包到 RPM(使用 python setup.py bdist_rpm)通过 Yum 部署到 centos VM。Chef 用于管理虚拟机。作为持续部署过程的一部分,Python 应用程序将在 virtualenv 中运行。
RPM 是否应该是智能的和自包含的,执行诸如创建/启动 virtualenv 环境、pip 安装所需的依赖项,然后最终配置一个 init 进程(在这种情况下为 virtualenv 启动 uwsgi REST 服务器进程)等操作?
或者,Chef recipe 是否应该管理构建 virtualenv 和 pip 安装依赖项,而 RPM 本身做一个简单的“python setup.py install”来将我的 Python 模块加载到 virtualenv 的 pythonX.Y/site-packages 文件夹中?
对“yum install/reinstall”调用(比如通过自动化过程)的后续操作适用于任何一种方法,但前者需要更复杂的 RPM,这可能不是“最佳实践”,对吗?前者确实允许独立安装,以后可以更干净地删除,并且更好地分离开发人员(Python)和开发操作员(厨师)之间的问题。请就“通常”所做的事情提出建议。
我正在学习 Salt Stack 以将我的 Python 应用程序部署到 AWS 上的各个生产阶段。现在我在一个大存储库中拥有我所有的源代码和盐状态。
将 minion 状态文件保存在我的源中是否有任何实际或安全考虑?或者我应该把它们分开,为什么?
如果我确实将我的状态文件移动到一个单独的 salt-states 存储库中,我应该在哪里保存我的master和minion配置文件,或者它们不属于版本控制?
好吧,我已经花了一个上午的时间来解决一个非常艰难的问题。
PC 是带有 SP1 和所有 MS 补丁的 Win7 64 位机 常见错误 每个人都熟悉:从策略软件安装中分配应用程序 Adobe Reader X MUI 失败。错误是:%%1274
未能将更改应用到软件安装设置。通过组策略为该用户部署的软件的安装已延迟到下一次登录,因为必须在用户登录之前应用更改。错误是:%%1274
我已经在某些 WiFi 卡上看到过这种情况,但是这台计算机使用的是以太网。
有没有办法查看 MSIExec 日志以确切了解发生了什么?
顺便说一句,虽然所有旧的组策略设置都已应用,但我最近添加的一些 IE10 设置也拒绝应用。
我必须为一个将运行 IIS 和 MSMQ 的项目安装几个新的应用程序服务器 (2012R2)。我需要编写完整安装的脚本,因此我需要能够更改 IIS 应用程序池的权限。我计划为此使用 MSA,因为我不必在部署脚本中处理密码。
我的问题是“部署解决方案代理”在机器上作为本地系统运行,它无权更新 AD 中的所需设置以在本地机器上“安装”MSA。
有没有人让这个工作?我假设我可以委派特定计算机帐户的权限,但这也可能会变得混乱。
windows active-directory deployment windows-server-2012-r2 managed-service-accounts
我目前正在工作的一个小型测试农场工作,尤其是在运行测试后重置机器的部分让我有些头疼。
在我们决定获得几台具有不同硬件配置的专用测试机器之前,计划是在一台使用 Hyper-V 的机器上运行测试,因此之后的清理只是删除实际 VM 的问题。
不幸的是,重置整台机器在时间上要贵一些,而且如果你经常这样做的话,我猜多年来硬件也会磨损。
我相信仅仅卸载已安装的软件是不够的,因为系统上可能会留下一些文件/可再发行文件,这使得后续的测试运行不太有用。
我还相信在测试机器上运行 Hyper-V 虚拟机会对测试结果产生不利影响,尤其是在较弱的硬件配置上。
我真的很想知道是否有一些现有的解决方案可以解决这个问题,以及最聪明的方法是什么。
我需要将我的 CF 模板(GraphQL 架构、Lambda 源等)的一些文件存储到 S3 存储桶中,该存储桶也(希望)在同一模板中定义,因为这似乎是直接删除内容之外的唯一方法进入模板来做。我也在尝试提前考虑 CI/CD,如果检查这些文件并且 CI/CD 工具适当地移动它们会很好。
有没有办法将文件从模板复制到 S3?大多数人如何使用 CI/CD 做到这一点?
deployment amazon-web-services continuous-integration amazon-cloudformation aws-cli
deployment ×10
windows ×3
chef ×2
group-policy ×2
automation ×1
aws-cli ×1
fabric ×1
git ×1
linux ×1
python ×1
rpm ×1
rsync ×1
saltstack ×1
ssh ×1