По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Управление временем, в любой операционной системе, очень тесно связанно с понятием часовой зоны. Ранее мы рассказывали про работу с утилитой настройки часовой зоны tzselect. В данной утилите с помощью мастера настраивали зону. Но, по сути, утилита нам выдала только переменную для настройки и описание, как настроить для постоянного использования. Можно пойти несколькими путями: Первый путь: TZ=’Europe/Moscow’ - задать переменную export TZ – экспортировать данную переменную. Для того, чтобы применились параметры нужно перелогинится или перезагрузиться. И после этого мы можем посмотреть текущую TZ (timezone) в файле - cat /etc/timezone Вывод будет таким: Europe/Moscow Второй путь это использовать утилиту timedatectl: timedatectl list-timezones - смотрим доступные временные зоны sudo timedatectl set-timezone Europe/Moscow Значение времени в операционных системах определяется 4 частями: Значение времени Стандарт времени или универсальное время Часовой пояс Переход на летнее время Для любой операционной системы есть 2 вида часов – это системные время, которое работает в рамках операционной системы с кучей параметров и аппаратные часы, работа которых определяется схемой на материнской плате и поддерживаются эти часы в работе, благодаря батарейке на материнской плате. Аппаратные часы после включения сервера или компьютера передают свое значение времени операционной системе, а далее система уже сама работает с часами. Аппаратные часы по факту нужны только для старта операционной системы. В настоящее время этот момент стал не столь важным, т.к. практически все сервера имеют доступ в интернет и могут со специальными сайтами синхронизировать время. В случае работы операционной системы на виртуальной машине, время синхронизируется с материнской машиной. Как мы в прошлой статье уже рассматривали, есть утилита для управления и изменения системного времени - date, а есть утилита hwclock для того, чтобы посмотреть аппаратное время. Для работы данной утилиты необходимы права суперпользователя - sudo hwclock Вот такой вывод получается, у нас в примере виртуализация на ESXI vmware и виртуализация позволяет синхронизировать часы дочерней операционной системы с аппаратными часами материнского сервера. В вашем же случае, если операционная система будет развернута на Virtualbox, то синхронизации этой происходить не будет (только при старте виртуальной машины) и будет отображаться разница во времени в результате вывода команды. Далее операционная система виртуальной машины и материнского хоста идут независимо друг от друга. Хотелось бы отметить, что время важно не только для самой операционной системы, но и так же для взаимодействия с другими серверами, например, при использовании авторизации с помощью протокола Kerberos, в котором сервис генерирует токены опираясь на метку времени в операционной системе и, если будет слишком большое расхождение между серверами, токен не будет принят. Исходя из этого команду hwclock можно использовать и для установки времени. sudo hwclock --set --date=[”нужное_время”] – нужное время задаем в виде dd/mm/yyyy hh:mm То есть мы можем задать любое аппаратное время. Синхронизация пройдет только при старте операционной системы в нашем случае. Для синхронизации времени одних, часов с другими необходимо выполнить команду sudo hwclock -w. Но в таком формате синхронизировать время не удобно, в настоящее время практически на всех серверах используется автоматическая синхронизация времени по протоколу NTP. Данный протокол, обеспечивает синхронизацию системного времени с удаленным сервером в интернете. NTP протокол на транспортном уровне работает, через UDP на 123 порту. В интернете есть такой проект, как NTP Pool Project у которого есть сервера точного времени. Его страничка https://www.ntppool.org/ru/, по данной страничке можно подобрать ближайший к вам сервер точного времени и сделать настройку на него своего сервера или группы серверов. Вот сервера, актуальные для России: server 0.ru.pool.ntp.org server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org Для разовой синхронизации можно использовать следующую утилиту, предварительно установив ее: sudo ntpdate [адрес_сервера] В нашем случае получится следующее:sudo ntpdate 0.ru.pool.ntp.org В результате время синхронизировалось, и утилита показала расхождение, которое было. Теперь настроим автоматическую синхронизацию времени для этого необходимо установить ntpd демон. Делается это стандартным способом. sudo apt-get install ntp -y И отредактировать файл /etc/ntp.conf. Данный демон умеет и сам раздавать время в сети, мы можем настроить другие сервера на синхронизацию с ним, но сейчас необходимо просто настроить синхронизацию текущего сервера с временем сервера в интернете - sudo nano /etc/ntp.conf. Добавляем сервера в файл, сохраняем и перезапускаем демона - sudo service ntp restart. И мы можем посмотреть с какими серверами теперь наш сервер может синхронизироваться: ntpdq -pn Получим вот такой вывод сервером с которыми у нас будет происходить синхронизация.
img
Если вам не терпится попробовать Android, то не обязательно использовать весь компьютер для выполнения этой задачи, лучше всего запустить его с помощью VirtualBox. Его довольно легко настроить, и он предоставит вам полный доступ к Android за несколько минут. Для начала вам понадобится несколько вещей: VirtualBox: загрузите и установите VirtualBox, если у вас его еще нет - он доступен для Windows, macOS и Linux. Android x86 ISO: вам нужно скачать Android x86 ISO для любой версии Android, которую вы хотели бы попробовать. Мы будем использовать Android 6.0 (Marshmallow), она является наиболее стабильной версией. Прежде чем начать, я также рекомендую убедиться, что в BIOS вашего ПК опции виртуализации включены. В противном случае вы будете сталкиваться с множеством проблем позже, когда все будет работать не так, как должно. Если у вас все это есть, то вы готовы начать. Как создать виртуальную машину для Android Запустите VirtualBox и нажмите кнопку «Создать» (New), чтобы создать новую ВМ. Назовите ВМ как хотите, затем выберите «Linux» в качестве типа и «Linux 2.6 / 3.x / 4.x (32- bit)» как версию. Нажмите кнопку "Далее". Что касается памяти, я бы выделил ей 2048 МБ, особенно если вы используете 32-разрядную версию Android (она больше ничего не сможет обработать). Если вы используете 64-битную сборку, не бойтесь использовать столько памяти, сколько хотите. Как только вы установите количество памяти, нажмите Далее. Нажмите «Создать» (Create), чтобы начать сборку вашей ВМ. Для типа жесткого диска оставьте его установленным как VDI. Оставьте размер жесткого диска установленным как «Динамически распределенный», что позволит виртуальному жесткому диску расти по мере необходимости. На следующем шаге вы можете выбрать объем хранилища, на котором вы хотите разместить ВМ - даже если она будет динамически изменяться, ей не будет позволено быстро увеличиваться определенного вами здесь. Выберите любой размер, который будет работать лучше для вашей системы. Я оставлю 8 ГБ. Наконец, нажмите кнопку «Создать» (Create). Пуф! Ваша новая ВМ готова к использованию. Как установить Android на виртуальную машину Когда ваша ВМ полностью настроена, выделите её и нажмите Старт сверху. Когда машина запустится, укажите Android, который вы загрузили. Возможность выбора должна появиться, как только вы запустите его, но, если нет, нажмите «Устройства» -> «Оптические приводы» -> «Выберите образ диска» (Devices -> Optical Drives -> Choose Disk Image) и выберите свой Android ISO образ. Затем используйте ВМ -> Перезапустить (Machine -> Reset), чтобы перезапустить виртуальную машину. ПРИМЕЧАНИЕ. Если щелкнуть на окно VirtualBox, оно автоматически будет использовать мышь и клавиатуру. Чтобы прекратить использование мыши и клавиатуры, просто нажмите правую клавишу Ctrl на клавиатуре. Как только виртуальная машина загрузит ISO, используйте клавиатуру, чтобы прокрутить вниз до «Install» и нажмите Еnter. Это запустит установщик Android. Выберите «Создать/Изменить» (Create/Modify Partitions). На экране GPT просто выберите «Нет». На экране утилиты диска выберите «Новый» (New). Создайте основной диск (Primary) и разрешите ему использовать все пространство виртуального жесткого диска, которое вы выбрали ранее. В этом случае это 8 ГБ. Это должно быть выбрано по умолчанию. Нажмите Enter на опции «Bootable», чтобы сделать раздел загрузочным, затем выберите «Write». Нажмите Enter. Вам нужно будет ввести «Да» (Yes) и нажать Enter на следующем экране, чтобы убедиться, что вы хотите записать таблицу разделов на диск. По завершении выделите параметр «Выход» (Quit) и нажмите Enter. Выберите раздел, который вы только что создали для установки Android, и нажмите Enter. Выберите «ext4» для форматирования раздела. Выберите «Да», и нажмите Enter на следующем экране, чтобы подтвердить. Выберите «Да» (Yes), чтобы установить загрузчик GRUB. Выберите «Да» (Yes), чтобы перезаписать /system folder. После того, как все закончится, вы можете перезагрузить или сбросить Android, но не забудьте сначала размонтировать файл ISO. В противном случае он просто загрузится обратно в установщик! Использование Android в VirtualBox Процесс установки довольно прост и беспроблемен - вы сможете настроить это, как и любое другое устройство Android, за исключением одного исключения: вы не включаете Wi-Fi. Виртуальная машина будет использовать подключение вашего компьютера. Так что да, просто зайдите и закончите настройку. Это не самый быстрый способ запуска приложений Android на вашем компьютере - BlueStacks работает быстрее, если все, что вам нужно, это запустить одно или два приложения на вашем ПК с Windows. Тем не менее, Android-x86 обеспечивает доступ к полной системе Android на виртуальной машине. Это отличный способ познакомиться со стандартной системой Android или просто поэкспериментировать с ней, как если бы вы экспериментировали с виртуальной машиной, работающей под управлением любой другой операционной системы.
img
Продолжаем рассказывать про Terraform. Предыдущая статья тут. В данной статье мы разберем динамичные блоки кода в Terraform, которые можно использовать в своей работе. Данный функционал значительно облегчает написание кода Terraform с помощью которого мы управляем сервисами Amazon. В статье будет описан сценарий с генерацией кода Terraform. Данный функционал был добавлен в terraform 0.12 версии. Для работы создадим новую директорию, можно путем копирования из предыдущего урока. Директорию назовем lesson-5. Для написания кода мы по-прежнему используем текстовый редактор Atom. Мы можем создать файлик с именем DynamicSecurityGroup.tf или переименуем существующий webserver.tf если вы добавили папку путем копирования. Если вы создавали путем копирования отредактируем файл, убрав строчки, которые создают веб-сервер. Удаляем. Теперь мы начнем писать код Terraform, чтобы у нас появилась динамическая группа безопасности. В прошлой статье мы прописывали 2 правила. Данные правила открывали нам порты 80 и 22, аналогично можно прописать, чтобы открывался порт 443 ну или любой другой, который нам необходим для корректного инстанса и работоспособности сервиса. А теперь представим, что нам необходимо открыть еще 20 разных портов. Можно сделать это с помощью copy-paste, т.е. копированием и вставкой уже существующих блоков кода с редактированием протокола и номеров портов. В terraform версии 0.12 добавили функционал и назвали его DynamicBlocks, что позволит генерировать кусочки кода в Terraform. Добавим следующую часть кода: dynamic "ingress" { for_each = ["80", "443", "8080", "1541", "9092"] content { from_port = ingress.value to_port = ingress.value protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } } Разберем для лучшего понимания. Функция Dynamic, далее кавычки двойные и внутри мы пишем, что-будет динамическим, в нашем случае это функция Ingress. Открываем фигурные скобки и пишем цикл с помощью for_each = ["номерпорта1", "номерпорта2"] указывая номера портов. Следовательно, цикл for_each пройдется по каждому из параметров и будет применена конструкция content. Значения внутри конструкции content, будут заменены, а именно с какого порта на какой порт открывается доступ. Далее в конструкции content описываем используемый протокол сетевого уровня и cider_blocks – с каких IP или диапазонов IP разрешено использовать данной правило. Конструкция 0.0.0.0/0 позволяет указать, что данное правило с данным портом разрешено использовать всему интернету вне зависимости от IP адреса. В целях информационной безопасности рекомендую использовать конкретные подсети или конкретные IP адреса, конечно, если это не публичный сервис. Если посмотреть на пример, то написанное таким образом правило, сгенерирует нам 5 отдельных правил, т.е. получается достаточно удобно и сокращает нам количество строчек в коде, а также потенциально количество ошибок. Код становится более читаемым и легким. После использования в коде функции dynamic, мы можем удалить все ставшие ненужными функции ingress. Не забывайте изменить имя ресурса. Это делается путем редактирования переменной name в разделе функции resource, для читаемости кода и удобства управления ресурсами в облаке AWS. После того, как у нас готов наш код, мы можем его запустить. Так как, была создана новая папка, нам необходимо инициализировать ее использования. Переходим в необходимую директорию, в которой находится файл. И запускаем инициализацию стандартной командой terraform init. После ввода команды ожидаем пару минут, пока Terraform скачает все необходимые модули для подключения и работы. Следующей командой terraform apply мы запускаем код на исполнение. И получаем запрос на подтверждение операции. Среди вывода мы можем видеть: Это значит что все порты, которые были указаны в аргументах будут созданы. Осталось подтвердить и дождаться успешного выполнения операции.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59