Нужна помощь в исправлении кода стека соли для копирования файла из ведра s3

Я написал этот код, чтобы извлечь файл из ведра 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

1 ответ

Есть несколько изменений, которые я могу предложить посмотреть на ваш код.

Вы сохраняете файл с S3 как /opt/agent_installer.shс , будем считать, что с этим проблем нет.

Теперь первое, что нам, очевидно, нужно изменить в последующих задачах, это использовать this. Нет /opt/install.sh. Также можно использовать один раз для загрузки файла, смены владельца и разрешений. Таким образом, ваш 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состояние, которое можно использовать непосредственно с URL-адресом S3 как source, поэтому нет необходимости иметь file.managedвообще.

Итак, всего 1 состояние, как показано ниже, должно быть достаточно:

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

Если у вас есть проблема с загрузкой файла с S3, то смотрите документацию о том, как правильно его настроить.

Другие вопросы по тегам