По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этой статье приведены сведения и инструкции по устранению неполадок при возникновении этой ошибки при входе в систему и доступе к серверу vCenter Server с помощью веб-клиента vSphere. Признаки Сбой при входе на vCenter Server или устройство vCenter Server (VCSA) используя веб-клиента vSphere. Сбой доступа к vCenter Server или устройству vCenter Server используя веб-клиент vSphere. Вы видите следующие ошибки: 503 Service Unavailable. 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x00007fb7d00200a0] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe) Причина Эта проблема может возникнуть по ряду причин, таких как: Сервер vCenter в данный момент не работает из-за обслуживания. Обратный прокси сервер на сервере vCenter не работает. Служба веб-клиента vSphere отключена. Неправильно сконфигурированны параметры настройки Брандмауэра. Эта неправильная конфигурация может быть выполнена только при установке vCenter Server в Windows. Эта проблема может возникнуть только в том случае, если в параметры брандмауэра были внесены целенаправленные изменения. Решение Ошибка 503 Сервис недоступен (503 Service Unavailable) - это код состояния ответа HTTP, указывающий на то, что сервер временно не может обработать Ваш запрос Важно понимать, что ошибка 503 - это ошибка сервера. Это означает, что проблема существует в vCenter Server или веб-узле (сервере), к которому Вы пытаетесь получить доступ, а не на вашем компьютере (клиенте). Кроме того, на других веб-сайтах есть разные ошибки 503, например: 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x00007fb7d00200a0] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe) 503 Error Service Unavailable – DNS Failure HTTP Error 503 HTTP 503 503 Service Temporarily Available Устраенние ошибки Повторите попытку через несколько минут. Наиболее вероятно, что сервер vCenter просто занят подтверждением Вашего запроса. Сервер vCenter смог обработать ваш запрос и ответил на сообщение об ошибке "503 Сервис недоступен". Он просто не может подтвердить Ваш запрос потому что он занят другими задачами в данный момент или он в настоящее время не работает с очень ограниченными услугами из-за обслуживания. Повторите попытку через несколько минут на другом клиенте. Подтвердите, есть ли та же ошибка. Проверьте состояние служб VMware vCenter. Убедитесь, что все сервера vCenter, и услуги vCenter рабочие и функциональные. Проверьте наличие проблем с дисковым пространством на vCenter Server или vCenter Server Appliance. Проблемы с дисковым пространством могут привести к завершению работы нескольких служб, что может привести к появлению кода ответа на ошибку HTTP 503. Проблемы с дисковым пространством непосредственно не вызывают код 503 ответа на ошибку, но из-за сбоя службы не работают. На сервере vCenter изучите файл vsphere_client_virgo.log, расположенный по адресу: для Windows vCenter Server - C:ProgamDataVMwarevCenterServerlogsvsphere-clientlogs, для vCenter Server Appliance - /var/log/vmware/vsphere-client/logs/. Кроме того, посмотрите файл vpxd.log, расположенный по адресу: для Windows vCenter Server - C:ProgramDataVMwarevCenterServerlogsvmware-vpx, для vCenter Server Appliance - /var/log/vmware/vpxd
img
Использование REST API является полезной функцией для реализации ваших сценариев. Вы можете получить доступ к новым функциям, а также расширить возможности создания новых, более продвинутых сценариев. Опыт многих пользователей показывает, что, когда начинаешь использовать REST API в скриптах, то чувствуешь себя довольно неуклюже и непривычно. В этой заметке мы обсудим: Что такое REST API Как читать документацию Как использовать API REST с PowerShell Некоторые советы и подсказки, как облегчить и улучшить практику Что такое "REST"? REST, или RESTful API, это API, который использует HTTP запросы для получения, добавления, удаления или манипулирования данными в различных сервисах. Как правило, то, что нужно сделать с данными, решается тем, какой HTTP-метод вы используете. Вот краткий список методов HTTP и их применение в REST API: GET-Read POST-Create PATCH-Partial update/modify PUT-Update/replace DELETE-Remove Данные, которые возвращает API REST, обычно представляются в формате JSON. Теперь давайте начнём с нашего первого API запроса! Что такое API Работа с документацией Для использования различных API REST необходимо научиться читать и интерпретировать документацию. К счастью, если вы знаете, как читать один тип документации, вы сможете быстро научиться читать другие. В этой статье мы используем petstore.swagger.io, так как он использует популярный фреймворк Swagger, который довольно часто используется в разработке. На предыдущем рисунке показана наиболее важная информация о конечных точках REST API: HTTP-метод-GET/POST/DELETE и т.д. URL-адрес, связанный с конечной точкой REST API (Базовый URL, как правило, представлен в верхней части страницы документации) Краткое описание Подробности Первая страница документации просто замечательная, и, как правило, с помощью этой информации можно выполнить большинство запросов, требующих использования метода HTTP GET. Но такие методы, как POST и SET, обычно требуют, чтобы вы щелкнули и развернули строку, чтобы получить больше информации. Если вы нажмете на одну из строк, то получите информацию, которая выглядит так: Здесь мы представили конечную точку REST, которая может создать новый объект pet. Здесь указывается, как должен выглядеть JSON, предоставленный в теле POST, и какой тип контента он принимает. Другие конечные точки REST указывают, что это за параметры, каким типом данных они должны быть и т.д. Это основы для чтения документации. Теперь, когда общие принцип более-менее ясны, пора начать использовать REST API с PowerShell. Получение первых данных (GET) Используя REST API с PowerShell обычно довольно просто, используется встроенные командлеты, таким образом, нет необходимости в дополнительных модулях. Мы собираемся извлечь данные с помощью метода GET в конечной точке /pet/{ petId}. Если развернуть конечную точку /pet/{ petId} в документации, можно увидеть, что {petId} на самом деле является параметром, который принимает целое число. Это делает URL-адрес для выборки объекта pet с идентификатором 1: https://petstore.swagger.io/v2/pet/1 В документации SWAGGER REST API обычно отображается базовый URL-адрес в верхней части страницы. Теперь начнем с PowerShell. Откройте окно терминала и введите: PS51 > Invoke-RestMethod -Method GET -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" id : 1 category : @{id=0; name=string} name : doggie photoUrls : {string} tags : {@{id=0; name=string}} status : available Поскольку в ответе от сервера возвращается тип содержимого "application/json" используется метод Invoke-RestMethod, который автоматически преобразует возвращаемый JSON в объект. Ошибка 404 Not found, как правило, означает, что объект не найден или URL-адрес введен неправильно. Итак, мы выполнили первый вызов REST API. Но возможности метода GET для получения данных довольно ограничены, так что давайте создадим что-нибудь с помощью метода POST. Создание объекта методом POST Метод POST чаще всего используется для создания, например, пользователей или записей и т.д. Запрос POST отправляет BODY, содержащий информацию, конечной точке REST, обычно в формате JSON, но он также может быть в виде формы с кодировкой URL. Вы узнаете, как создать объект JSON, который можно отправить в конечную точку/pet. Можно увидеть, как должен выглядеть JSON, если развернуть строку POST/pet в документации. Начнем с создания хэштаблицы, который можно преобразовать в объект JSON. Raw JSON следует избегать в скриптах PowerShell, поскольку он ограничивает его возможности. $Body = @{ id = 19 category = @{ id = 45 name = "Whatever" } name = "Dawg" photoUrls = @( "string" ) tags = @( @{ id = 0 name = "string" } ) status = "available" } Если вам трудно создать хештаблицу, который преобразуется в нужный JSON, установите модуль PsdKit и используйте команду $ JsonString | ThreadTo-Psd Теперь имеется хэш-таблица, которую можно преобразовать в строку JSON и POST в конечную точку/pet: $JsonBody = $Body | ConvertTo-Json $Uri = "https://petstore.swagger.io/v2/pet" Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method Post -Body $JsonBody id : 19 category : @{id=45; name=Whatever} name : Dawg photoUrls : {string} tags : {@{id=0; name=string}} status : available При создании объекта он обычно получает созданный для подтверждения объект. Использование DELETE. Метод DELETE используется для удаления данных, а применение очень схоже с методом GET. PS51 > Invoke-RestMethod -Method DELETE -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/1" Только убедитесь, что не удалите ничего важного Использование PUT Метод PUT используется для обновления данных. Это делается аналогично методу POST путем представления полного или частичного объекта JSON: PS51> $Body = [PSCustomObject]@{ id = 19 name = "Dawg with a new name" } PS51> $JsonBody = $Body | ConvertTo-Json PS51> $Uri = "https://petstore.swagger.io/v2/pet" PS51> Invoke-RestMethod -ContentType "application/json" -Uri $Uri -Method PUT -Body $JsonBody id name photoUrls tags -- ---- --------- ---- 19 Dawg with a new name {} {} Обычно API REST возвращает объект JSON с использованными и/или обновленными данными. Можно увидеть, что объект был обновлен с помощью метода GET: PS 51> Invoke-RestMethod -ContentType "application/json" -Uri "https://petstore.swagger.io/v2/pet/19" id : 19 category : @{id=45; name=Whatever} name : Dawg with a new name photoUrls : {string} tags : {@{id=0; name=string}} status : available Создание функций Писать эти команды каждый раз вручную может стать довольно утомительным и на самом деле не масштабируемым. Если мы вызываем конечную точку несколько раз, то лучше создать для нее функцию. Это довольно просто и нужно написать всего несколько строк: Function Get-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipeline)] [int]$Id ) Begin{} Process{ $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/$Id" ContentType = "application/json" Method = "GET" } Invoke-RestMethod @RestMethodParams } End{} } После создания функции ее можно вызвать в сценарии: PS51> Get-PetstorePet -Id 1 id name photoUrls tags -- ---- --------- ---- 1 Doggie {http://picture.url} {} Это можно сделать и для метода POST для создания нового объекта pet в Petstore: Function Add-PetstorePet { [cmdletbinding()] param( # Id of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$Id, # Name of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Name, # Status of the pet (available, sold etc) [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$Status, # Id of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [int]$CategoryId, # Name of the pet category [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string]$CategoryName, # URLs to photos of the pet [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [string[]]$PhotoUrls, # Tags of the pets as hashtable array: @{Id=1;Name="Dog"} [Parameter(Mandatory,ValueFromPipelineByPropertyName)] [Hashtable[]]$Tags ) Begin{} Process{ $Body = @{ id = $Id category = @{ id = $CategoryId name = $CategoryName } name = $Name photoUrls = $PhotoUrls tags = $Tags status = $Status } $BodyJson = $Body | ConvertTo-Json $RestMethodParams = @{ Uri = "https://petstore.swagger.io/v2/pet/" ContentType = "application/json" Method = "Post" Body = $BodyJson } Invoke-RestMethod @RestMethodParams } End{} } И вызов этой функции PowerShell намного упрощает задачу: PS51> $AddPetStorePetsParams = @{ Id = 44 Name = "Birdie" Status = "available" CategoryId = 50 CategoryName = "Hawks" PhotoUrls = "https://images.contoso.com/hawk.jpg" Tags = @( @{ Id=10 Name="Not eagles" } ) } PS51> Add-PetStorePet @AddPetStorePetsParams id : 44 category : @{id=50; name=Hawks} name : Birdie photoUrls : {https://images.domain.com/hawk.jpg} tags : {@{id=0}} status : available Возможно, что многие модули, которые вы ежедневно используете, состоят из функций, который за кулисами используют REST API. Заключение Обучение работы с REST API, главным образом основано на чтении документации. Мы использовали документацию на основе SWAGGER в этом посте, так как она представляет, как могут выглядеть другие стили документации. Кроме того, преобразование вызовов API в функцию может сэкономить много времени, упростить работу и очистить сценарии.
img
Нет, в этой статье мы не будем рассматривать основные команды, такие как ls, rm и cd. Вы не должны быть шокированы, увидев эти команды. Возможно, вы даже хорошо знакомы с ними. Особенно, если вы хорошо разбираетесь в командной строке. Эта статья для тех из вас, кто имеет некоторый опыт работы с командной строкой и знаком с основными командами (а если не знакомы – то познакомиться можно в нашей статье). Wget В Unix-подобных операционных системах команда wget загружает файлы, обслуживаемые по HTTP, HTTPS или FTP, по сети. По умолчанию он включен во все уважающие себя дистрибутивы Linux. Самый простой способ использовать wget - указать местоположение файла для загрузки по HTTP. Скачать файл http://website.com/static/images/header.jpg с помощью wget можно с помощью следующей команды: wget http://website.com/static/images/header.jpg Отличительной особенностью wget является то, что он неинтерактивный, что означает, что он может работать в фоновом режиме, пока пользователь не вошел в систему. Это позволяет вам начать поиск и отключиться от системы, позволяя wget завершить работу. Scp У вас когда-нибудь возникала проблема, когда вам нужно было получить файл с удаленного сервера на ваш локальный компьютер? Например, получение файла, загруженного пользователем, который вызвал некоторые проблемы. Вы можете скачать этот файл через командную строку, используя команду scp. Scp - сокращение от secure copy, т.е. защищенная копия. Что еще более важно, это то, что это удаленная защищенная копия. Эта команда похожа на команду cp, которую вы, вероятно, уже знаете, но источник или цель находятся в другой системе. Следующая команда копирует файл foobar.txt с удаленного сервера в локальный каталог. scp username@remotehost.com: /path/to/foobar.txt /some/local/directory Но scp также можно использовать для копирования файла из локального каталога на удаленный сервер. scp /some/local/directory/foobar.txt username@remotehost.com: /destination/path/ То же самое можно сделать с каталогами, используя опцию -r, которая рекурсивно копирует целые каталоги. ssh-keygen Команда ssh-keygen используется для генерации новой пары ключей SSH. Открытый ключ SSH, сгенерированный этой командой, может использоваться в Gitlab или Bitbucket для установления безопасного соединения. После того, как вы добавили свой SSH-ключ в Gitlab или Bitbucket, у вас не будет запрашиваться пароль каждый раз, когда вы пытаетесь отправить файлы в удаленную ветку. Чтобы сгенерировать пару ключей SSH, используйте следующую команду: ssh-keygen -t ed25519 Обратите внимание, что в приведенном выше примере мы использовали алгоритм подписи ED25519. Хотя ED25519 считается наилучшей практикой, вы всегда должны провести некоторое исследование в области различных доступных алгоритмов подписи. Генерация пары ключей SSH и ее правильная настройка в Gitlab или Bitbucket обойдутся вам максимум в десять минут, но они того стоят! CHMOD В Unix и Unix-подобных операционных системах chmod - это командный и системный вызов, который используется для изменения прав доступа к объектам файловой системы (файлам и каталогам). Мы все были в ситуации, когда у сервера не было доступа к определенному файлу из-за неправильной настройки прав доступа к файлу. Команда chmod сама по себе довольно проста, но предоставление необходимых прав доступа к файлам и каталогам - совершенно другое дело. Подробно о том как пользоваться это командой можно прочитать в нашей статье chmod 664 robots.txt chmod 775 public/images Первый пример дает права на чтение и запись пользователю и группе для файла robots.txt. Разрешение на чтение предоставляется другим для этого файла. Второй пример дает права на чтение, запись и выполнение пользователю и группе для папки public/images. Другим предоставляется разрешение на чтение и выполнение для этой папки. Tar Эта команда используется для сбора множества файлов в один архивный файл. Tar является наиболее широко используемой командой для создания сжатых архивных файлов. Давайте начнем с того, как вы можете создать архивный файл для определенного каталога: tar -cvf my-archive.tar /path/to/directory Эта команда приведет к созданию файла архива my-archive.tar, который содержит все файлы каталога /path/to/directory, созданного в текущем рабочем каталоге. Создание файла архива является первой частью. Вторая часть состоит в том, чтобы распаковать архивный файл, потому что в какой-то момент мы хотим использовать файлы в tar-файле. Вы можете распаковать файл в определенный каталог, введя следующую команду: tar -xvf my-archive.tar -C /home/myfolder/ Alias Каждый использует какие-то команды, которые слишком длинны или сложны, чтобы их можно было полностью запомнить. К счастью, вы можете создать псевдоним для этой команды, чтобы вам не пришлось запоминать всю команду. alias short-command = "Ваша обычная и очень длинная команда здесь" Хотя создание псевдонима приводит к одной проблеме: этот псевдоним является временным. Если вы создадите псевдоним таким образом, он будет доступен только для текущего сеанса терминала. Чтобы сохранить псевдонимы между сеансами, вы можете сохранить их в файле профиля конфигурации оболочки вашего пользователя. Этот файл профиля, вероятно, находится в ~/.bashrc или ~/.zshrc, если вы используете Bash или ZSH соответственно. Совет 1: Направление вывода Стандартным устройством вывода является экран. Но иногда вы не хотите выводить все на экран. В некоторых случаях вы, вероятно, предпочитаете выводить результаты некоторых команд в файл. Для целей регистрации, например. Чтобы перенаправить вывод, вы можете использовать">". В следующей команде вывод ls -al перенаправляется в файл myfile, а не на экран. ls -al> myfile Совет 2: Объединение команд Можно запустить две или более команд одновременно. Оператор точки с запятой " ; " позволяет вам сделать это. Вы можете выполнить несколько команд подряд, независимо от того, будет ли успешной каждая предыдущая команда. ls -al; pwd; Если вы хотите, чтобы вторая команда выполнялась только в том случае, если первая команда выполнена успешно, разделите команды с помощью логического оператора И, которым является &&. mkdir images && cd images Мы хотим перейти в папку с изображениями, только если нам удалось создать эту папку. И иногда вы можете захотеть выполнить вторую команду, только если первая команда не удалась. Для этого мы используем логический оператор ИЛИ, который пишется как ||.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59