在AWS应用程序代码部署的afterinstall步骤中,我想安装一些Windows本地服务。我使用nssm这样做,但在某些时候我需要使用本地管理员帐户安装该服务。 不幸的是,我找不到在环境变量中获取Windows密码或以自动方式使用命令行的方法。有什么想法吗?
谢谢! 灵光
答案 0 :(得分:1)
我们通过在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。< / p>