Назад | Перейти на главную страницу

Как я могу запустить chef-client удаленно (от windows до windows) без пароля

Я действительно надеюсь, что мне здесь чего-то не хватает - потому что я начинаю любить Chef, но некоторые вещи кажутся чрезвычайно глупыми.

У меня есть процесс (служба), который работает под определенными учетными данными. Эти учетные данные (пользователь / пароль) были введены один раз при установке службы и больше не видны людям. я хочу который процесс, чтобы иметь возможность запустить следующую команду ножа:

# Go kick the nodes and tell them to update now.
knife winrm "role:Xyz" "chef-client"

Я не хочу, чтобы записывали пароль или имя пользователя. Я хочу, чтобы это работало в моем текущем контексте, как если бы я перешел к пути UNC в проводнике \\ABC\DEF <- Windows «достаточно умна», чтобы знать, кто я, и согласовывать мои учетные данные.

Другой пример - когда моя служба подключается к SQL Server. Я могу выбрать не включать имя пользователя / пароль, а просто передать учетные данные приложения.

Разумеется, Chef не требует повсеместного жесткого кодирования паролей администратора. Пожалуйста помоги.

Я знаю, что этот вопрос довольно старый, но на самом деле с knife-windows установлен драгоценный камень, вы действительно можете использовать knife winrm для выполнения команд.

Чтобы установить knife-windows драгоценный камень запустить:

gem install knife-windows

Затем для запуска Chef-Client на всех машинах с ролью xyz вы бы просто запустили:

knife winrm 'role:xyz' 'chef-client' --winrm-user $AdminUser --winrm-password $AdminPassword

При условии, что $AdminUser и $AdminPassword переменные содержат значения, у которых есть достаточные разрешения для WinRM на целевой машине.

ПРИМЕЧАНИЕ (при использовании ChefDK):

В зависимости от вашей настройки вам может потребоваться:

chef gem install knife-windows

и

chef exec knife winrm 'role:xyz' 'chef-client' --winrm-user $AdminUser --winrm-password $AdminPassword

В зависимости от того, используете ли вы встроенную среду Ruby или свою собственную.

Я нашел свой ответ. Короткий ответ - «Нет», knife Утилита не поддерживает это. Тем не мение, WinRM делает изначально поддерживает возможность передачи ваших учетных данных по сети без необходимости повторно вводить имя пользователя / пароль!

Итак, мне придется использовать knife команда для запроса Chef, чтобы найти все узлы в конкретной роли, но оттуда я перехожу к powershell и выполните эту команду:

Invoke-Command -ComputerName TheComputerName -ScriptBlock { chef-client }

knife делает что-то вроде этого параллельно, так что мне просто придется сделать это сам в powershell.