Я использую простое состояние соли для отправки (file.managed) и выполнения (cmd.run) сценария оболочки для миньона / цели. Независимо от того, какое выходное или возвращаемое значение посылает сценарий оболочки, солевой мастер интерпретирует результат как успешный.
Я пытался использовать cmd.script, но получаю сообщение об ошибке отказа в разрешении для временной версии файла в / tmp. Файловая система не монтируется с помощью noexec, поэтому мы не можем понять, почему она не будет работать.
Для cmd.run вывод stdout в выводе задания показывает ошибочный код возврата и сообщение, но Солт все еще говорит Успех. Локальный запуск сценария на миньоне сообщает ожидаемый код возврата / выхода.
Я попытался добавить stateful: True в блок cmd.run и отформатировал пары ключ-значение в конце сценария оболочки, как показано в документации.
Бег против 2 миньонов, 1 провал, 1 успешный. Оба сообщают Result как True, но правильно заполняют Комментарий с моей парой ключ-значение.
Я пробовал ДА / НЕТ, ИСТИНА / ЛОЖЬ, 0/1 - ничего не работает.
Конец моего сценария оболочки, отформатированный как показано в документации.
echo Return_Code=${STATUS}
# exit ${STATUS}
if [[ ${STATUS} -ne 0 ]]
then
echo ""
echo "changed=False comment='Failed'"
else
echo ""
echo "changed=True comment='Success'"
fi
Блок SLS:
stop_oracle:
cmd.run:
- name: {{scriptDir}}/{{scriptName}}{{scriptArg}}
- stateful: True
- failhard: True
Вывод SLS из Успешного миньона:
----------
ID: stop_oracle
Function: cmd.run
Name: /u01/orastage/oraclepsu/scripts/oracle_ss_wrapper.ksh stop
Result: True
Comment: Success
Started: 14:37:44.519131
Duration: 18930.344 ms
Changes:
----------
changed:
True
pid:
26195
retcode:
0
stderr:
stty: standard input: Inappropriate ioctl for device
stdout:
Script running under ROOT
Mon Jul 1 14:38:03 EDT 2019 : Successful
Return_Code=0
Вывод SLS из миньона Failed:
----------
ID: stop_oracle
Function: cmd.run
Name: /u01/orastage/oraclepsu/scripts/oracle_ss_wrapper.ksh stop
Result: True
Comment: Failed
Started: 14:07:14.153940
Duration: 38116.134 ms
Changes:
Вывод из сценария оболочки, запускаемого локально при сбое цели:
[oracle@a9tvdb102]:/home/oracle:>>
/u01/orastage/oraclepsu/scripts/oracle_ss_wrapper.ksh stop
Mon Jul 1 15:29:18 EDT 2019 : There are errors in the process
Return_Code=1
changed=False comment='Failed'
Вывод сценария оболочки, запускаемого локально при достижении цели:
[ /home/oracle ]
oracle@r9tvdo1004.giolab.local >
/u01/orastage/oraclepsu/scripts/oracle_ss_wrapper.ksh stop
Mon Jul 1 16:03:18 EDT 2019 : Successful
Return_Code=0
changed=True comment='Success'