0

我编写了这段代码来从 S3 存储桶中提取文件,更改文件权限并执行代码。但是,它对我不起作用。

download_file_from_s3:
  file.managed:
    - name: /opt/agent_installer.sh
    - source: s3://bucket_name/install.sh

change_file_permission:
  file.managed:
    - source: /opt/install.sh
    - user: root
    - group: root
    - mode: 0744

run_rapid7_script:
  cmd.run:
    - name: /opt/install.sh
4

1 回答 1

0

我可以建议您查看您的代码进行一些更改。

您将 S3 中的文件保存为/opt/agent_installer.shwith file.managed,让我们认为这没有问题。

现在,我们显然需要在后续任务中更改的第一件事就是使用它。不是/opt/install.sh。也file.managed可以使用一次来下载文件、更改所有权和权限。所以你的 SLS 看起来像:

download_file_from_s3:
  file.managed:
    - name: /opt/agent_installer.sh
    - source: s3://bucket_name/install.sh
    - user: root
    - group: root
    - mode: 0744

run_rapid7_script:
  cmd.run:
    - name: /opt/agent_installer.sh

还有一种cmd.script状态可以直接和 S3 URL as 一起使用source,所以完全不需要file.managed

因此,只需像下面这样的 1 个状态就足够了:

run_rapid7_script:
  cmd.script:
    - source: s3://bucket_name/install.sh

如果您确实在从 S3 下载文件时遇到问题,请参阅有关如何正确配置它的文档。

于 2022-01-26T17:35:57.050 回答