LINUX.ORG.RU

Сложное вычисление на Python и засовывание результата в Ansible

 ,


0

2

Нужно мне сделать некоторые вычисления на Python, и результат получить в Ansible.

Делаю так:

  - name: Вычисление суммы
    shell: |
      python <<< "print 1+2"
    register: result

  - debug:
      msg: Результат {{result}}

И при исполнении плейбука ошибка:
fatal: [generatorHost]: FAILED! => {"changed": true, "cmd": "python <<< \"print 1+2\"\n", "delta": "0:00:00.001918", "end": "2020-11-24 15:25:22.719117", "msg": "non-zero return code", "rc": 2, "start": "2020-11-24 15:25:22.717199", "stderr": "/bin/sh: 1: Syntax error: redirection unexpected", "stderr_lines": ["/bin/sh: 1: Syntax error: redirection unexpected"], "stdout": "", "stdout_lines": []}

При этом простое выполнение команды в командной строке работает правильно:
$ python <<< "print 1+2"
3

Как сделать так, чтобы получить значение питоновской команды?

★★★★★

А вы уверены, что в Ansible bash разгребает команды?

Oleg_Iu
()
  - name: Вычисление суммы
    shell: |
      echo "print 1+2" | python
    register: result

  - debug:
      msg: Результат {{result}}
anonymous
()

Может так?

python -c "print(1+2)"
grazor ★★
()

Не надо экономить строчки и буквы.

Нужно сложное вычисление на питоне - напиши скрипт который выполняет это вычисление и вызывай его.

Оставь однострочники для консоли и интерактивной отладки, а на ansible пиши нормально.

alpha ★★★★★
()

лучше скрипт запускай ансиблом

peregrine ★★★★★
()

засовывание

Делириума на тебя не хватает

anonymous
()

<<< - это башизм, /bin/sh такого не знает.

anonymous
()

Вообще-то питон умеет в ключ -c python -c "print(1+2)". И почему ты используешь python2 который уже несколько лет считается устаревшим и никем не поддерживается?

Aswed ★★★★★
()

А я уж и забыл зачем в игнор тебя добавлял. Реально, за пару лет можно было бы и освоиться. Не ставь тег ansible / python хотя б. Ставь «stackoverflow».

ei-grad ★★★★★
()
Ответ на: комментарий от Aswed

И почему ты используешь python2 который уже несколько лет считается устаревшим и никем не поддерживается?

Незнаю, в Debian 9 пакет Ansible зависит от python, а это 2.7.13. Что есть, тем и пользуюсь.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от ei-grad

А я уж и забыл зачем в игнор тебя добавлял. Реально, за пару лет можно было бы и освоиться.

Я в этот ansible влазию раз в пол-года на несколько дней. К очередному ковырянию забываешь все что знал, каждый раз как в первый раз. Сделал и забыл.

Ты вон тоже забыл зачем вообще пользователя в игнор добавлял, и нормально.

Не ставь тег ansible / python хотя б. Ставь «stackoverflow».

Ну, это не тебе решать :)

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Дядя, не надо «сделал и забыл», пожалуйста. Вдруг мне потом на твой проект приходить и разгребать конфу, если можешь – сделай как следует с контролем версий файлов конфигурации и скриптов хотя бы.. потомки скажут спасибо, ханс рейзер ночью за женой не придет

mazdai ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.