По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Для того, чтобы нормально пользоваться инструментом Terraform, нам понадобится текстовый редактор с плагином, понимающим язык разметки Terraform (HCL). Это необходимо для того, чтобы было удобно писать код для поднятия инфраструктуры. На самом деле, код можно писать в каком угодно текстовом редакторе, но наиболее удачно подходит текстовый редактор Atom. Для Windows установка очень простая. Идем на сайт www.atom.io, сайт автоматически определяет версию операционной системы и нажимаем на кнопку скачать. Дальнейшая инсталляция под операционную систему Windows очень простая - запуск файла и нажатие несколько раз кнопки Далее. В случае если мы хотим работать из-под операционной системы Linux, заходя на сайт мы видим, что сайт предлагает скачать нам установочные пакеты в вариации deb и rmp. Но возможно пойти нам и другим путем. Заходим на сайте в документацию, находим Atom Flight Manual. Далее выбираем с левой стороны Installing Atom, а вверху тип операционной системы. Далее мы видим описание инсталляций для разных ОС семейства Linux. Для Ubuntu и для CentOS. При инсталляции на Ubuntu: wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - Скачиваем ключ и помещаем в хранилище. sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' Обновляем список депозитарий командой apt update, а также обновляем сам репозиторий. Ну собственно и последующая инсталляция непосредственно самого текстового редактора Atom. sudo apt-get install Atom Инсталляция на CentOS в принципе аналогичная. Скачиваем и добавляем ключ. sudo rpm --import https://packagecloud.io/AtomEditor/atom/gpgkey sudo sh -c 'echo -e "[Atom] name=Atom Editor baseurl=https://packagecloud.io/AtomEditor/atom/el/7/$basearch enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packagecloud.io/AtomEditor/atom/gpgkey" > /etc/yum.repos.d/atom.repo' Теперь мы можем воспользоваться пакетным менеджером yum или dnf sudo dnf install Atom sudo dnf install atom-beta Или если установлен альтернативный пакетный менеджер yum или операционная система CentOS 7, можно скачать пакет в rpm формате https://atom.io/download/rpm и установить sudo yum install -y atom.x86_64.rmp sudo dnf install -y atom.x86_64.rpm После данных манипуляций у нас установится текстовый редактор Atom. Конечно, установка имеет смысл на машину с графическим интерфейсом пользователя. Его можно найти по зеленой иконке, как на скриншоте. Далее, самая интересная, часть данной статьи. Если мы просто вставим кусочек кода от TerraForm, то мы увидим, что он ничем не отличается от обычного текста. Все преимущества данного текстового редактора раскрываются в использовании плагинов для Terraform. Для установки плагина, который различает написанный код Terraform, нам необходимо зайти в Edit, в данном открывшемся меню найти Preferences. В следующем открывшемся окне выбираем Install. В правой части после данной операции появляется строка поиска для инсталляции дополнительных пакетов (Plugins). С помощью данного поиска находим пакет по запросу Terraform. Пакетов будет найдено достаточно много. Можно посмотреть описание и версию пакетов и сколько раз был скачен данный пакет. Я рекомендую выбрать пакет language-terraform. Для большинства данного пакета будет совершенно достаточно. Данный пакет дает не только красивую подсветку кода, но и много других функций. Еще для удобства работы можно установить terraform-fmt. Данный пакет не столь популярен, но за то он позволяет удобно форматировать код Terraform при написании. А именно, код будет выравниваться при нажатии сочетания клавиш Ctrl+S для сохранения изменений в файле. Для того, чтобы плагины начали работать, необходимо перезапустить текстовый редактор. И второй важный момент переименовать файл рабочий в файл с разрешением *.tf.
img
Если вы начинающий веб-разработчик, возможно вы уже знаете, как работает всемирная сеть, по крайней мере, на базовом уровне. Но когда начинаете кому-то объяснять принцип работы веб-сайта, то терпите неудачу. Что такое IP-адрес? Как работает модель «клиент-сервер» на самом деле? В наши дни есть достаточно мощные фреймворки, которые можно использовать в своих проектах. Настолько мощные, что начинающие разработчики легко могут запутаться в принципах работы веб. Базовый веб-поиск Начнем с того места, где мы все были раньше: введите «www.github.com» в адресную строку браузера и просмотрите загрузку страницы. С первого взгляда может показаться, что тут происходит какая-то магия. Но давайте заглянем глубже. Определение частей web Из-за обилия жаргонных слов, понимание работы интернета поначалу пугает. Но к сожалению, для дальнейшего погружения в тему, придется разобраться с ними. Клиент: Приложение, например, Chrome или Firefox, которое запущено на компьютере и подключено к Интернету. Его основная роль состоит в том, чтобы принимать пользовательские команды и преобразовывать их в запросы к другому компьютеру, называемому веб-сервером. Хотя мы обычно используем браузер для доступа к Интернету, вы можете считать весь ваш компьютер «клиентом» модели клиент-сервер. Каждый клиентский компьютер имеет уникальный адрес, называемый IP-адресом, который другие компьютеры могут использовать для идентификации. Сервер: Компьютер, который подключен к Интернету и также имеет IP-адрес. Сервер ожидает запросов от других машин (например, клиента) и отвечает на них. В отличие от вашего компьютера (т.е. клиента), который также имеет IP-адрес, на сервере установлено и работает специальное серверное программное обеспечение, которое подсказывает ему, как реагировать на входящие запросы от вашего браузера. Основной функцией веб-сервера является хранение, обработка и доставка веб-страниц клиентам. Существует множество типов серверов, включая веб-серверы, серверы баз данных, файловые серверы, серверы приложений и многое другое. Подробнее про сервера можно прочитать тут IP-адрес: Internet Protocol Address. Числовой идентификатор устройства (компьютера, сервера, принтера, маршрутизатора и т.д.) в сети TCP/IP. Каждый компьютер в Интернете имеет IP-адрес, который он использует для идентификации и связи с другими компьютерами. IP-адреса имеют четыре набора чисел, разделенных десятичными точками (например, 244.155.65.2). Это называется «логический адрес». Для определения местоположения устройства в сети логический IP-адрес преобразуется в физический адрес программным обеспечением протокола TCP/IP. Этот физический адрес (т.е. MAC-адрес) встроен в оборудование. Подробнее про IP-адрес можно прочитать тут Интернет-провайдер: Интернет-провайдер. Интернет-провайдер - посредник между клиентом и серверами. Для типичного домовладельца ИП обычно является «кабельной компанией». Когда браузер получает от вас запрос на переход к www.github.com, он не знает, где искать www.github.com. Это задание поставщика услуг Интернета - выполнить поиск DNS (системы доменных имен), чтобы спросить, на какой IP-адрес настроен сайт, который вы пытаетесь посетить. DNS: система доменных имен. Распределенная база данных, которая хранит соответствие доменных имен компьютеров и их IP-адресов в Интернете. Не беспокойтесь о том, как сейчас работает «распределенная база данных»: просто знайте, что DNS существует, чтобы пользователи могли вводить www.github.com вместо IP-адреса. Подробнее про DNS можно прочитать тут Имя домена: используется для идентификации одного или нескольких IP-адресов. Пользователи используют доменное имя (например, www.github.com) для доступа к веб-сайту в Интернете. При вводе имени домена в обозреватель DNS использует его для поиска соответствующего IP-адреса данного веб-сайта. TCP/IP: Наиболее широко используется протокол связи. «Протокол» - это просто стандартный набор правил для чего-либо. TCP/IP используется в качестве стандарта для передачи данных по сетям. Подробнее про TCP/IP можно прочитать тут Номер порта: 16-разрядное целое число, которое идентифицирует определенный порт на сервере и всегда связано с IP-адресом. Он служит способом идентификации конкретного процесса на сервере, на который могут пересылаться сетевые запросы. Хост: Компьютер, подключенный к сети - это может быть клиент, сервер или любой другой тип устройства. Каждый хост имеет уникальный IP-адрес. Для веб-сайта, как www.google.com, хост может быть веб-сервером, который обслуживает страницы для веб-сайта. Часто между хостом и сервером происходит какая-то путаница, но заметьте, что это две разные вещи. Серверы - это тип хоста - это конкретная машина. С другой стороны, хост может ссылаться на всю организацию, которая предоставляет службу хостинга для обслуживания нескольких веб-серверов. В этом смысле можно запустить сервер с хоста. HTTP: протокол передачи гипертекста. Протокол, используемый веб-браузерами и веб-серверами для взаимодействия друг с другом через Интернет. URL: URL-адреса идентифицируют конкретный веб-ресурс. Простой пример https://github.com/someone. URL указывает протокол («https»), имя хоста (github.com) и имя файла (чья-то страница профиля). Пользователь может получить веб-ресурс, идентифицированный по этому URL-адресу, через HTTP от сетевого хоста, доменное имя которого github.com. Подробнее про URL можно прочитать тут Переход от кода к веб-странице Теперь у нас есть необходимая база, чтобы разобраться, что происходит за кулисами, когда мы вводим в строку поиска адрес Github: 1) Введите URL-адрес в браузере 2) Браузер анализирует информацию, содержащуюся в URL. Сюда входят протокол («https»), доменное имя («github.com») и ресурс («/»). В этом случае после «.com» нет ничего, что указывало бы на конкретный ресурс, поэтому браузер знает, как получить только главную (индексную) страницу. 3) Браузер связывается с поставщиком услуг Интернета, чтобы выполнить DNS-поиск IP-адреса для веб-сервера, на котором размещен веб-сервер www.github.com. Служба DNS сначала свяжется с корневым сервером имен, который просматривает https://www.github.com и отвечает IP-адресом сервера имен для домена верхнего уровня .com. Получив этот адрес служба DNS выполняет еще один запрос на сервер имен, который отвечает за домен .com и запрашивает адрес https://www.github.com. 4) Получив IP-адрес сервера назначения, Интернет-провайдер отправляет его в веб-браузер. 5) Ваш браузер берет IP-адрес и заданный номер порта из URL (протокол HTTP по умолчанию - порт 80, а HTTPS - порт 443) и открывает TCP-сокет. На этом этапе связь между веб-браузером и веб-сервер наконец-то установлена. 6) Ваш веб-браузер отправляет HTTP-запрос на веб-сервер главной HTML-страницы www.github.com. 7) Веб-сервер получает запрос и ищет эту HTML-страницу. Если страница существует, веб-сервер подготавливает ответ и отправляет его обратно в браузер. Если сервер не может найти запрошенную страницу, он отправляет сообщение об ошибке HTTP 404 (тот самый Error 404 Not Found), которое означает «Страница не найдена». 8) Ваш веб-браузер берет HTML-страницу, которую он получает, а затем анализирует ее, делая полный обзор, чтобы найти другие ресурсы, которые перечислены в ней: это адреса изображений, CSS файлов, JavaScript файлов и т.д. 9) Для каждого перечисленного ресурса браузер повторяет весь указанный выше процесс, делая дополнительные HTTP-запросы на сервер для каждого ресурса. 10) После того, как браузер закончит загрузку всех других ресурсов, перечисленных на странице HTML, страница будет загружена в окно браузера и соединение будет закрыто. Пересечение Интернет-пропасти Стоит отметить, как информация передается при запросе информации. Когда вы делаете запрос, эта информация разбивается на множество крошечных порций, называемых пакетами. Каждый пакет маркируется заголовком TCP, который включает в себя номера портов источника и назначения, и заголовком IP, который включает в себя IP-адреса источника и назначения. Затем пакет передается через сеть Ethernet, WiFi или сотовую сеть. Пакет может перемещаться по любому маршруту и проходить столько транзитных участков, сколько необходимо для того, чтобы добраться до конечного пункта назначения. И пакеты передаются отнюдь не в том, порядке, в котором они сформировались. Например, первый пакет может прийти третьим, а последний первым. Нам на самом деле все равно, как пакеты туда попадут - важно только то, что они доберутся до места назначения в целости и сохранности! Как только пакеты достигают места назначения, они снова собираются и доставляются как единое целое. Так как же все пакеты знают, как добраться до места назначения без потери? Ответ: TCP/IP. TCP/IP - это двухкомпонентная система, функционирующая как фундаментальная «система управления» Интернета. IP означает Интернет-протокол; его задачей является отправка и маршрутизация пакетов на другие компьютеры с использованием заголовков IP (т.е. IP-адресов) каждого пакета. Вторая часть, протокол управления передачей (TCP), отвечает за разбиение сообщения или файла на меньшие пакеты, маршрутизацию пакетов к соответствующему приложению на целевом компьютере с использованием заголовков TCP, повторную отправку пакетов, если они теряются в пути, и повторную сборку пакетов в правильном порядке, как только они достигают другого конца. Получение финальной картины Но подождите - работа еще не закончена! Теперь, когда ваш браузер имеет ресурсы, составляющие веб-сайт (HTML, CSS, JavaScript, изображения и т.д.), он должен пройти несколько шагов, чтобы представить вам ресурсы в виде читабельной для нас с вами веб-страницы. В браузере имеется механизм визуализации, отвечающий за отображение содержимого. Обработчик рендеринга получает содержимое ресурсов в небольших фрагментах. Затем существует алгоритм синтаксического анализа HTML, который сообщает браузеру, как анализировать ресурсы. После анализа создается древовидная структура элементов DOM. DOM (Document Object Model) обозначает объектную модель документа и является условным обозначением для представления объектов, расположенных в HTML-документе. Этими объектами - или «узлами» - каждого документа можно управлять с помощью таких языков сценариев, как JavaScript. После построения дерева DOM анализируются таблицы стилей, чтобы понять, как определить стиль каждого узла. Используя эту информацию, браузер проходит вниз по узлам DOM и вычисляет стиль CSS, положение, координаты и т.д. для каждого узла. После того как в браузере появятся узлы DOM и их стили, он наконец готов соответствующим образом нарисовать страницу на экране. Результат – все, что вы когда-либо просматривали в интернете. Итог Интернет - это комплексная вещь, но вы только что закончили сложную часть! О структуре веб-приложений мы расскажем в нашей следующей статье.
img
Универсальная платформа маршрутизации (Versatile Routing Platform VRP) - это сетевая операционная система, применяемая в сетевых устройствах Huawei, таких как маршрутизаторы и коммутаторы. Он предоставляет пользователям этих сетевых устройств согласованную и мощную платформу конфигурации за счет стандартизации сетевых, пользовательских и управляющих интерфейсов. Основанная на модели TCP/IP, архитектура иерархической системы VRP объединяет возможности управления устройствами и сетями, технологии сетевых приложений и технологии передачи данных, такие как маршрутизация, многопротокольная коммутация по меткам (MPLS), виртуальная частная сеть (VPN) и технологии безопасности, с операционной системой в реальном времени. Чтобы гарантировать, что платформа конфигурации остается актуальной и актуальной для современных технологий, VRP эволюционировала от VRP1.0, впервые выпущенного в 1998 году, до VRP8.X, его последняя версия. Многие из сетевых устройств низкого и среднего уровня, которые в настоящее время используются в корпоративных сетях, используют VRP5.X. Далее мы будем рассматривать версию VRP5.12. VRP- Командная строка Командная строка VRP предназначена для настройки и управления сетевыми устройствами Huawei. Командная строка Командные строки VRP - это символьные строки, используемые для настройки функций и развертывания служб на сетевых устройствах Huawei. Командная строка состоит из ключевых слов и параметров. Ключевые слова - это одно или несколько слов, которые однозначно идентифицируют, соответствуют и обычно описывают инструкцию, выполняемую командной строкой, а параметры определяют данные, используемые в качестве входных данных для ключевых слов. Например, в командной строке ping ip-адрес (который проверяет подключение устройства), ping является ключевым словом, а ip-адрес представляет собой заданный пользователем параметр, такой как 192.168.1.1. Сетевые устройства Huawei обычно поставляются неконфигурированными по умолчанию, поэтому пользователь должен ввести командные строки в интерфейс командной строки устройства (CLI), чтобы настроить функциональность устройства. CLI CLI предоставляет средства взаимодействия с устройством. Через CLI вы можете вводить командные строки для настройки устройств. Командные строки VRP (их насчитывается тысячи), классифицируются по функциям и регистрируются в различных представлениях команд. Команда View CLI предоставляет несколько команд view, из которых наиболее часто используются команды view из режима пользователя, системы и интерфейса. Чтобы ввести и использовать командные строки в CLI, необходимо сначала получить доступ к пользовательскому режиму (как показано на рис. 1). Этот режим позволяет запрашивать основную информацию и состояние устройства и получать доступ к другим режимам, но не позволяет настраивать сервисные функции. Вы можете настроить сервисные функции и выполнить основные команды конфигурации в системном режиме (как показано на рис. 2), доступ к которому можно получить из пользовательского режима, выполнив команду system-view. Системный режим также позволяет получить доступ к другим режимам, таким как режим интерфейса (как показано на рисунке 3). В режиме интерфейса вы можете настроить параметры и службы для указанного интерфейса. Командная строка в каждом режиме содержит имя хоста устройства ("Huawei" на предыдущих рисунках), которое в режиме пользователя заключено в угловые скобки (. , .) и во всех других видах заключены в квадратные скобки ([]). В некоторых режимах командная строка может содержать дополнительную информацию (например, идентификатор интерфейса GigabitEthernet4/0/1 в предыдущем примере режиме интерфейса). Командный и пользовательский уровни Команды VRP классифицируются в зависимости от выполняемой ими функции: команды уровня 0 (уровень посещения) проверяют сетевое подключение, команды уровня 1 (уровень мониторинга) отображают состояние сети и базовую информацию об устройстве, команды уровня 2 (уровень конфигурации) настраивают службы для устройства, и команды уровня 3 (уровень управления) управляют определенными функциями устройства, такими как загрузка или выгрузка файлов конфигурации. Чтобы ограничить, какие команды может запускать пользователь, пользователям назначаются разные уровни пользователя. Всего доступно 16 пользовательских уровней, от уровня 0 до уровня 15. Уровень 0 является наиболее ограничительным, причем разрешающая способность увеличивается для каждого последующего уровня. По умолчанию уровни с 4 по 15 совпадают с уровнями 3, поэтому пользователи, которым назначены эти уровни, имеют одинаковые разрешения и могут выполнять все команды VRP. Однако пользовательские уровни могут быть настроены, если требуется более тонкая детализация управления. Например, вы можете повысить до уровня 15 уровень пользователя определенных команд, чтобы эти команды могли выполнять только пользователи, назначенные этому уровню. Однако изменение назначений по умолчанию может усложнить задачи по эксплуатации и обслуживанию и ослабить безопасность устройства. В таблице 1 приведено сопоставление по умолчанию между уровнями пользователя и команды. Таблица 1. Сопоставление уровней Пользовательский уровень Командный уровень Описание 0 0 Команды для диагностики сети (такие как ping и tracert) и удаленный вход (например, telnet) 1 0,1 Команды для обслуживания системы, такие как display. Конкретные команды display, такие display current-configuration и display saved-configuration, являются командами уровня управления (требуются пользователи уровня 3). 2 0,1,2 Команды для настройки сервиса, такие как команды маршрутизации 3-15 0,1,2,3 Команды для управления основными операциями системы, такими как файловые системы, загрузка по FTP, управление пользователями, настройка уровня команд и диагностика неисправностей Использование командных строк В этой части рассмотрим, как использовать командные строки VRP. Доступ к командному режиму Как уже упоминалось в первой части, пользовательский вид - это первый вид, отображаемый после загрузки VRP. Если отображается Huawei (а курсор справа от мигает), вы находитесь в режиме пользователя. В этом режиме вы можете запускать команды для запроса базовой информации и статуса устройства. Например, для настройки интерфейса необходимо получить доступ к системному режиму, а затем получить доступ к режиму интерфейса. Команды для этого - system-view и interface interface-type interface- number. Ниже показано, как получить доступ к режиму интерфейса GigabitEthernet 1/0/0 system-view [Huawei] [Huawei] interface gigabitethernet 1/0/0 [Huawei-GigabitEthernet1/0/0] Выход из командной строки Команда quit позволяет вам выйти из текущего режима и вернуться к режиму верхнего уровня. В предыдущем примере текущим режимом является режим интерфейса, а системным режимом является режимом верхнего уровня режим интерфейса. Выполнение команды quit в режиме интерфейса покажет следующее. [Huawei-GigabitEthernet1/0/0] quit [Huawei] Чтобы вернуться к режиму пользователя, снова введите команду quit. [Huawei] quit <Huawei> Иногда необходимо вернуться в пользовательский режим, не выполняя команду quit несколько раз. Команда return позволяет вам напрямую вернуться к режиму пользователя. [Huawei-GigabitEthernet1/0/0] return <Huawei> Вы также можете использовать сочетания клавиш Ctrl + Z в любом режиме, чтобы вернуться к режиму пользователя. Редактирование командной строки Вы можете ввести до 510 символов в командной строке. Однако, если вы заметите ошибку в длинной командной строке, перепечатывание 510 символов станет трудоемким. В таблице 2 перечислены общие функциональные клавиши, которые не чувствительны к регистру, для редактирования командных строк VRP. Обратите внимание, что курсор не может переместиться в подсказку (например, [Huawei-GigabitEthernet1 /0/0]), и подсказка также не может быть отредактирована. Таблица 2. Функциональные клавиши Клавиша Назначение Backspace Удаляет символ слева от курсора ← или Ctrl+B Перемещает курсор на один символ влево → или Ctrl+F Перемещает курсор на один символ вправо (только вправо до конца команды) Delete Удаляет символ, выделенный курсором (все символы, следующие за удаленным символом, сдвигаются на один пробел влево) ↑ или Ctrl+P Отображает последнюю введенную команду, которая была выполнена. Система хранит историю выполненных команд, позволяя отображать их по одной (нажимайте повторно для просмотра предыдущих команд) ↓ или Ctrl+N Отображает следующую самую последнюю команду в сохраненном списке истории Ввод сокращенных ключевых слов Окончание командной строки автоматически заполняет частично введенные ключевые слова, если система может найти уникальное совпадение. Например, вы можете ввести такие комбинации, как d cu, di cu или dis cu, и нажать Tab, и система автоматически отобразит команду display current-configuration. однако d c и dis c не возвращают совпадения, поскольку другие команды, такие как display cpu-defend, display clock и display current-configuration, также соответствуют этим частичным ключевым словам. Получение помощи Запоминание тысяч командных строк VRP может показаться сложной задачей. Знак вопроса (?) облегчает задачу. Вы можете ввести? в любой момент, чтобы получить онлайн помощь. Помощь классифицируется как полная или частичная. Полная справка, например, отображает список команд, доступных в текущем режиме. Ввод знака ? в пользовательском режиме отобразит следующее. Из списка вы можете выбрать, какая команда вам нужна. Например, ключевое слово display описывается как Display information. Это ключевое слово содержится в более чем одной команде, поэтому введите любую букву, чтобы выйти из справки, введите display и пробел, а затем введите знак?. В результате отобразится следующая информация. Из этого списка вы можете определить, какое ключевое слово связать с display. Например, при запуске команды display current-configuration отображаются текущие конфигурации устройства. Частичная помощь идеально подходит для тех случаев, когда вы уже знаете часть командной строки. Например, если вы знаете dis для display и для с current- configuration, но не можете запомнить полную командную строку, используйте частичную справку. Ввод dis и ? показывает следующее. Единственное ключевое слово, которое соответствует dis - это display. Чтобы определить вторую часть командной строки, введите dis, пробел, c и ?. Несколько ключевых слов начинаются с c; однако легко определить, что необходимая командная строка display current-configuration. Использование сочетаний клавиш Сочетания клавиш облегчают ввод команд. Предварительно определенные сочетания клавиш называются системными сочетаниями клавиш. Некоторые из часто используемых системных сочетаний клавиш перечислены в таблице 3. Таблица 3. Обычно используемые системные сочетания клавиш Клавиши Назначение Ctrl+A Перемещает курсор в начало текущей строки Ctrl+E Перемещает курсор в конец текущей строки Esc+N Перемещает курсор вниз на одну строку Esc+P Перемещает курсор вверх на одну строку Ctrl+C Останавливает работающую функцию Ctrl+Z Возвращает к виду пользователя Tab Обеспечивает завершение командной строки. Нажатие Tab после ввода частичного ключевого слова автоматически завершает ключевое слово, если система находит уникальное соответствие Системные сочетания клавиш нельзя изменить; тем не менее, вы можете определить свои собственные (известные как пользовательские сочетания клавиш). Определенные пользователем сочетания клавиш могут обеспечить дополнительное удобство, но могут конфликтовать с некоторыми командами - поэтому определение таких клавиш не рекомендуется.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59