1 2 Previous Next 16 Replies Latest reply on Aug 1, 2011 9:12 PM by Alexander1974

    Как сделать пользователя для выключения ESXi?

    freddyb1 Novice

      Хочу внедрить у себя виртуализацию, начав с ESXi 4.1 u1 build 348481 с бесплатной лицензией.

      Поставил ESXi на комп. (Его DNS-имя: ESXiexp).

      От одного ИБП APC запитаны 2 компа: этот, с ESXi (ESXiexp) и невиртуализированный (Serv).

      На Serv стоит Power Chute BE, т.е. управление ИБП идёт с Serv.

      При пропадании питания, перед запуском shutdown для самого Serv-а, Power Chute запускает коммандный файл для выключения гипервизора ESXiexp, (который настроен на предварительное выключение своих ВМ).

      Итак, ESXiexp должен выключатся при пропадании питания коммандным файлом с Serv.

       

      В VSphere client-e, выбрав мой хост, сделал:

      1) в LocalUsers&Groups создал пользователя vikluchatel с паролем и добавил его в группу root.

      2) В Permissions добавил пользователя vikluchatel и наделил правами администратора.

       

      Для удаленного выключения пользуюсь plink.exe из состава putty.

       

      Пытаюсь запустить коммандный файл:

       

      plink -ssh -l vikluchatel -pw пароль IP_адрес_ESXiexp poweroff

       

      но получаю ответ "Access denied"

       

      Если этот коммандный файл изменить так, чтобы выключение производил root:

       

      plink -ssh -l root -pw пароль IP_адрес_ESXiexp poweroff

       

      то хост благополучно гасит ВМ и выключается сам.

       

      Вопрос: как правильно дать доступ не-руту на выключение хоста?

       

      PS: А может кто-нибудь дать правильную ссылку на список ограничений бесплатного ESXi 4.1? Везде раскиданы куски инфы, то к одной версии ESXi, то к другой...

      В частности,

      1) хочу ставить ESXi 4.1 u1 на сервер с 2-мя 2-х ядерными процами Xeon5160. Все-ли ядра будут задействованы?

      2) бесплатная версия гипервизора хоть каким-то образом обновляема, или нет? Ведь можно скачать bandle обновлений для ESXi 4.1 u1 build 348481, но можно ли эти обновления установить?

        • 1. Re: Как сделать пользователя для выключения ESXi?
          RumataRus Master

          По использованию ИБП ничего не скажу, я сам использую другой способ.

           

          freddyb1 wrote:

           

          PS: А может кто-нибудь дать правильную ссылку на список ограничений бесплатного ESXi 4.1? Везде раскиданы куски инфы, то к одной версии ESXi, то к другой...

          В частности,

          1) хочу ставить ESXi 4.1 u1 на сервер с 2-мя 2-х ядерными процами Xeon5160. Все-ли ядра будут задействованы?

          2) бесплатная версия гипервизора хоть каким-то образом обновляема, или нет? Ведь можно скачать bandle обновлений для ESXi 4.1 u1 build 348481, но можно ли эти обновления установить?

           

          Вот ссылка Обзор VMware vSphere 4.1

          В самом конце обзора - сравнение редакций.

          Бесплатный ESXi 4.1 - это vSphere Hypervisor, соответственно те фичи, которых у него нет - это и есть ограничения.

          Из этой таблицы следует, что задействовать все ядра своих Xeon5160 вы сможете.

           

          Обновление vSphere Hypervisor возможно, процедура популярно с дальнейшими ссылками описана например в статье How to Patch free ESXi 4.1

          1 person found this helpful
          • 2. Re: Как сделать пользователя для выключения ESXi?
            EGarbuzov Virtuoso
            VMware Employees

            В VSphere client-e, выбрав мой хост, сделал:

            1) в LocalUsers&Groups создал пользователя vikluchatel с паролем и добавил его в группу root.

            2) В Permissions добавил пользователя vikluchatel и наделил правами администратора.

            В окне создания пользователя не забыли поставить галочку “Grant shell access to this user”?

            • 4. Re: Как сделать пользователя для выключения ESXi?
              mayonnaise Hot Shot

              мне кажется проблема с доступом связана с тем, что изначально в консоль ESXi по ссш например можно зайти только под рутом. Если даже завести локального юзера через клиент на хосте и дать ему права админа, он не попадет на консоль. Надо сначала ему рками создать хомяк в /home и дать этому юзеру права на запись туда. А еще, на сколько помню, надо в файле /etc/passwd отредактировать для юзера строку, можно как у рута всё сделать.

              • 5. Re: Как сделать пользователя для выключения ESXi?
                EGarbuzov Virtuoso
                VMware Employees

                freddyb1 wrote:

                 

                Галочки “Grant shell access to this user” там нет и в помине.

                Сорри, действительно теперь её там нет. Раньше была.

                 

                Тогда допилите это руками:

                Необходимо поправить строчку с этом пользователем (например user4) в /etc/passwd

                user4:x:504:0:Linux User,,,:/tmp:/bin/ash

                Кроме того, необходимо добавить пользователя в /etc/security/access.conf

                +:user4:ALL

                Если настройки изчезнут после перезагрузки, выполните в конце дополнительно auto-backup.sh от рута.

                • 6. Re: Как сделать пользователя для выключения ESXi?
                  freddyb1 Novice

                  Да, а, собственно, зачем мне нужен новый пользователь для выключения гипервизора, чем мне рут не подходит? Ведь этот новый пользователь  должен обладать теми же правами, что и рут, тоже должен иметь админские права на гипервизор. А значит открытое указание его пароля в командном файле выключения гипервизора несёт такое же нарушение правил безопасности, что и указание пароля рута. Или я не прав?

                   

                  P.S. Благодарю за указание на метод обновления, всё получилось. А у г-на Михеева в книге сказано, что esxupdate подходит только для ESX, не для  ESXi, что оказалось неверно.

                  И сразу вопрос по обновлению: bundle обновления подойдёт для гипервизора, собранного специально для серверов HP?

                  • 7. Re: Как сделать пользователя для выключения ESXi?
                    EGarbuzov Virtuoso
                    VMware Employees

                    Ну, собственно, я вам написал как заставить работать тот сценарий, который вы сами выбрали

                    1) в LocalUsers&Groups создал пользователя vikluchatel с паролем и добавил его в группу root.

                    2) В Permissions добавил пользователя vikluchatel и наделил правами администратора.

                    Например, можно давать пользователю в Permission хоста не роль Administrator, специально созданную роль, умеющую только выключать хост.

                    С точки зрания прав этого пользователя в консоли, гуглите man по файлу access.conf и стандартные средства Linux, типа sudo.

                    • 8. Re: Как сделать пользователя для выключения ESXi?
                      freddyb1 Novice

                      Пользователю в Permission хоста кроме роли Administrator, можно давать только No access и Read-Only роли.

                      Все галки ниже пункта Assigned Role, где, видимо, и можно было-бы дать чётко определённые права, неактивны.

                      Это, наверное, ограничение , бесплатной версии.

                      Выходит, в бесплатной версии нет нормальной возможности завершать работу гипервизора от ИБП.

                       

                      А может быть гипервизор и не надо корректно выключать, а достаточно выключить одни только ВМ?

                      Или в платной версии всё-таки есть специальные возможности для выключения от гипервизора от ИБП?

                      • 9. Re: Как сделать пользователя для выключения ESXi?
                        RumataRus Master

                        freddyb1 wrote:

                         

                        А может быть гипервизор и не надо корректно выключать, а достаточно выключить одни только ВМ?

                        Или в платной версии всё-таки есть специальные возможности для выключения от гипервизора от ИБП?

                        Выключать корректно надо и хост в том числе.

                        Другие возможности есть, например я использую решение  ghettoHostShutdown41.pl и это не единственный вариант.

                        • 10. Re: Как сделать пользователя для выключения ESXi?
                          EGarbuzov Virtuoso
                          VMware Employees

                          freddyb1 wrote:

                           

                          Пользователю в Permission хоста кроме роли Administrator, можно давать только No access и Read-Only роли.

                          Все галки ниже пункта Assigned Role, где, видимо, и можно было-бы дать чётко определённые права, неактивны.

                          Это, наверное, ограничение , бесплатной версии.

                          Нет, ролевая модель для разных лицензий не отличается. Administrator, Read-Only и No Access -- это три преднастроенные роли.

                          В клиенте в верхней строке выйдете на уровень Home и кликните по пиктограмме Roles. Далее вверху кнопка Add Role.

                           

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

                           

                          После того, как создатите кастомную роль, она станет доступна для выбора за закладке Permission.

                          • 11. Re: Как сделать пользователя для выключения ESXi?
                            EGarbuzov Virtuoso
                            VMware Employees

                            vRumata wrote:

                             

                            Выключать корректно надо и хост в том числе.

                            Другие возможности есть, например я использую решение  ghettoHostShutdown41.pl и это не единственный вариант.

                            Rumata, если я правильно понял, то для ESXi free этот вариант тоже не проходит, т.к. скрипт скармливается vMA?

                            • 12. Re: Как сделать пользователя для выключения ESXi?
                              RumataRus Master

                              Для бесплатной версии вариант не подходит, верно, но коллега спрашивал: "Или в платной версии всё-таки есть...".

                              • 13. Re: Как сделать пользователя для выключения ESXi?
                                freddyb1 Novice

                                К сожалению, так и не получилось выключить хост.

                                 

                                Для пользователя vikluchatel отредактировал /etc/passwd:

                                vikluchatel:x:500:0:Linux User,,,:/tmp:/bin/ash

                                и /etc/security/access.conf ,так что теперь он может входить по ssh на хост.

                                 

                                Но при попытке запустить

                                plink -ssh -l vikluchatel -pw пароль IP_адрес_хоста poweroff

                                 

                                получаю сообщение poweroff: no

                                и хост не выключается

                                 

                                при этом специальной роли я пока не назначал для этого пользователя, дал роль Administrator да и ещё добавил его в группу root.

                                • 14. Re: Как сделать пользователя для выключения ESXi?
                                  Alexander1974 Enthusiast

                                  Не помню, умеет ли бесплатная версия PowerCLI, но если умеет - попробуйте. В свое время я остановился как раз на этом варианте. Когда-то давно, когда у меня было всего 2 хоста, и вообще - всё было очень скромно аналогичную задачу решал следующим образом:

                                  UPS (Ippon, кстати, - довольно глючная и корявая консоль у него была) коннектил к физической машине, при сбое питания он должен был запустить пакетник (все конечно от имени админа физической машины) следующего содержания:

                                   

                                  C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -ExecutionPolicy Unrestricted -NoExit -File "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\MyScripts\Shutdown_VMs_ESXi.ps1"

                                   

                                  а сам скрипт Shutdown_VMs_ESXi.ps1 был такой:

                                   

                                  $MyName = "имя пользователя, имеющего права гасить хост, например, root"
                                  $MyPass = "Пароль этого пользователя"
                                  $MyHosts = ("IP хоста 1", "IP хоста 2") | foreach {connect-viserver -server $_ -user $MyName -password $MyPass}
                                  Get-VM | Where-Object {$_.PowerState -eq "PoweredOn" -and $_.Guest.State -eq "Running"} | Foreach-Object { Start-Sleep -Seconds 10
                                                                                                                                             Suspend-VM -VM $_ -RunAsync -Confirm:$false}
                                  $waittime = 480
                                  $Time = 0
                                  do { Start-Sleep -Seconds 1
                                       $Time = $Time + 1
                                       $timeleft = $waittime - $Time
                                       $numvms = (Get-VM | Where-Object { $_.PowerState -eq "PoweredOn" }).Count
                                       Write "Ожидаем завершения работы $numvms гостевых ОС или истечения $timeleft сек."
                                     } until ((@(Get-VM | Where-Object { $_.PowerState -eq "poweredOn" }).Count) -eq 0 -or $Time -ge $waittime)
                                  Get-VM | Where-Object {$_.PowerState -eq "PoweredOn"} | Stop-VM -RunAsync -Confirm:$false
                                  Start-Sleep -Seconds 180
                                  Get-VMHost | ForEach-Object {Get-View $_.ID} | Foreach {$_.ShutdownHost_Task($True)}

                                   

                                  Коряво, конечно - грехи молодости , но тем не менее - все это успешно работало, и даже несколько раз спасало от преждевременной кончины мои первые ВМки

                                  1 2 Previous Next