- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 Chef 在 WinServer 2012 上安装 .NET 3.5 框架。
然而,ms_dotnet35 说明书不支持 WinServer 2012。
所以我复制了它在说明书中用于安装的代码 ( from here )(请原谅格式):
if platform?('windows')
unless File.exists?('C:/Windows/Microsoft.NET/Framework/v3.5')
windows_feature 'NetFx3' do
action :install
end
end
else Chef::Log.warn('Microsoft Framework .NET 3.5 can only be installed on the Windows platform.')
end
但是,有一个障碍。当 Chef 运行时,“windows_feature”传递以下命令行:
C:\Windows\sysnative\dism.exe /online /enable-feature /featurename:NetFx3 /norestart
事实证明,在 WinServer 2012 上,您需要传递“/all”参数,否则您将收到“可能未启用所需的父功能”。异常(from here)
现在我正在查看 Windows 说明书 (from here) 中“windows_feature”的代码:
def install_feature(name)
# return code 3010 is valid, it indicates a reboot is required
shell_out!("#{dism} /online /enable-feature /featurename:#{@new_resource.feature_name} /norestart", {:returns => [0,42,127,3010]})
end
..我们在哪里找到对 DISM 的实际调用。
我推荐的扩展方法是什么?我是否应该只复制 shell_out 调用并破解 DISM 行以使其工作?
我是 Chef 新手,希望遵循最佳实践/正确范例。我不明白为什么 windows_feature 的当前实现不提供输入可选参数(如“/all”)的方法。
最佳答案
我最终在一本新 Recipe 中创建了一个新 Recipe 来处理在 Windows Server 2012 上安装 .Net Framework 3.5。
我能够通过下载 eval ISO from here 找到所需的文件(因为我没有安装盘,我在 Azure 上) .
安装 ISO 后,我压缩了整个 ..\Sources\sxs 文件夹。
我的一个执行命令是这样的:
execute "install_net35" do
command "C:/Windows/sysnative/dism.exe /online /enable-feature /all /featurename:NetFx3 /norestart /limitaccess /source:C:/tempdirectory/sxs"
...其中“C:/tempdirectory/sxs”是解压缩的文件。
我还将执行包装在 Windows Server 2012 的检查中:
if win_version.windows_server_2012? || win_version.windows_server_2012_r2?
..并检查框架是否已经安装(以确保幂等性):
unless File.exists?('C:/Windows/Microsoft.NET/Framework/v3.5')
关于windows - 扩展 Chef Windows Cookbook...DISM 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23143520/
我正在尝试为服务器提供依赖于旧版本 mysql cookbook (5.6.3) 的 Chef 项目。由于这个特定版本与 Ubuntu 14.04 之后的任何更新版本都不兼容,我尝试更新到最新版本 (
我正在为厨师学习曲线而苦苦挣扎。这两个命令有什么区别,为什么有两个? knife cookbook :knife cookbook 子命令用于与位于 Chef 服务器或本地 Chef-repo 上的
我正在接受以下 Chef 服务器培训: 学习 Chef>教程>管理节点>Red Hat Enterprise Linux>Hosted Chef>将说明书上传到 Chef 服务器 教程刚刚让我使用“k
我打算使用 https://github.com/opscode-cookbooks/mysql但是当我运行 vagrant provision 时 找不到菜谱 mysql 的 recipe ruby
我正在写一本 Recipe ,在同一台主机上安装多个 tomcat 实例。我为多个实例创建了一个散列,这个散列将包含 shutdown_port 和 startup_port 的键值对。例如 - in
我已经搞了两天了,还是没明白。基本上,我从头开始使用 JQuery Cookbook 模式。我的问题是表单 html 页面加载正常,但代码无法识别我的提交按钮。这是代码的相关部分: 单独的 HTML:
本文实例讲述了Python在字符串的开头或结尾处进行文本匹配操作。分享给大家供大家参考,具体如下: 问题:在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名、URL协议类型等;
本文实例讲述了Python将多个映射合并为单个映射的方法。分享给大家供大家参考,具体如下: 问题:在逻辑上将多个字典或映射合并为一个单独的映射结构,以此执行某些特定的操作,比如查找值或者检查键是否
本文实例讲述了Python针对任意多的分隔符拆分字符串操作。分享给大家供大家参考,具体如下: 问题:将分隔符(以及分隔符之间的空格)不一致的字符串拆分为不同的字段; 解决方案:使用更为灵活的re
本文实例讲述了Python从字典中提取子集的方法。分享给大家供大家参考,具体如下: 问题:想创建一个字典,其本身是另一个字典的子集 解决方案:利用字典推导式(dictionary compreh
本文实例讲述了Python将名称映射到序列元素中的方法。分享给大家供大家参考,具体如下: 问题:希望通过名称来访问元素,减少结构中对位置的依赖性 解决方案:使用命名元组collections.n
本文实例讲述了Python同时对数据做转换和换算处理操作。分享给大家供大家参考,具体如下: 问题:我们需要调用一个换算函数(例如sum()、min()、max()),但是首先需对数据做转换或者筛选
本文实例讲述了Python找出序列中出现次数最多的元素。分享给大家供大家参考,具体如下: 问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Counter
本文实例讲述了Python通过公共键对字典列表排序算法。分享给大家供大家参考,具体如下: 问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter
本文实例讲述了Python实现对不原生支持比较操作的对象排序算法。分享给大家供大家参考,具体如下: 问题:想在同一个类的实例之间做排序,但是它们并不原生支持比较操作。 解决方案:使用内建的sor
本文实例讲述了Python根据字段将记录分组操作。分享给大家供大家参考,具体如下: 问题:想根据字典或者对象实例的某个特定的字典(比如日期)来分组迭代数据 解决方案:itertools.grou
本文实例讲述了Python筛选及提取序列中元素的方法。分享给大家供大家参考,具体如下: 问题:提取出序列中的值或者根据某些标准对序列做删减 解决方案:列表推导式、生成器表达式、使用内建的filt
本文实例讲述了Python从序列中移除重复项且保持元素间顺序不变的方法。分享给大家供大家参考,具体如下: 问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1、如果序列中
本文实例讲述了Python对切片命名清除索引的方法。分享给大家供大家参考,具体如下: 问题:如何清理掉到处都是硬编码的切片索引 解决方案:对切片命名 假设有一些代码用来从字符串的固定位置中取出
我已经在这本 Recipe 上苦苦挣扎了一段时间了。 我正在尝试将包括 Azure SDK 在内的许多资源安装到 Windows Server 2012 R2 实例上。 最初我在堆栈跟踪中收到以下错误
我是一名优秀的程序员,十分优秀!