BashOperator не запускает файл bash, требующий привилегий SUDO

#python #airflow

#python #поток воздуха

Вопрос:

у меня есть скрипт с именем CC, который собирает данные и отправляет их в хранилище данных. Я создал для него dag

       Task_I = BashOperator(
        task_id="CC",
        run_as_user="koa",
        bash_command="sudo /home/koa/CC"
      )
  

и я добавил разрешение на его запуск без ввода пароля, изменив /etc/sudoers

   koa ALL = (ALL) NOPASSWD: /home/koa/CC
  

однако, когда задача завершается неудачно в airflow и в журнале указывается, что требуется пароль

 {bash_operator.py:146} INFO - Running command: sudo /home/koa/CC 
{bash_operator.py:153} INFO - Output:
{bash_operator.py:157} INFO - sudo: a terminal is required to read 
 the password; either use the -S option to read from standard input or configure an askpass 
 helper
{bash_operator.py:159} INFO - Command exited with return code 1
  

Было бы здорово, если бы вы могли мне помочь, ребята, я новичок в airflow и последние несколько часов боролся с этим

Комментарии:

1. Вероятно, это скорее вопрос sudo, чем Airflow, но airflow немного усложняет понимание того, что именно здесь происходит.

2. Не могли бы вы изменить bash_command на whoami amp;amp; sudo -nl — это может дать еще несколько подсказок относительно того, что происходит.

3. Также еще одно наблюдение: «run_as_user» выполняет сам sudo, так почему бы просто не указать run_as_user='root'

4. когда я запускаю команду «sudo / home / koa / CC» от имени моего пользователя по умолчанию «koa», за пределами airflow, она работает без запроса пароля .

5. Я запустил команду bash с помощью whoami amp;amp; sudo -nl, и она возвращает эту команду для запуска ИНФОРМАЦИИ: whoami amp;amp; sudo -nl /home/koa/CC {bash_operator.py:153} INFO — Output: {bash_operator.py:157} INFO — koa {bash_operator.py:157} INFO — /home/koa/CC {bash_operator.py:159} INFO — команда завершается с кодом возврата 0