Обновить

Администрирование

Сначала показывать
Порог рейтинга

Вебинар | Что нам стоит «лес» построить? Принципы работы с многодоменными инфраструктурами

13 мая, 15:00
МТС Линк

Продлеваем майские вебинаром о лесах! Недавно для РЕД АДМ вышло глобальное обновление: появилась возможность мигрировать сложные многодоменные ИТ-инфраструктуры на всех уровнях леса. Это уникальное решение для рынка отечественных систем управления. Слушателей вебинара ждет подробный обзор возможностей решения, а также демонстрация процесса миграции сложной ИТ-инфраструктуры.

План вебинара: максимум практики!

— Сайты VS поддомены: в чём разница? Рассмотрим особенности каждого подхода к построению инфраструктуры

— Демонстрация: ввод контролеров РЕД АДМ в корневой домен и поддомен на базе Microsoft Active Directory

— Подробнее о поддоменах: настройка отдельного поддомена на базе Службы каталогов РЕД АДМ

— Рассмотрим работу транзитивных доверительных отношений между поддоменами

— Оцениваем результаты трудов! Отключаем Microsoft Active Directory и наблюдаем за работой ИТ-инфраструктуры на базе РЕД АДМ

Спикер: Кристина Орлова, эксперт центра компетенций РЕД СОФТ

Регистрация >>

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Состоялся релиз РЕД ОС 8 для архитектуры процессоров ARM

Релиз для архитектуры процессоров ARM открывает новые возможности по созданию отечественных программно-аппаратных комплексов, а также расширяет совместимость РЕД ОС 8 с российскими аппаратными платформами.

Установочные образы под различные ARM-платформы уже доступны на сайте.

Поддержка процессоров на архитектуре ARM в РЕД ОС 8 позволит российским компаниям снизить зависимость от зарубежного программного обеспечения. Работоспособность РЕД ОС 8 уже подтверждена для российских процессоров Байкал-М и Байкал-S, сертификаты совместимости размещены на сайте РЕД ОС.

Помимо устройств от российских компаний, РЕД ОС 8 демонстрирует стабильную и корректную работу на процессорах серии Ampere Altra и Huawei Kunpeng.

Скачать образы
Читать подробности в пресс-релизе

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Лондон-Париж. Дедики там, блики крыш

Невозможно не вспомнить когда-то популярную песню. И невозможно не рассказать, что мы открыли целых 2 новых локации для выделенных серверов — Лондон и Париж.

Итак, в наличии по 5 сборок (но скоро могут разобрать, успевайте):

💂В Великобритании:

Минимальная: AMD EPYC 3151, 4 ядра, 2.7 ГГц, 8 потоков, 32 ГБ RAM, 1 ТБ NVMe — за 7 800 ₽/мес

Максимальная: AMD EPYC 7702, 64 ядра, 2.0 ГГц, 128 потоков, 512 ГБ RAM, 2 × 2 ТБ NVMe — за 27 300 ₽/мес

🥐 Во Франции:

Минимальная, как и у британских соседей.

Максимальная: 2 × AMD EPYC 7742, 64 ядра, 2.25 ГГц, 128 потоков, 512 ГБ RAM, 2 × 2 ТБ NVMe — за 48 100 ₽/мес

Пополнить коллекцию дедиков →

Теги:
Всего голосов 7: ↑7 и ↓0+9
Комментарии1

Хочу представить свою утилиту muenvsubst для шаблонизации файлов, которая позволяет заменить всем известный envsubst, но при этом обладает гораздо более богатыми возможностями.

Основные фичи:

  • помимо шаблонизации файлов умеет шаблонизировать входной поток (stdin), используя переменные среды и результат выводить в выходной поток (stdout). Также как это делает envsubst

  • поддерживает синтаксис Jinja2 и его основные фичи, такие как условия, циклы, переменные, инклюды, различные вспомогательные функции (например, из шаблона можно звать shell-скрипты)

  • написана на C++ и собрана в статический бинарник x86 размером 350КБ без каких-либо дополнительных зависимостей, что позволяет её включать прямо в репозиторий и использовать в пайплайнах

Ранее я использовал в своих пайплайнах для шаблонизации mustache реализованные на bash и это было довольно удобно, но сам синтаксис и возможности mustache довольно ограниченные, а тащить что-то серьезное типа Jinja2 на питоне мне очень не хотелось, так как это тянуло за собой жирный рантайм, поэтому я и написал эту утилиту.

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

Несколько примеров использования:

Простая подстановка переменной среды:

echo "Hello, {{ USER }}!" | muenvsubst

Шаблонизируем файл:

muenvsubst -i ./config.yml.j2 -o ./config.yml -d ./includes/

Использование переменных в шаблоне:

muenvsubst <<EOF
{%- set username = upper(USER) -%}
Hello, {{ username }}!
EOF

Использование флагов и условий:

USE_GREETER=yes muenvsubst << EOF
## if default(USE_GREETER, null) | toBool
Hello, {{ USER }}!
## else
Bye, {{ USER }}!
## endif
EOF

Использование циклов и разделение строки в список по символу:

USERS="John,Mark,Peter" muenvsubst << EOF
{%- for user in split(USERS,",") -%}
Hello, {{ user }}!
{%- endfor -%}
EOF

Использование инклюдов:

muenvsubst << EOF
## set USER="John"
## include "greeter.j2"
EOF

Файл инклюда greeter.j2:

Hello, {{ USER }}!
Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии3

В облаке Рег.ру появилась новая версия Fedora: что нового

В облаке Рег.ру обновили ОС Fedora до 42 версии. Новинка появилась на рынке 15 апреля 2025 — и вот, она и важные апдейты свежего релиза уже доступны нашим пользователям. 

Что нового появилось:

  • стабильное и свежее ядро Linux 6.14;

  • EOL 13.05.2026;

  • актуализация библиотек и версий приложений. Теперь доступны: Golang 1.24, Tcl/Tk 9.0, LLVM 20, PHP 8.4, Ruby 3.4, Django 5.x, Ansible 11 и другие.

Fedora 42 подходит для решения широкого спектра вопросов: от базовых бизнес-задач до управления сервером базы данных с высоким трафиком.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Адаптировали облако Рег.ру для запуска приложений на базе 1С

В облаке Рег.ру представили новый сервис — IaaS для работы с 1С. Теперь в облачной платформе есть все необходимые и готовые к работе вычислительные ресурсы для гибкого деплоя 1С. 

Облако 1С предлагает готовый кластер серверов, индивидуально настроенный под задачи пользователя. Высокую скорость работы облачной платформы подтвердили тестами Гилева и Hummer Test. Среди других особенностей продукта:

  • работает на базе современных процессоров AMD EPYC и Intel Xeon с производительными NVMe-дисками;

  • серверы в кластере резервируются для большей надежности и бесперебойной работы приложений.

Новая услуга будет полезна системным администраторам, аутсорс-разработчикам и компаниям, предоставляющим решения 1С по модели SaaS. А чтобы оценить и повысить производительность сервиса, можно воспользоваться услугой аудита и нагрузочного тестирования.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Привет, долгожданные новости из мира кубернетиса. Иногда надо посмотреть за подиками, как они там живут поживают, все ли (ре)стартанули или кто завис. В kui для этого сделана кнопка RELOAD. Но постоянно жмякать кнопку это же дро...во какое-то правда? Хватит это терпеть! Добавил команду watch it, теперь можно залипнуть на какое-то время, глядя как подики ползают туда-сюда.

watch it
watch it

Оно будет с паузой в 3 секунды (+ время на обновление) постоянно показывать вывод kubectl get ...

NAME                      READY   STATUS    RESTARTS   AGE
chi-cluster-dev01-0-0-0   2/2     Running   0          23d
chi-cluster-dev01-0-1-0   2/2     Running   0          23d
chi-cluster-dev01-0-2-0   2/2     Running   0          23d

Press x to stop watching this...

Нажмите x когда надоест.

Творите, выдумывайте, пробуйте!)

Теги:
Рейтинг0
Комментарии0

Дайджест Облака Рег.ру за март

Сколько релизов и обновлений случилось в марте в Рег.ру — делимся главными новостями нашей облачной платформы: 

  • Запустили комплексную защиту от кибератак Anti-DDoS и Anti-DDoS + WAF

Вместе с компаниями StormWall и Positive Technologies запустили решения для усиленной защиты критически важных ресурсов от кибератак. Anti-DDoS фильтрует вредоносный трафик и помогает блокировать DDoS-атаки на всех уровнях — от сетевого до прикладного (L3, L4 и L7). Anti-DDoS + WAF сочетает фильтрацию трафика и интеллектуальный WAF, который анализирует поведение пользователей и блокирует вредоносные действия.

  • Добавили Astra Linux 1.8

Теперь в облаке Рег.ру доступны новые версии — с Astra Linux SE 1.8.1 «Орел» и Astra Linux SE 1.8.1 «Воронеж». Добавили ядра Linux 6.1 и 6.6, автоматизировали обновления и улучшили профили настроек средств защиты информации. Сервер с новой версией можно потестировать на сайте.   

  • Перешли на обновленный Pay-As-You-Go учет

Продолжаем переход от модели хостинг-провайдера в части работы с облачными ресурсами. В облаке Рег.ру ввели новую систему учета ресурсов, о которой подробнее рассказали на сайте. Теперь стоимость услуг определяется типом и объемом заказанных ресурсов, независимо от тарифного плана. Еще мы выделили в отдельную услугу плавающий публичный IP-адрес, который входил в тариф и отдельно не учитывался. Теперь за него взимается фиксированная стоимость, но при желании от него можно отказаться.

  • Ускорили работу с облачной аналитикой в 2 раза

Совместно с IT-компанией «Фабрика Данных» провели высоконагруженные вычисления с Big Data и ускорили работу с облачной аналитикой. Для своих задач компания использует наши облачные серверы с GPU. Уровень отказоустойчивости сервиса достигает 100%. Также почти на четверть повысили точность принятия решений при работе с аналитическими сервисами. Подробнее о результатах проекта рассказываем на сайте.

Ждем, что нового принесет апрель — поделимся с вами!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Рег.ру ускорил работу с облачной аналитикой в 2 раза

В облаке Рег.ру совместно с компанией «Фабрика Данных» провели высоконагруженные вычисления с Big Data и ускорили работу с облачной аналитикой. Делимся результатами проекта.

Компания «Фабрика Данных» занимается работой с высоконагруженными проектами: аналитикой данных, выявлением трендов и мониторингом спроса в областях FMCG, производства, финансов и др. С помощью ее продуктов можно получить персонализированные рекомендации по управлению ассортиментом товаров, ценообразованию и маркетинговым стратегиям. Для своих задач компания использует облачные серверы с GPU в Рег.ру. Рассказываем, каких результатов это помогло достичь:

  • ускорили работу с облачной аналитикой в 2 раза;

  • 100% — такой уровень отказоустойчивости сервиса обеспечили;

  • почти на четверть повысили точность принятия решений при работе с аналитическими сервисами.

Подробнее о результатах проекта читайте на сайте.

А чтобы запустить и протестировать собственные проекты с высоконагруженными задачами, воспользуйтесь облачными серверами с GPU от Рег.ру.

Сервис оснащен двумя типами видеокарт NVIDIA: А5000 24Гб и А100 80Гб и подходит для выполнения ресурсоемких задач: для работы с AI и ML, графикой и видео, 3D, VDI и др.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Привет, все знают(?) что данные в скрипт можно передать через аргументы, как-то так:

$ cat test
#!/bin/bash
var=$1
echo $var

$ ./test bla
bla

Но в какой-то момент аргументов становится слишком много, а так чешется всунуть что-то еще)
Куда всунуть? Как? В каком порядке? Сначала сунуть это, потом то? Городить гетопс?
В этом случае бывает удобно использовать переменные окружения!

$ cat test
#!/bin/bash
var1=$1
var2=$2
var3=$3
var4=$4
var5=$5

echo $var1 $var2 $var3 $var4 $var5 $one_more_var

$ one_more_var=ble ./test
ble

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии3

Дайджест Облака Рег.ру за февраль

Февраль в Облаке Рег.ру стал месяцем обновлений KaaS (Kubernetes as a Service). Рассказываем о главных продуктовых релизах нашей облачной платформы:

  • Обновили Kubernetes
    За месяц мы выпустили много важных релизов и фич в KaaS: добавили операцию добавления, удаления и переименования группы, а также операцию изменения количества нод для кластеров. Увеличили лимит на количество групп и нод до 10, добавили операцию смены тарифа группы нод и подключили новую версию Kubernetes 1.30.8. Как заказать и управлять услугой, читайте на сайте.

  • Запустили новое меню на сайте
    Улучшили навигацию, распределили продукты по категориям, а также добавили раздел с информацией по предустановленным ОС и приложениям. Решения бизнес-задач в облаке теперь расположены в отдельной вкладке, а документацию, блог, инструкции и много другой полезной информации можно найти в разделе «Ресурсы». Как выглядит новое меню, смотрите на сайте. 

  • Получили сертификаты ISO
    Мы прошли сертификацию по требованиям международного стандарта ISO/IEC 27001:2013 в области информационной безопасности. Теперь все процессы по управлению и обеспечению кибербезопасности внутри нашей компании соответствуют лучшим мировым практикам. Также мы получили сертификаты ISO 9001:2015 и ISO/IEC 20000-1:2018, которые подтверждают высокий уровень менеджмента качества и комплексный подход компании к управлению IT-сервисами.

  • Отметили годовщину выхода DBaaS из беты
    В феврале нашему сервису DBaaS исполнился год с момента выхода из статуса βeta. За это время мы обновили версии PostgreSQL, добавили возможность кастомизировать настройки кластеров под их собственную нагрузку, обновили список доступных расширений, внедрили опцию выбора локали, расширили возможности управления доступом для пользователей кластеров баз данных и многое другое.

Следите за нашими новыми обновлениями!

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Привет, иногда хочется утащить из скрипта переменные или функции. Это можно легко сделать используя source. Но есть заковыка. Скрипт-источник будет выполнен, что не всегда удобно. Пример:

$ cat test
#!/bin/bash

var1=bim
var2=bom

echo you should not see this $var1 $var2

Пробуем засорсить:

$ var1= var2=; . ./test; echo $var1 $var2
you should not see this bim bom
bim bom

Мы получили вожделенные переменные но при этом выполнился нежелательный код. Как этого избежать? Можно немного модифицировать скрипт:

$ cat test
#!/bin/bash

var1=bim
var2=bom
[[ $1 == only_vars ]] && return
echo you should not see this $var1 $var2

Теперь если сорсить скрипт с параметром only_vars, нежелательный код будет опущен, пробуем:

$ var1= var2=; . ./test only_vars; echo $var1 $var2
bim bom

Важно использовать именно return, exit закроет текущую оболочку.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Привет, когда смотришь логи подов через kubectl и вдруг у пода оказывается несколько контейнеров, kubectl logs ... завершается ошибкой:

error: a container name must be specified for pod pod-name-0, choose one of: [...]

Хватит это терпеть! Мой kui идет на помощь! Добавил команду logs all она показывает логи сразу всех контейнеров без необходимости выбора!

смотри все логи сразу
смотри все логи сразу

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Ближайшие события

Привет, все знают как прочитать содержимое файла в линукс терминале(?), для этого используется cat:

$ cat file
one
two
three

Но иногда возникает необходимость прочитать файл с конца, задом наперед. Как это сделать? Tac!

$ tac file
three
two
one

Для тех кто в танке tac это cat наоборот.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 6: ↑6 и ↓0+7
Комментарии0

Привет! Подкрутил немного анимацию spinner'а, теперь выглядит так:

бынь-бынь
бынь-бынь

Spinner - это небольшой скриптик чтобы заполнить пустоту экранного пространства во время работы какого-нибудь долгого процасса, не выводящего ничего. Работает как-то так:

$ ./spinner sleep 5

Please wait [0:0:3] (* )  ( *)

Ну и оно там вот так пульсирует, быньк-быньк)

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 10: ↑10 и ↓0+15
Комментарии0

Привет, часто в скриптах встречаю бесполезное использование кавычек, вот такое вот:

var_b="$var_a"
var_c="$(...)"

Понятно с какой целью это делается, типа вдруг дам пробелы и оно сломается, давайте посмотрим сломается или нет:

$ echo $var_a
1 2

$ var_b=$var_a
$ echo $var_b
1 2

$ var_c=$(echo 3 4)
$ echo $var_c
3 4

Вроде не сломалось и без кавычек все прекрасно уместилось в переменные.
Кавычки нужны только для "склеивания" данных или переменных:

$ var_a="1 2"
$ echo $var_a
1 2

#а без кавычек:
$ var_a=1 2
2: команда не найдена

#и с переменными:
var_a="$var_b $var_c"

#без кавычек:
$ var_a=$var_b $var_c
3: команда не найдена

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии4

Чёрная пятница 2024 в Облаке Рег.ру

Начинаем Чёрную пятницу и дарим бонусные 500 рублей на облачный счёт Рег.ру при пополнении баланса от 500 рублей. Успейте воспользоваться бонусом до 2 декабря!

Как получить бонус:

  1. Создайте учётную запись или войдите в уже существующую в личном кабинете Облака Рег.ру;

  2. Активируйте промокод по ссылке — в ЛК отобразится подтверждение успешной активации;

  3. Внесите на баланс сумму от 500 рублей в период действия акции;

  4. Дополнительные 500 рублей автоматически зачислятся на ваш облачный счёт.

Есть способ проще: при заказе услуги просто введите промокод BLACKFRIDAY2024 в соответствующее поле. 

500 рублей — это много или мало?

Рассказываем, на какие облачные услуги можно потратить бонусные рубли. Спойлер: получается выгодно. 

500 рублей в Облаке:

  • 1 месяц работы Производительного сервера (базовая конфигурация)

  • 2 недели работы кластера Базы Данных

  • 5 часов работы сервера с GPU

1000 рублей в Облаке:

  • 2 месяца работы Производительного сервера (базовая конфигурация)

  • 1 месяц работы кластера Базы Данных

  • 10 часов работы сервера с GPU

  • 1 месяц работы Высокочастотного сервера

  • 1 неделя работы кластера Kubernetes

Подробные условия акции — по ссылке, а протестировать и заказать облачные услуги Рег.ру можно на сайте

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Приветствовывою, айтишники! Закончил ФСПО тогда еще МГАПИ факультета "Вычисчлительные машины, системы, комплексы и сети" в 2003 г., переписав старого диплома за 50$, прогуливовывоя лекцииев компьютерном клубе по соседства, гоняя кваки =) Но ведь никогда не поздно исправиться. Пост посвящается всем преподавателям математики, у которых я когда-либо учился. Приведу цитат Спасителя:

Евангелие от Матфея 10:8

"Даром получили, даром давайте"

Евангелие от Матфея 25:14-30

«Как человек, который, отправляясь в чужую страну, призвал рабов своих и поручил им имение свое: и одному дал он пять талантов, другому два, иному один, каждому по его силе; и тотчас отправился.
Получивший пять талантов пошел, употребил их в дело и приобрел другие пять талантов; точно так же и получивший два таланта приобрел другие два; получивший же один талант пошел и закопал его в землю и скрыл серебро господина своего.
По долгом времени, приходит господин рабов тех и требует у них отчета.
И, подойдя, получивший пять талантов принес другие пять талантов и говорит: господин! пять талантов ты дал мне; вот, другие пять талантов я приобрел на них. Господин его сказал ему: хорошо, добрый и верный раб! в малом ты был верен, над многим тебя поставлю; войди в радость господина твоего.
Подошел также и получивший два таланта и сказал: господин! два таланта ты дал мне; вот, другие два таланта я приобрел на них. Господин его сказал ему: хорошо, добрый и верный раб! в малом ты был верен, над многим тебя поставлю; войди в радость господина твоего.
Подошел и получивший один талант и сказал: господин! я знал тебя, что ты человек жестокий, жнешь, где не сеял, и собираешь, где не рассыпал, и, убоявшись, пошел и скрыл талант твой в земле; вот тебе твое. Господин же его сказал ему в ответ: лукавый раб и ленивый! ты знал, что я жну, где не сеял, и собираю, где не рассыпал; посему надлежало тебе отдать серебро мое торгующим, и я, придя, получил бы мое с прибылью; итак, возьмите у него талант и дайте имеющему десять талантов, ибо всякому имеющему дастся и приумножится, а у неимеющего отнимется и то, что имеет; а негодного раба выбросьте во тьму внешнюю: там будет плач и скрежет зубов.
Сказав сие, возгласил: кто имеет уши слышать, да слышит!»

По сему представляю Вам платформы для творчества: представьте себе организацию вычислителя, состоящего из замкнутой цепочки с тремя «ситами»: первое отсеивает условно четные числа, второе — нечетные (или сами придумовывойте устроивовыванье у регистрации памяти) , а третье выполняет роль, возвращающего процесс к первому ситу после полного прохождения всей цепочки. Иными словами, у нас есть три переменные: первая кодирует аргумент, вторая — условие равенства, а третья — механизм возврата. Советовал бы сразу проассемблирить оригинальною вариативность логики троичного кодирововываньи на уровень ниже. Творите, ибо кто имеет уши слышать, да слышит! =)

От Матфея святое благовествование 7:24-27

Итак всякого, кто слушает слова Мои сии и исполняет их, уподоблю мужу благоразумному, который построил дом свой на камне; и пошел дождь, и разлились реки, и подули ветры, и устремились на дом тот, и он не упал, потому что основан был на камне. А всякий, кто слушает сии слова Мои и не исполняет их, уподобится человеку безрассудному, который построил дом свой на песке; и пошел дождь, и разлились реки, и подули ветры, и налегли на дом тот; и он упал, и было падение его великое. 

Иисус ответил ему: «Если хочешь достичь совершенства, пойди и продай всё, что имеешь, раздай бедным и обретёшь сокровище на небесах. Тогда приди и следуй за Мной».

«Удобнее верблюду пройти сквозь игольные уши, нежели богатому войти в Царствие Божие»>

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Пятница, вечер, а я все продолжаю тыкать свой kui в ноды кубернетиса.

Node pods
Node pods

Натыкал такое, добавил две новые команды: Node pods и Top node pods. Первая позволяет посмотреть все поды ноды. А вторая сделать топ поды ноды.

И если поды ноды kubectl умеет показывать из коробки, как-то так:

kubectl get po -A --field-selector spec.nodeName=<node_name>

То с топами подов нодов пришлось немного повозиться, kubectl не может сам сделать топ поды ноды, говорит такое:

kubectl top po -A --field-selector spec.nodeName=<node_name>
Error from server (BadRequest): "spec.nodeName" is not a known field selector: only "metadata.name", "metadata.namespace"

Пришлось ему немного помочь, сначала я запомнил поды ноды в переменную np

np=$(
   kubectl get po -A --field-selector spec.nodeName=<node_name> | \
   awk '{print $2}'
)

Потом сделал топ всех подов и грепнул поды ноды

kubectl top po -A | grep -F "$np"

И еще там были сопутствующие изменения и вот это вот все.

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 4: ↑3 и ↓1+5
Комментарии0

Привет, снова я со своим kui'ем!)

top nodes
top nodes

Позанимался немного с нодами и подумал что удобно было бы выбирать ноды из вывода kubectl top no, добавил это. Команда (top) доступна на первом шаге (выбор кластера) и через "быстрые команды".

Творите, выдумывайте, пробуйте!)

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии2