По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В этой статье рассказываем как восстановить потерянный или забытый пароль root пользователя в утилите VMware vCenter Server в версиях 6.5 и выше.
Важное замечание: Данная статья предназначена только для утилиты vCenter Server версии 6.5 и выше и не будет работать на предыдущих версиях. Для ранних версий инструкцию по сбросу пароля смотрите здесь.
Решение
Процесс сброса пароля root в VCSA:
VCSA – VMware vCenter Server Application – утилита vCenter Server от компании VMware
Чтобы сбросить утерянный или забытый пароль root в утилите vCenter Server, Вам необходимо выполнить следующие действия:
Сделайте снимок или резервную копию утилиты vCenter Server перед тем, как продолжить. Не пропускайте этот шаг.
Примечание. Если устройство управляется одним и тем же vCenter, Вам необходимо подключиться напрямую к хосту, на котором работает утилита vCenter Server и, используя клиент хоста, чтобы выполнить данную процедуру.
Перезагрузите утилиту vCenter Server.
После запуска в VCSA Photon OS , Вам необходимо нажать клавишу е, чтобы войти в меню редактирования GNU GRUB.
Photon OS – это система управления и контроля доступом для нативных облачных приложений.
GNU – это свободная Unix-подобная операционная система, разрабатываемая проектом GNU (GNU’s Not Unix).
GRUB (Grand Unifield Bootloader) – загрузчик операционной системы от проекта GNU.
Найдите строку, которая начинается со слова linux.
Добавьте в конец строки следующую запись:rw init=/bin/bash.Строка должна выглядеть так, как показано на следующем скриншоте:
Нажмите клавишу F10, чтобы продолжить загрузку.
Выполните следующую команду:mount -o remount,rw /
В командной строке введите команду Passwd, и введите новый пароль root (дважды для подтверждения).
Размонтируйте файловую систему, выполнив следующую команду:umount /
Да, umount – это команда размонтировать и здесь нет орфографической ошибки
Перезагрузите утилиту vCenter Server с помощью следующей команды:reboot –f
Убедитесь, что Вы можете получить доступ к утилите vCenter Server с помощью нового пароля root.
Удалите снимок, который Вы сделали на шаге 1, если это необходимо.
IOS использует термин интерфейс для обозначения физических портов, используемых для передачи и приема данных на другие устройства в сети. Каждый интерфейс может иметь несколько различных настроек, каждая из которых может отличаться от интерфейса к интерфейсу. В IOS для настройки этих параметров используются подкоманды (subcommands) в режиме пользовательского интерфейса. Для каждого интерфейса настраиваются свои параметры. Соответственно, сначала необходимо определить интерфейс, на котором будут настраиваться параметры, а затем выполнить настройки этих параметров.
В этой статье рассмотрим три параметра интерфейса: скорость порта, дуплекс и текстовое описания.
Настройка скорости, дуплекса и описания
Интерфейсы коммутатора, поддерживающие несколько скоростей (10/100 и 10/100/1000), по умолчанию будут автоматически определять, какую скорость использовать. Однако вы можете указать параметры скорости и дуплекса с помощью подкоманд duplex {auto / full / half} и speed {auto| 10 | 100 | 1000}.
В большинстве случаев лучше использовать режим автосогласования (auto).Но существуют такие моменты, когда необходимо вручную изменить скорость и дуплекс. Например, необходимо установить максимально возможную скорость на соединениях между коммутаторами, чтобы избежать вероятности того, что автосогласование выберет более низкую скорость.
Подкоманда description<текстовое описание>позволяет добавить текстовое описание к интерфейсу (комментарий). Например, после изменения скорости и дуплекса на порту, можно добавить описание, объясняющее, почему вы это сделали. В примере 1 показан листинг команд для настройки дуплекса, скорости и описание.
Для начала настройки трех параметров необходимо вспомнить команды позволяющие перейти из пользовательского режима в режим глобальной конфигурации, а так же команды перехода в режим конфигурации и настройки интерфейса. Выше, показан пример использования команд duplex, speed и description. Данные команды вводятся сразу после команды interface FastEthernet 0/1, что означает, что настройки этих трех параметров применяются к интерфейсу Fa0/1, а не к другим интерфейсам.
Команда show interfaces status отображает детальную информацию, настроек произведенных в примере 1:
Разберем выходные данные из примера:
FastEthernet 0/1 (Fa0 / 1): выведено описание интерфейса (задается командой description). Также представлена информация о настройке скорости в 100Mb/s и выставлен режим интерфейса full duplex. В представленной в примере информации есть статус notconnect это означает, что интерфейс Fa0 / 1 в настоящее время не подключен (не подключен кабель) и не работает.
FastEthernet 0/2 (Fa0 / 2): данный интерфейс не настраивался. Отображаются настройки по умолчанию. Обратите внимание, на слова "auto" под заголовком speed и duplex это означает, что данный порт автоматически согласовывает обе настройки с портами других устройств. Этот порт также не подключен (не подключен кабель).
FastEthernet 0/4 (Fa0 / 4): Как и Fa0/2 порт имеет настройки по умолчанию. Данный порт завершил процесс автосогласования, поэтому вместо надписи "auto" под заголовками speed и duplex выводится информация a-full и a-100 (согласованные параметры speed и duplex). Символ "А" перед параметрами full и 100, означает, что указанные значения скорости и дуплекса были согласованы автоматически.
Одновременная настройка интерфейсов с помощью команды interface range
Далее в примере 2 показан способ, облегчающий настройку одних и тех же параметров на нескольких интерфейсах. Для этого используйте команду interface range. В примере 2 команда interface range FastEthernet 0/11-20 сообщает IOS, что следующая подкоманда(ы) применяется к интерфейсам в диапазоне от Fa0/11 до Fa0/20.
IOS действует так, как если бы вы ввели подкоманду под каждым отдельным интерфейсом в указанном диапазоне. Ниже показан фрагмент из вывода команды show running-config, который показывает настройки портов F0 / 11-12 . Из примера видно, что применяются одни и те же настройки на всем диапазоне портов. Для облегчения понимания часть листинга, удалено.
Друзья, сегодня речь пойдет о синтезе речи в Asterisk. Этот простой способ позволит вам озвучивать требуемое голосовое сообщение в структурах IVR или обычных приветствиях. Да где угодно. Профит этого решения:
Единый голос для всех аудио – файлов;
Кэширование и сохранение озвученных текстов, фраз в виде медиа - файлов, для последующего использования на Asterisk;
Получаем токен
Приступим. Прежде всего нужно получить API - токен на использование сервиса от Яндекс. Этот процесс расписан в статье по ссылке ниже (раздел Получение API - токена Yandex.SpeechKit):
Получение токена
Возвращайтесь с токеном и будем приступать к коду :)
Кодим!
Для начала создадим директорию /var/lib/asterisk/tts/ и дадим права. Там мы будем хранить текстовый файл, благодаря которому, сможем идентифицировать аудио – файлы по совпадению MD5 названия. Внутри файла будет фраза:
mkdir /var/lib/asterisk/tts/
chown asterisk:asterisk /var/lib/asterisk/tts/
chmod 775 /var/lib/asterisk/tts/
В зависимости от дистрибутива и вариантов установки IP – АТС Asterisk, звуковые файлы могут располагаться в другой директории. Вы можете самостоятельно поправить это в скрипте.
Использовать будем AGI приложение. Традиционно, комментарии к коду прикладываются:
#!/usr/bin/php -q
<?php
error_reporting(0); // выключаем ошибки, необязательно, нужно в процесcе дебага скрипта
require('phpagi.php');
$agi = new AGI();
$str = $agi->request['agi_arg_1']; //записываем в переменную текст, который необходимо озвучить
$str = iconv('cp1251', 'utf-8', $str); // конвертируем в кириллическую кодировку
$md5 = md5($str); //вычисляем md5 - хэш от переменной $str
$prefix = '/var/lib/asterisk/sounds/ru/custom/'; //устанавливаем директорию для файлов. Мы ее создавали по ходу движения
$filename = $prefix.$md5; //устанавливаем название файла(оно будет равно md5 текста)
$format = 'wav'; //устанавливаем формат получаемого файла от Яндекс
$quality = 'hi'; //устанавливаем качество
$speaker = 'oksana'; //выбираем голос. На момент написания статьи доступны женские голоса: jane, oksana, alyss и omazh и мужские голоса: zahar и ermil.
$emotion = 'evil'; // выбираем интонацию голоса, good — радостный, доброжелательный, evil — раздраженный, neutral — нейтральный (используется по умолчанию). Будем злее :)
$speed = '0.9'; // данный параметр отвечает за скорость (темп) речи, подбирается опытным путем на слух, в данном случае оптимальный
$key = 'Ваш_токен'; //ваш токен, который вы получили ранее.
if (!file_exists($filename.'.wav')) {
$qs = http_build_query(array("format" => $format,"quality" => $quality,"lang" => "ru-RU","speaker" => $speaker,"speed" => $speed,"key" => $key,"emotion" => $emotion, "text" => $str)); //формируем строку запроса
$ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer:
")));
$soundfile = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx); //запрашиваем файл
$file = fopen("file1.wav", "w"); //открываем файл для записи
fwrite($file, $soundfile); // пишем в файл данные
fclose($file); //закрываем файл
shell_exec('sox -t raw -r 48k -e signed-integer -b 16 -c 1 file1.wav -t wav -r 8k -c 1 '.$filename.'.wav'); //конвертируем файл под требования Asterisk и закидываем в директорию для аудио
shell_exec('chown asterisk:asterisk '.$filename.'.wav');
shell_exec('chmod 775 '.$filename.'.wav'); // даем файлу нужные пермишны;
shell_exec('rm -f file1.wav'); // удаляем файл, который создали в процессе обращения к API;
shell_exec('echo '.$str.' > /var/lib/asterisk/tts/'.$md5.'.txt'); // добавляем магии ;-) о ней ниже в тексте статьи.
}
$agi->exec('Playback',"custom/$md5"); //проигрываем файл звонящему.
Скачать скрипт синтеза речи
После загрузки файла, сохраните его с расширением .php
Сохраняем скрипт как texttospeech.php и закидываем его в директорию /var/lib/asterisk/agi-bin. После, даем последовательность следующих команд:
dos2unix /var/lib/asterisk/agi-bin/texttospeech.php
chown asterisk:asterisk /var/lib/asterisk/agi-bin/texttospeech.php
chmod 775 /var/lib/asterisk/agi-bin/texttospeech.php
Как вы могли заметить, скрипт настраивается. Голос, интонация, скорость речи, качество получаемого файла – подлежат корректировке для вашей задачи.
Схема работы всего процесса следующая:
Скрипт получает из диалплана текст по AGI и сохраняет в переменной;
Если у нас уже существует аудио – файл для заранее записанной фразы, мы отдаем в диалплан команду на воспроизведение. Если нет – обращаемся к API;
Скрипт отправляет запрос в сторону API Яндекса;
Происходит конвертация полученного аудио – файла в нужный формат;
Даем права файлу для воспроизведения на Asterisk и удаляем временный файл;
Делаем отметку о создании файла в служебный текстовый файл;
Воспроизводим файл;
А как заставить скрипт работать?
Очень просто. Открываем файл /etc/asterisk/extensions_custom.conf для редактирования и добавляем в него следующую запись:
[text_to_speech]
exten => s,1,Answer()
exten => s,2,AGI(texttospeech.php,"Привет! Это Мерион Нетворкс. Если ты слышишь это сообщение, значит все сделал правильно!")
Сохраняем изменения и прыгаем в FreePBX. Будем вызывать кастомный контекста из FreePBX. Для этого воспользуемся модулем Custom Destinations. Переходим по пути Admin → Custom Destinations и нажимаем Add Destination:
Настроили и сохранили. Наша задумка такова – человек звонит на наш номер, набирает 13 и попадает на синтезированное сообщение. Переходим в главный IVR и в секции IVR Entries добавляем следующее:
Звоним, проверяем. Работает :) Если хотите заменить фразу, которую нужно озвучить, просто поправьте ее в файле /etc/asterisk/extensions_custom.conf.