注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL 在 chefspec 中不存在错误
Posted
技术标签:
【中文标题】注册表项 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL 在 chefspec 中不存在错误【英文标题】:Registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL does not exist error in chefspec注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL 在 chefspec 中不存在错误 【发布时间】:2016-02-17 12:55:19 【问题描述】:我的食谱:
instance_names.each do |instance_name|
instance_name_service=instance_name.split('.')[1]
instance_name_service = instance_name_service == 'MSSQLSERVER'? 'MSSQLSERVER' : "MSSQL$#instance_name_service"
path="HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\#instance_name\\MSSQLServer"
registry_key path do
architecture :"#var_architecture"
values [
:name => 'AuditLevel',
:type => :dword,
:data => 3
]
action :create
not_if ( false )
end
end
在厨师:
require_relative '../../spec_helper'
require 'chefspec'
describe 'regcheck::default' do
let(:chef_run) ChefSpec::SoloRunner.new.converge(described_recipe)
it 'recipe loads all the dependency files and converges successfully' do
chef_run
end
context 'regcheck' do
it 'creates or updates audit level settings for sql instances' do
expect(chef_run).to create_registry_key('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQLINSTANCE1\MSSQLServer')
end
end
end
我收到了这个错误:
Chefspec 中的注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL 不存在错误
【问题讨论】:
【参考方案1】:您需要将 ChefSpec 设置为模拟 Windows 平台以使 registry_key
资源工作。
let(:chef_run) ChefSpec::SoloRunner.new(platform: 'windows', version: '2012R2').converge(described_recipe)
【讨论】:
感谢 coderanger,但添加后我收到此错误。 let(:chef_run) ChefSpec::SoloRunner.new(platform: 'windows', version: '2012R2').converge( describe_recipe) 。我如何在 chefspec 中模拟注册表项以上是关于注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL 在 chefspec 中不存在错误的主要内容,如果未能解决你的问题,请参考以下文章