【发布时间】:2016-04-15 04:23:36
【问题描述】:
在 AWS 应用程序代码部署的安装后步骤中,我想安装一些东西作为 Windows 本地服务。我正在使用 nssm 来执行此操作,但有时我需要使用本地管理员帐户安装该服务。 不幸的是,我找不到在环境变量中获取 Windows 密码或以自动方式使用命令行的方法。有什么想法吗?
谢谢! 伊曼纽尔
【问题讨论】:
标签: windows amazon-web-services amazon-ec2 aws-code-deploy
在 AWS 应用程序代码部署的安装后步骤中,我想安装一些东西作为 Windows 本地服务。我正在使用 nssm 来执行此操作,但有时我需要使用本地管理员帐户安装该服务。 不幸的是,我找不到在环境变量中获取 Windows 密码或以自动方式使用命令行的方法。有什么想法吗?
谢谢! 伊曼纽尔
【问题讨论】:
标签: windows amazon-web-services amazon-ec2 aws-code-deploy
我们通过保护 S3 上的属性文件,然后在实例启动时或稍后在 CodeDeploy 生命周期挂钩中下载和解析该文件,解决了保护 Windows 和相关应用程序凭据以用于安装/自动化过程的问题.
例如在名为 s3://credentials-example-com/example.properties 的 S3 存储桶中:
WindowsAdminPassword=testing
您可以根据需要下载解析它。在此示例中,我将所有值解析为环境变量:
@echo off
rem Get credentials file from S3 and parse
echo Get credentials
if not exist c:\temp mkdir c:\temp
aws s3 cp s3://credentials-example-com/example.properties c:\temp
@echo off
FOR /F "tokens=1,2 delims==" %%G IN (c:\temp\example.properties) DO (
echo.%%G|findstr "#" >nul 2>&1
if errorlevel 1 (
echo Setting %%G
setx /m example_%%G %%H
set example_%%G=%%H
)
)
echo Done
如果您使用 SETX 将 Windows 管理员密码解析到环境中,则可能存在安全隐患 - 但出于您的目的,如果您使用简单的 SET,则该变量将仅与现有 shell 保持一致。
【讨论】: