问题标签 [dsc]
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.
powershell - PowerShell DSC 拉取服务器返回 HTTP 503 服务不可用
我正在使用 PowerShell 5.0 9 月预览版在 VMware Workstation 上运行的 Windows Server 2012 R2 虚拟机上配置 PowerShell Desired State Configuration Pull 服务器。为了执行 DSC 拉取服务器的配置,我使用了从 Microsoft PowerShell MSDN 博客中提取的代码片段,它利用了xPSDesiredStateConfiguration模块的xDscWebServiceDSC 资源。
当我尝试测试 DSC 拉服务器的 OData 端点时,我收到一条 HTTP 503:服务不可用消息。关于如何调试和解决这个问题的任何想法?

powershell - 如何根据先前执行的资源有条件地执行 Powershell DSC 中的资源?
假设我有两个这样的块:
我构建了一个执行类似操作的测试,但无论 File 资源的测试输出如何,似乎 Service 资源都会被执行 - 也就是说,如果它实际上对文件做了任何事情。
除了人为的例子,我怎样才能让脚本资源只有在文件资源确实做了一些事情的情况下才执行?
我的用例是检查远程位置的文件是否已更改,如果是,请将其复制到本地计算机,然后重新启动服务。如果文件没有更改,我显然不想重新启动服务,但我看不到一个好的幂等方法,因为正在使用哈希测试文件 - 我必须拥有我的服务重新启动步骤执行相同的文件哈希检查。
powershell - PowerShell DSC 的分析/用户界面在哪里?
即使对 Powershell DSC 使用拉模式,似乎也没有一种简单的方法来可视化哪些机器处于哪些状态以及哪些机器正在将自己纠正到所需状态(即仍在安装东西/重新启动)。
我觉得我错过了什么。某些网站是否旨在超越顶部并提供这种可见性?请告诉我有人已经填补了这个空白 - 现在已经一年多了。我们可以从这一点开始建造,但我希望这个空间里已经有东西了?
我看过guardrail,虽然它看起来是一个很酷的产品,但它并不关注部署的编排方面。
这是我可以提出的最具体的问题——我知道很多其他人都渴望听到你对此的回答。请不要立即将其标记为模糊或主观:-)
powershell - Powershell DSC:无法加载模块 xPSDesiredStateConfiguration
我正在阅读 powershell.org 的 DSC 书籍,并尝试使用书中指定的配置代码设置拉取服务器。
当我运行配置脚本时,powershell 报告它无法加载 xPSDesiredStateConfiguration 模块。
Import-DSCResource -ModuleName xPSDesiredStateConfiguration 无法加载模块“xPSDesiredStateConfiguration”:找不到模块。
我确认我已经安装了 DSC 资源工具包,并且在我执行 Get-DSCResource 命令时会列出该模块。谁能告诉我我可能做错了什么?
另外,我使用的是 64 位 Windows 7 并安装了 KB2819745 以将 powershell 升级到版本 4。
powershell - 以另一个用户身份运行“Invoke-Expression”语句
我有一个 PowerShell 脚本/函数,它需要很少的参数并运行它。
现在我想以另一个用户的身份运行它。
Invoke-Expression没有credential促进这一点的固有参数。另一方面Invoke-Command,有一个Credential( Get-Credential) 参数,便于作为另一个用户运行。我尝试替换Invoke-Expression为Invoke-Command没有运气。
我如何解决这个问题以作为另一个用户运行上述表达式?
脚本资源的结构。
ScriptPS:所有这些都发生在所需状态配置中的用户 SetScript 中。
powershell - 使用 Powershell /DSC 进行 MSI 升级
我能够成功卸载 (Ensure = "Absent") 或安装产品 (Ensure = "Present")。但是,如果我创建同一产品的新版本,它总是会返回相同的消息 - “已安装”。
这是否意味着升级的唯一方法是卸载/安装?
powershell - 为什么我不能通过 Powershell DSC 在无人参与模式下配置 TFS 构建服务?
使用以下 DSC 配置(仅资源部分的片段,剪掉 SO 的序言、诊断和 Start-DscConfiguration 部分):
我在无人值守模式下配置 TFS 构建服务的脚本如下(出于 SO 的目的,我已取出日志记录、错误检查和诊断):
只要我在本地登录,我就可以在我的任何构建 Windows 2012 R2 代理上成功运行脚本 Configure-TfsBuildService.ps1。
除了 TFS 构建服务配置块之外,我还可以针对我的所有构建代理成功运行我的 DSC 配置。
但是,当我尝试运行我的 TFS 构建服务配置块时,我的 DSC 配置“成功”但是服务的无人参与配置失败并显示以下日志消息:
由于我使用自己的凭据运行 DSC 配置,并且我是 TFS 服务的项目集合管理员,因此权限没有问题。我已经通过在代理机器上本地成功运行配置脚本并在那里成功证明了这一点。
我意识到 PowerShell 不允许双跳权限,但是由于 DSC 在所涉及的代理上执行,因此不应该存在双跳凭据问题,并且权限将被允许中继到 TFS 服务进行注册.
也许我错过了一些更琐碎的事情?
编辑:TFS 2012/2013 无人值守安装的描述可在此处找到:http: //blogs.msdn.com/b/visualstudioalm/archive/2012/10/12/unattended-installation-of-team-foundation-server- 2012.aspx
ms-release-management - 如何在 Release Management 中处理与目标机器无关的操作?
我们目前使用 Visual Studio 发布管理工具来管理代码的发布阶段。目前,我们正在使用基于操作的旧模板,这需要在每台目标机器上安装专用的部署代理。未来,我们计划使用 Desired State Configuration 方法,但我偶然发现了一个我现在无法自己回答的问题。我怀疑这也适用于 DSC 管道,但我现在专注于基于动作/组件的管道。
在 RM 中,您只能将动作和组件放置在机器范围内。您有安装了部署代理的服务器,可以在管道中选择,它们是工作流中的基本实体。一切都在这些机器范围内。
但是我们现在有一个发布要求,它本身不是安装。我们想要自动化的操作之一是在 google play 中发布一个 android apk,但这不依赖于任何特定的机器,因为它不安装任何东西。它需要 apk 本身,它位于我们的放置文件夹中,但不需要将其复制到我们的任何机器上。
由于 RM 不允许将操作和组件放置在机器范围之外,那么在工具内运行独立于机器的发布操作的策略是什么?我曾考虑将部署代理安装在与 RM 服务器相同的机器上,并使用另一个机器范围“localhost”来执行此操作,但这似乎很复杂。
我想要的与 TFS Build 的工作方式非常相似。当构建工作流启动时,它在构建控制器上运行,您可以在该范围内放置任何活动。然后,在工作流的某个时刻,它开始在构建代理中运行任务。RM是否有类似于“在控制器本身上运行”的东西?
deployment - 如何使用 PowerShell DSC 将生成输出文件传输到 Azure VM?
我一直在玩弄 DSC,我认为它是一个很棒的平台。我做了一些测试来自动部署我们的 TFS 构建输出并自动安装 Web 应用程序和配置环境。
这相对容易,因为我可以使用内部网络上的文件共享将我的放置文件夹路径传递给 DSC 脚本,并使用配置中的相对路径来选择我们的每个模块。
我现在的问题是如何将其扩展到 Azure 虚拟机。我们希望创建这些脚本以自动部署到托管在 Azure 上的 QA 和生产服务器。由于它们不在我们的域中,我不能再使用该File资源来传输文件,但同时我想要完全相同的功能:我想以某种方式将配置指向我们的构建输出文件夹并复制文件从那里到虚拟机。
有没有什么方法可以从这些远程计算机上运行的配置中轻松复制放置文件夹文件,而无需共享相同的网络和域?我成功地将虚拟机配置为使用证书通过 https 接受 DSC 调用,我刚刚发现Azure PowerShell cmdlet 使您能够将配置上传到 Azure 存储并在虚拟机中自动运行(这似乎比我做的要好得多) 但我仍然不知道在运行配置脚本时如何从虚拟机内部访问我的构建输出。
powershell - 新的发布模板不支持自定义组件配置变量吗?
发布管理始终具有“组件”的概念,它们是可以在管道中独立配置的部署单元。每个组件都可以有许多特定于阶段的配置变量,可以在组件本身中进行配置,如下所示:

然后,在模板实例中,这些可以根据阶段设置为不同的值:

但是在使用 PowerShell DSC 或 Chef 的新 vNext 模板所需的 vNext 组件上,这些配置变量不再存在:

RM 中不再支持特定于阶段的配置变量吗?我现在负责在配置脚本中使用 PowerShell 自己设置这些变量吗?