我见过这样的例子,用于通过ebextensions config创建和运行脚本:
files:
"C:\\scripts\\whoami.ps1":
content: |
date | out-file -append c:\scripts\whoami.log
whoami | out-file -append c:\scripts\whoami.log
hostname | out-file -append c:\scripts\whoami.log
get-module | out-file -append c:\scripts\whoami.log
commands:
whoami:
command: powershell.exe -ExecutionPolicy Bypass -Command "C:\\scripts\\whoami.ps1"
ignoreErrors: false
waitAfterCompletion: 5
没关系,但是我可以在ebextensions中包含一个脚本并引用它而不必在配置中定义其内容吗?
例如我会
myapp
--.ebextensions
----myconfig.config
----myscript.ps1
然后“myconfig.config”会在某处复制“myscript.ps1”并运行它。
我该怎么做?
编辑: 所以我把这个命令放在一个配置中,看看当前的路径是什么:
commands:
whereami:
command: dir > c:\whereami.log
ignoreErrors: false
waitAfterCompletion: 5
它的c:\windows\system32
有意义,因为它在SYSTEM的上下文中运行。
我可以使用指向我上传的beanstalk项目中的脚本的自引用方法/关键字吗?
答案 0 :(得分:1)
对我有用的选项(感谢littleforest)。
在Web部署包中创建一个文件夹结构,并使用 container_commands 引用它:
package/myfolder/myscript.ps1
container_commands:
relativeprogrampath:
command: "myfolder/myscript.ps1"
在父文件夹中创建它并引用它:
示例文件夹结构:
parentfolder/myfolder/myscript.ps1
parentfolder/package/<the web deployment package>
container_commands:
relativeprogrampath:
command: "..\myscript.ps1"
答案 1 :(得分:1)
如果将myscript.ps1
文件放在配置文件旁边的.ebextensions
文件夹中,则可以从这样的容器命令中运行它:
container_commands:
00-myscript:
command: powershell.exe -ExecutionPolicy Bypass -Command ".\\.ebextensions\\myscript.ps1"
waitAfterCompletion: 0