По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Всем привет! Мы продолжаем рассказывать про операционную систему Cisco IOS, и сегодня рассмотрим какие команды можно использовать для просмотра информации об устройстве, а также для выявления неполадок (troubleshooting).
Основная команда, которая нам в этом поможет, это команда show и различные ключевые слова. Существует много различных вариантов этой команды, и чтобы получить список всех доступных в данном режиме или контексте команд следует использовать вопросительный знак “?” после show.
Switch# show ?
Типичная команда show может предоставлять информацию о конфигурации, работе и статусе частей коммутатора или маршрутизатора Cisco. Очень часто используемая команда show - это демонстрационные интерфейсы. Эта команда отображает статистику для всех интерфейсов на устройстве. Там будет показано состояния интерфейсов и протоколов, их использование, ошибки, MTU и прочее. Чтобы просмотреть статистику для определенного интерфейса, введите команду show interfaces, за которой следует конкретный тип интерфейса и номер слота или порта.
Например:
Switch# show interfaces fastethernet 0/1
И если эта команда кажется длинной, то ее можно сократить до такого вида:
Switch# sh int fa 0/1
Одной из наиболее часто используемых команд на коммутаторе или маршрутизаторе является show version.
Эта команда отображает информацию о текущей загруженной версии IOS, а также информацию об оборудовании и устройстве. Если вы подключены к маршрутизатору или удаленному коммутатору, команда show version является отличным средством быстрого поиска полезной сводной информации о конкретном устройстве, к которому вы подключены.
Из вывода этой команды можно получить следующую информацию:
Software version - версия программного обеспечения IOS (хранится во флэш-памяти);
Bootstrap version - версия Bootstrap (хранится в Boot ROM);
System up-time - время после последней перезагрузки;
System restart info - информация о перезапуске системы - способ перезагрузки (например, цикл питания, сбой);
Software image name - имя файла IOS, хранящееся во флэш-памяти;
Router type and processor type - номер модели и тип процессора;
Memory type and allocation - Тип и распределение ОЗУ;
Software features - Поддерживаемые протоколы /наборы функций;
Hardware interfaces - Интерфейсы, доступные на устройстве;
Configuration register - Устанавливает параметры загрузки, настройку скорости консоли и связанные параметры;
Если команда выводит больше данных, чем может отображаться на одном экране, в нижней части экрана появляется сообщение --More--. Когда появится строка --More--, нужно нажать пробел, чтобы просмотреть следующую часть вывода. Чтобы отобразить только следующую строку, нужно нажать клавишу Enter. Если нажать какую-либо другую клавишу, то вывод будет отменен.
В таком случае если выводится много информации можно использовать фильтры, которая поможет вычленить необходимую информацию из общего вывода. Для этого после команды show и ее аргумента нужно поставить символ “|” (pipe), указать фильтр и регулярное выражение, по которому будет произведен поиск.
Например:
Switch# show run | include ip dhcp pool
Где include это фильтр, а ip dhcp pool это регулярное выражение.
Использовать можно такие фильтры:
include – отобразит те строки из выдачи, в которых есть регулярное выражение;
exclude – отобразит все те строки из выдачи, в которых нет регулярного выражения;
begin – отобразит все строки, начиная со строки, где находится регулярное выражение;
section – отобразит раздел с регулярным выражением в названии;
Также рассмотрим другие часто используемые команды, которые могут быть полезны
show running-config Отображает содержимое текущего запущенного файла конфигурации
show startup-config Отображает сохраненную конфигурацию, расположенную в NVRAM
show ip interface Отображает статус IP протокола и его сервисов на всех интерфейсах. Для вывода краткой информации можно использовать команду show ip interface brief
show ip route Отображает таблицу маршрутизации роутера, где показаны все доступные сети, используемые протоколы маршрутизации и их метрики
show arp Показывает ARP таблицу
show mac-address-table Показывает таблицу mac адресов
show cdp neighbors Показывает соседние устройства Cisco, использующие протокол CDP
show spanning-tree Отображает информацию о протоколе STP
show vlan Показывает информацию о всех VLAN’ах в системе. Для краткой сводки можно использовать команду
show ip dhcp binding Отображает информацию о адресах, выданных DHCP сервером
show ip nat translations Показывает таблицу NAT трансляций
show history Показывает введенные ранее команды
show inventory Отображает информацию о продукте в виде UDI. UDI представляет собой комбинацию из трех отдельных элементов данных: идентификатор продукта (PID), идентификатор версии (VID) и серийный номер (SN).
show hardware Отображает информацию “железе”
show power Отображает информацию о питании
show processes Отображает активные процессы системы
show protocols Показывает используемые протоколы
show flash Показывает содержимое флеш памяти
Стоит заметить, что команды могут отличаться в зависимости от типа и модели устройства, а также версии IOS. Поэтому информацию о командах для конкретной модели лучше всего уточнять на сайте производителя.
В этой статье мы рассмотрим процесс установки и настройки режима Docker Swarm на сервере Ubuntu 16.04.
Docker Swarm является стандартным инструментом кластеризации для Docker, преобразующий набор хостов Docker в один последовательный кластер, называемый Swarm. Docker Swarm обеспечивает доступность и высокую производительность работы, равномерно распределяя ее по хостингам Docker внутри кластера.
Установка Docker Swarm:
Перед началом обновите Ваш системный репозиторий до последней версии с помощью следующей команды:
sudo apt-get update -y && sudo apt-get upgrade -y
После обновления следует выполнить перезагрузку системы. Необходимо еще установить среду Docker. По умолчанию Docker не доступен в репозитории Ubuntu 16.04, поэтому сначала необходимо создать хранилище Docker и начать установку с помощью следующей команды:
sudo apt-get install apt-transport-https software-properties-common ca-certificates -y:
Добавляем GPG ключ для Docker:
wget https://download.docker.com/linux/ubuntu/gpg && sudo apt-key add gpg
Добавляем репозиторий Docker и обновляем с помощью команды:
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" >> /etc/apt/sources.list sudo apt-get update -y
Установка среды Docker с помощью следующей команды:
sudo apt-get install docker-ce -y
После установки запустите службу Docker во время загрузки с помощью следующей команды:
sudo systemctl start docker && sudo systemctl enable docker
Для запуска Docker необходимы root права, а для других юзеров доступ получается только с помощью sudo. При необходимости запустить docker без использования sudo, есть возможность создать Unix и включить в него необходимых пользователей за счет выполнения следующих строк кода:
sudo groupadd docker && sudo usermod -aG docker dockeruser
Затем выйдя из системы, делаем вход через dockeruser.
sudo ufw allow 2376/tcp && sudo ufw allow 7946/udp && sudo ufw allow 7946/tcp && sudo ufw allow 80/tcp && sudo ufw allow 2377/tcp && sudo ufw allow 4789/udp
Затем перезагрузите брандмауэр, включив его при загрузке
sudo ufw reload && sudo ufw enable
Выполните перезагрузку “Докера”:
sudo systemctl restart docker
Создавая Docker Swarm кластер, необходимо определиться с IP-адресом, за счет которого ваш узел будет действовать в качестве диспетчера:
docker swarm init --advertise-addr 192.168.0.103
Вы должны увидеть следующий вывод:
Swarm initialized: current node (iwjtf6u951g7rpx6ugkty3ksa) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Проверяем его состояние:
docker node ls
Если все работает правильно, вы должны увидеть следующий вывод:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader
Проверка статуса Docker Swarm Cluster осуществляется следующим образом:
code> docker info
Вывод должен быть следующим:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.09.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
NodeID: iwjtf6u951g7rpx6ugkty3ksa
Is Manager: true
ClusterID: fo24c1dvp7ent771rhrjhplnu
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Force Rotate: 0
Autolock Managers: false
Root Rotation In Progress: false
Node Address: 192.168.0.103
Manager Addresses:
192.168.0.103:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.5MiB
Name: Manager-Node
ID: R5H4:JL3F:OXVI:NLNY:76MV:5FJU:XMVM:SCJG:VIL5:ISG4:YSDZ:KUV4
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Узел теперь настроен правильно, пришло время добавить его в Swarm Cluster. Сначала скопируйте вывод команды «swarm init» из вывода результата выше, а затем вставьте этот вывод в рабочий узел для присоединения к Swarm Cluster:
docker swarm join --token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377
Вы должны увидеть следующий вывод:
This node joined a swarm as a worker.
Теперь выполните следующую команду для вывода списка рабочего узла:
docker node ls
Вы должны увидеть информацию следующего вида:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader
snrfyhi8pcleagnbs08g6nnmp Worker-Node Ready Active
Docker Swarm Cluster запущен и работает, теперь можно запустить веб-сервис в Docker Swarm Mode. За счет следующей строки кода выполнится развертывание службы веб-сервера:
docker service create --name webserver -p 80:80 httpd
Приведенная выше строка создаст контейнер веб-сервера Apache и сопоставит его с 80 портом, позволив иметь полный доступ к необходимому веб-серверу Apache из удаленной системы. Теперь запускаем проверку работающего сервиса с помощью команды:
docker service ls
Вы должны увидеть следующий вывод:
ID NAME
MODE REPLICAS IMAGE PORTS
nnt7i1lipo0h webserver replicated 0/1 apache:latest *:80->80/tcp
Запустите службу масштабирования веб-сервера с помощью строки:
docker service scale webserver = 2
А также проверьте состояние с помощью команды:
docker service ps webserver
Вы должны увидеть следующий вывод:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
7roily9zpjvq webserver.1 httpd:latest Worker-Node Running Preparing about a minute ago
r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Preparing 58 seconds ago
Веб-сервер Apache работает. Теперь вы можете получить доступ к веб-серверу:
Служба веб-сервера Apache теперь распределена по двум узлам. Docker Swarm обеспечивает доступность вашего сервиса. Если веб-сервер отключается на рабочем узле, то новый контейнер будет запущен на узле менеджера. Для проверки доступности следует остановить службу Docker на рабочем узле:
sudo systemctl stop docker
Запустите службу веб-сервера с помощью команды:
docker service ps webserver
Вы должны увидеть следующую информацию:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ia2qc8a5f5n4 webserver.1 httpd:latest Manager-Node Ready Ready 1 second ago
7roily9zpjvq \_ webserver.1 httpd:latest Worker-Node Shutdown Running 15 seconds ago r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Running 23 minutes ago
С помощью данной статьи, вы смогли установить и настроить кластер Docker Swarm для ОС Ubuntu 16.04. Теперь вы можете легко масштабировать свое приложение в кластере до тысячи узлов и пятидесяти тысяч контейнеров без существенной потери производительности.
Технология TTS (text-to-speech) служит для преобразования текстовой информации в голос. Проще говоря, вы пишите – система проговаривает. В системах телефонной связи такая технология может быть полезна, если необходимо произнести баланс клиента или для озвучивания прочих голосовых сообщений. О том, как настроить TTS в FreePBX 13 с помощью командной строки Asterisk расскажем в статье.
Встроенный TTS
В FreePBX предусмотрен встроенный движок для TTS, который носит название filte. Движок хорошо отрабатывает английскую речь, но не умеет работать с русской. Вкратце ознакомимся с его настройкой. Тут все достаточно тривиально, переходим в Applications -> Text to Speech
Name - дайте имя для TTS механизма
Text - укажите произносимый системой набор слов
Choose an Engine - выберите движок для воспроизведения. По умолчанию, единственным доступным является filte
Destination - куда будет отправлен звонок, после проговаривания фразы указанной в поле Text
На этом этапе система произнесет набор слов по-английски. Писать методом транслитерации – плохая идея. Движок конечно произнесет указанные слова, но это вряд ли можно будет отправить в «продакшн». Итак, как же бесплатно настроить русскоговорящий TTS в FreePBX? Легко, с помощью системы синтеза речи festival
Русский язык FreePBX Festival
Установку будем производить на примере последней сборки FreePBX Distro на базе CentOS 6. Переходим к установке. Скачиваем исходные файлы
cd /usr/src
wget http://www.cstr.ed.ac.uk/downloads/festival/2.1/speech_tools-2.1-release.tar.gz
wget http://www.cstr.ed.ac.uk/downloads/festival/2.1/festival-2.1-release.tar.gz
Распаковываем архивы и инсталлируем необходимые файлы
tar zxvf festival-2.1-release.tar.gz
tar zxvf speech_tools-2.1-release.tar.gz
cd speech_tools
./configure
make
make install
cd ..
cd festival
./configure
make
make install
Система может потребовать установить пакет ncurses-devel. Сделайте это с помощью команды yum install ncurses-devel
Создаем переменную PATH, которая описывает путь до исполняемых файлов в директории festival/bin/
export PATH=$PATH:/usr/src/festival/bin/
Создадим директорию для хранения русскоязычных файлов. Для этого, последовательно в директории festival/lib/ создадим папки /voices и /russian:
mkdir /usr/src/festival/lib/voices/
mkdir /usr/src/festival/lib/voices/russian/
Скачиваем русскоязычный бандл:
wget http://sourceforge.net/projects/festlang.berlios/files/msu_ru_nsh_clunits-0.5.tar.bz2
Далее, распаковываем скачанный архив в созданную директорию:
tar xjf msu_ru_nsh_clunits-0.5.tar.bz2 -C ./festival/lib/voices/russian
Открываем через редактор vim файл /usr/src/festival/lib/languages.scm
vim /usr/src/festival/lib/languages.scm
В самом начале файла вставляем следующие строки:
(define (language_russian)
"(language_russian)
Set up language parameters for Russian."
(set! male1 voice_msu_ru_nsh_clunits)
(male1)
(Parameter.set 'Language 'russian)
)
В файле находим строки указанные ниже:
(language_british_english))
((equal? language 'british_english)
После указанных выше строк, добавляем следующее:
(language_russian))
((equal? language 'russian)
Далее открываем файл /usr/src/festival/lib/siteinit.scm и в самый конец добавляем строку ниже:
(set! voice_default 'voice_msu_ru_nsh_clunits)
Создаем кэш – директорию. Для этого, скопируйте команду ниже:
mkdir /var/lib/asterisk/festivalcache/ && chown asterisk:asterisk /var/lib/asterisk/festivalcache/
Открываем файл /etc/asterisk/festival.conf и добавляем следующие строки:
[main]
host=localhost
port=1314
usecache=yes
cachedir=/var/lib/asterisk/festivalcache/ \созданный выше файл
festivalcommand=(tts_textasterisk "%s" 'file)(quit)
Запускаем сервер festival
festival --server
Если все успешно, то вы увидите строки ниже:
[pbx@localhost ~]#festival --server
server Fri Aug 12 13:00:32 2016 : Festival server started on port 1314
Приступаем к тестам. Открываем файл /etc/asterisk/extensions_custom.conf и создаем тестовый диал – план как указано ниже:
[festival]
exten => s,1,Answer
exten => s,n,Festival('Привет. Все. работает.')
exten => s,n,Hangup
Сохраняем изменения. Для того, чтобы настроить воспроизведение из графического интерфейса FreePBX мы воспользуемся модулем Custom Destinations. Для его настройки перейдите во вкладку Admin -> Custom Destinations . Нажимаем на кнопку Add Destination
Разберем каждую из опций:
Target - укажите здесь festival,s,1, согласно созданному ранее диал-плану. Синтаксис заполнения следующий - [имя_контекста],[экстеншен],[приоритет]
Description - описание создаваемого правила
Notes - заметки. Если вы создаете много подобных правил, советуем создавать подробные заметки, чтобы избежать дальнейшей путаницы.
Return - если ваш контекст заканчивается командой Return (команда возвращает вызов в родительский контекст), то в поле Destination укажите назначение для вызова после отработки TTS.
По окончанию настроек нажмите Submit и затем Apply Config.
Теперь необходимо настроить маршрутизацию на кастомный контекст, который мы только что создали в FreePBX. Например, можно настроить маршрутизацию из IVR меню по нажатию цифры 5 на телефоне, как указано ниже:
Звоним на IVR и нажимаем 5 и слышим синтезированный голос. Параллельно смотрим на запущенный через CLI сервер Festival:
client(1) Fri Aug 12 13:00:54 2016 : accepted from localhost
client(1) Fri Aug 12 13:01:04 2016 : disconnected
client(2) Fri Aug 12 13:01:20 2016 : accepted from localhost
client(2) Fri Aug 12 13:01:20 2016 : disconnected
Google TTS в FreePBX
Еще пару лет назад можно было бы легко воспользоваться Google TTS для синтеза речи. Для этого надо было добавить движок во вкладке Settings -> Text To Speech Engines и отредактировать файл /var/lib/asterisk/agi-bin/propolys-tts.agi. Но, к сожалению, Google начал использовать капчу, чем перекрыл автоматизированный и бесплатный доступ к своему сервису.
Дополнительно про настройку TTS от Festival вы можете прочитать здесь.