Шеф-повар: sudo без пароля для клиента шеф-повара как часть сценария ANT

На рабочей станции Chef я использую команду -

    knife ssh 'name:myserver.org.com' -x myUserName -P myClearTextPassword  "sudo chef-client"

Это работает нормально, запрашивает мой пароль sudo и выполняет поваренную книгу на целевом узле шеф-повара. Все идет нормально.

Теперь я пытаюсь сделать это как часть операции сборки в задании Jenkins в сценарии ANT, который работает в системе Windows. Сценарий ANT выглядит следующим образом:

    <project name="MyProject" default="init" basedir=".">
<target name="init">
    <property name="mypassword" value="myClearTextPassword" />
    <echo message="Executing the knife script"/>
    <exec executable="cmd" failonerror="true" inputstring="${mypassword}">
        <arg line="/c knife ssh name:myserver.org.com -x myUserName -P myClearTextPassword sudo chef-client" />
    </exec>
</target>

The ANT script, when executed waits on the SUDO password -

    C:\chef-repo>ant
    Buildfile: C:\chef-repo\build.xml
    init:
    [echo] Executing the knife script
    [exec] cwllx0001.hq.target.com knife sudo password:

Моя цель — выполнить этот ANT-скрипт так, чтобы он НЕ ждал ввода пароля sudo. Как мы можем достичь этого?


person mmukhe    schedule 17.12.2013    source источник
comment
предоставить пользователю разрешение nopassword в файле /etc/sudoer и ограничить его только теми ресурсами, которые ему требуются   -  person bjhaid    schedule 17.12.2013


Ответы (3)


Попробуй это.

--use-sudo-password
Indicates that a bootstrap operation is done using sudo, with the password specified by the -P (or --ssh-password) option.

лучший способ был бы

-i IDENTITY_FILE, --identity-file IDENTITY_FILE

Файл идентификации SSH, используемый для аутентификации. Рекомендуется аутентификация на основе ключей.

http://docs.opscode.com/knife_bootstrap.html

person Saurav    schedule 17.12.2013

Вам нужно добавить запись для пользователя в файл /etc/sudoers, чтобы не запрашивать пароль

Вам нужно добавить запись, аналогичную приведенной ниже, в /etc/sudoers

<username> ALL=(ALL) NOPASSWD: ALL

вы можете добавить эту строку в /etc/sudoers, используя ресурс шеф-повара bash или ресурс execute

person Vineeth Guna    schedule 22.12.2013

Вам нужно будет добавить текущего пользователя в группу sudoers и предоставить ему доступ к sudo без пароля с помощью этой команды:

person sethvargo    schedule 19.12.2013