Deployment 如何确保应用程序结构安装在Windows Puppet代理上

Deployment 如何确保应用程序结构安装在Windows Puppet代理上,deployment,puppet,appfabric,Deployment,Puppet,Appfabric,我正在尝试在Windows Puppet代理上设置应用程序结构。我有以下配置: Linux傀儡主机(CentOS 6.5) Windows Puppet代理(Windows Server 2008 R2) 傀儡版本3.8.2 我使用以下清单来确保安装了App Fabric: #这是appfabric模块的init.pp清单文件 类appfabric{ #TODO:从Hiera获取安装路径 $setup\u base\u directory='D:/Setups/' $setup\u path

我正在尝试在Windows Puppet代理上设置应用程序结构。我有以下配置:

  • Linux傀儡主机(CentOS 6.5)
  • Windows Puppet代理(Windows Server 2008 R2)
  • 傀儡版本3.8.2
我使用以下清单来确保安装了App Fabric:

#这是appfabric模块的init.pp清单文件
类appfabric{
#TODO:从Hiera获取安装路径
$setup\u base\u directory='D:/Setups/'
$setup\u path=“${setup\u base\u directory}WindowsServerAppFabricSetup\u x64.exe”
$hotfix_path=“${setup_base_directory}AppFabric1.1-KB2932678-x64-ENU.exe”
#下拉AppFabric的设置
文件{$setup\u路径:
确保=>文件,
source_permissions=>ignore,
source=>'puppet:///modules/appfabric/WindowsServerAppFabricSetup_x64.exe',
}
->
#下拉热修复程序更新5的设置
文件{$hotfix_路径:
确保=>文件,
source_permissions=>ignore,
source=>'puppet:///modules/appfabric/AppFabric1.1-KB2932678-x64-ENU.exe',
}
->
#安装AppFabric 1.1
包{'AppFabric 1.1 for Windows Server':
确保=>存在,
source=>$setup\u路径,
安装选项=>['/i','/SkipUpdates'],
}
->
#安装修补程序KB2932678
程序包{'AppFabric 1.1修补程序安装':
确保=>存在,
source=>$hotfix\u路径,
安装选项=>['/q','/norestart'],
}
->
#启动远程注册表服务
服务{'RemoteRegistryService':
确保=>正在运行,
名称=>'RemoteRegistry',
enable=>true,
}
->
#启动应用程序结构服务
服务{'App Fabric service':
确保=>正在运行,
名称=>'AppFabricCachingService',
enable=>true,
}
}
我面临以下问题:

  • 我无法将
    AppFabricCachingService
    的登录用户更改为
    NT Authority\System
    (本地系统帐户)或任何其他特定用户

  • 当我在Windows puppet agent上运行命令
    puppet agent--test
    时,puppet每次都尝试安装App Fabric。我正在尝试编写清单,以确保在已安装App Fabric的情况下,puppet不应尝试重新安装

  • 我是新的木偶配置管理和任何帮助将是巨大的


    提前感谢。

    对于第二期,请确保软件包的名称(在您的情况下,您指定的是“AppFabric 1.1 For Windows Server”)与Windows“添加\删除程序”菜单中显示的名称匹配。否则每次都会重新安装Puppet

    您可能需要查看文档页面

    根据该页:

    确定程序包显示名称的最简单方法是:

    • 在示例系统上安装该软件包

    • 运行puppet resource package以查看已安装包的列表

    • 找到您刚刚安装的包,并复制puppet resource为其报告的名称


    如果您正在安装的软件未显示在程序列表中,我建议不要使用
    软件包
    。相反,使用
    exec
    安装它,并添加
    creates
    子句,仅在未找到属于该软件的特定位置中的文件时运行安装程序,或
    除非执行自由形式检查(注册表、尝试执行该软件和检查版本等)

    谢谢@MaxVT。在尝试修复此问题时,我知道每次运行命令
    puppet agent--test
    时,都会安装Microsoft AppFabric 1.1 for Windows Server的
    累积更新包5。此更新既不显示在Windows的“添加\删除程序”菜单中,也不显示在命令
    puppet resource package
    的结果中。扩展我的答案以涵盖此情况。如果是更新,则可以通过检查更新修改的文件的大小/哈希来检测安装该更新的事实。