Установка JDK на вычислительные узлы пула в пакетной службе Azure

Мне нужно установить java на серверные узлы Ubuntu в моем пуле. Я пытаюсь сделать это по задачам, но каждый раз, когда я пытаюсь установить java через задачу, используя приведенный ниже код:

 TaskAddParameter taskToAdd = new TaskAddParameter();
    taskToAdd.withId(taskId).withCommandLine(String.format("sudo apt-get install openjdk-8-jdk"));
    // Associate resource file with task
    taskToAdd.withResourceFiles(getListOfResourceFiles(sas));

я получаю сообщение об ошибке

sudo: no tty present and no askpass program specified

Я попробовал описанный выше способ на уровне пула, также дав эту команду в StartTask пула, но затем это дало мне ту же ошибку.

Мне нужно установить java на узлы моего пула, чтобы я мог запускать на нем свою java-программу.


person Tarun    schedule 28.11.2017    source источник


Ответы (1)


Вы должны сделать это в пуле Начать задачу.

Для commandLine необходимо вызвать оболочку, как описано в руководстве по рекомендациям здесь. Итак, вместо:

sudo apt-get install openjdk-8-jdk

do:

/bin/bash -c "sudo apt-get install openjdk-8-jdk"

Кроме того, вы должны использовать идентификатор пользователя PoolAdmin AutoUser, чтобы вам не приходилось вызывать sudo. Дополнительные сведения см. в этом руководстве.

person fpark    schedule 28.11.2017