CloudFormation Init命令如何统一设置cwd?默认工作目录是什么?
如何在AWS CloudFormation Init中统一设置命令的工作目录?
当然有办法不用逐个命令指定cwd!CloudFormation Init支持在配置块的顶层统一设置工作目录,这样该块下的所有命令都会自动继承这个路径,省得你重复写。
统一设置的具体方法
你只需要把cwd参数移到和commands同级的位置(也就是install_packages这个配置节点下),而不是每个命令里单独加。修改后的代码大概是这样:
"AWS::CloudFormation::Init": { "configSets": { "default": [ "install_packages" ] }, "install_packages": { "cwd": "/home/ubuntu", "commands": { "01": { "command": "sudo -H pip3 install --upgrade pip" }, "02": { "command": "sudo -H pip3 install virtualenv" }, // 剩下的18条命令都无需再单独指定cwd ... } } }
如果之后有个别命令需要用不同的工作目录,直接在那个命令里单独设置cwd就好,它会覆盖顶层的统一配置,非常灵活。
未设置时的默认工作目录
要是完全不指定cwd,CloudFormation Init执行命令时的默认工作目录是根目录/。不过这个默认路径通常不是我们想要的,毕竟根目录下的权限限制和环境变量都可能和你预期的不一致,所以还是建议统一设置或者按需指定更靠谱。
内容的提问来源于stack exchange,提问作者apol
相关产品推荐
相关产品推荐

