Нужна помощь в исправлении кода стека соли для копирования файла из ведра 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, то смотрите документацию о том, как правильно его настроить.