По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Было время, когда все, что связано с установкой, конфигурацией, обслуживанием инфраструктуры, выполнялось вручную. Для одной работы привлекались много сотрудников. Все было вручную. Этот процесс имел значительный риск человеческих ошибок, что приводило к понижению доступности, безопасности и производительности приложений. Не стоит забывать и общую стоимость инфраструктуры. Но благодаря современным технологиям и философии, таким как DevOps, это больше не проблема. Теперь у нас есть несколько инструментов для выполнения задач создания, развертывания и управления инфраструктурой. Используя правильное программное обеспечение, можно автоматизировать всю инфраструктуру приводя участие человека к минимуму. Я говорю не о простых вещах, а о сложных задачах, таких как выделение ресурсов инфраструктуре, полная настройка приложений и т.д. Автоматизация инфраструктуры - это процесс развертывания аппаратных/программных компонентов, операционной системы, сетевых компонентов, компонентов хранения данных с использованием IaC (Infrastructure as Code). Этот процесс имеет вмешательство человека только для написания такого кода, который будет иметь все детали для создания и развертывания необходимых компонентов. Вот список наиболее популярных средств автоматизации инфраструктуры, широко используемых в отрасли. 1. Ansible Ansible - это ядро с открытым исходным кодом, который автоматизирует развертывание приложений, управление конфигурацией, организацию ИТ. Основана в 2012 году и написана на самом трендовом в настоящее время языке - Python. Для реализации всей автоматизации Ansible использует плейбуки, где все конфигурации написаны на удобочитаемом языке - YAML. Anible имеет безагентную архитектуру, то есть не нужно устанавливать какое-либо программное обеспечение отдельно на всех серверах. Он следует модели на основе push, где необходимо иметь локальную систему со всеми необходимыми конфигурациями, и эти конфигурации перемещаются на целевые серверы. Доступные функции: Автоматизация с помощью простого удобочитаемого языка; Безагентная архитектура позволяет подключаться к серверам через обычный SSH; Модель push передает конфигурации на сервер с локальной машины, управляемой вами. Построен на Python, поэтому поддерживает множество библиотек и функциональных возможностей данного скриптового языка; Кураторская коллекция модулей Ansible инженерной команды Red Hat. Для больших предприятий Red Hat предлагает Ansible Tower. 2. SaltStack Stack может с высокой скоростью выполнять управление инфраструктурой, управление конфигурацией и оркестровку. По сравнению с другими подобными инструментами, такими как Chef и Puppet, быстрота SaltStack является существенным отличием. Данное решение было представлено в 2011 году, и так же, как и Anible, он написан на Python. Он имеет архитектуру master-slave, где Salt Master является главным демоном, который управляет всем, а Salt Minions являются подчиненными демонами, установленными на каждой управляемой системе для выполнения команд, отправленных Salt Master. Salt Master отправляет необходимые настройки и команды Salt Minions, а Salt Minions выполняют их на своей машине, чтобы применить всю IT-автоматизацию. Функции Stack: Рассчитанный на масштаб и скорость, один мастер может работать с 10000 миньонов. Очень прост в настройке, имеет единую архитектуру удаленного выполнения. Файлы конфигурации в Stack поддерживают все виды языков. Он может выполнять команды на удаленных системах параллельно, что помогает ускорить автоматизацию. Предоставляет простой интерфейс программирования с использованием API Python. 3. Chef Одной из основных причин производственных инцидентов является несогласованность приложения или конфигурации. Это обычная проблема, и Chef стремится исправить это. Chef - это инструмент управления конфигурацией для управления инфраструктурой. Он был написан на Ruby, а первый релиз состоялся в 2009 году компанией OpsCode. Продукт Chef Infrastructure Management обеспечивает соответствие всех сред одним и тем же конфигурациям в инфраструктуре. Она предоставляет различные инструменты для управления инфраструктурой вроде Chef Infra, Chef Automate, Chef Enterprise и Chef Community. Функции Chef Infrastructure Management: Конфигурации написаны на языке YAML; Она поставляется с несколькими инструментами разработки для написания книг рецептов (конфигураций), тестирования и разрешения зависимостей; Корпоративная версия предоставляет возможности совместной работы для упрощения обработки сложных сред. Поддержка интеграции с сотнями инструментов DevOps, таких как GitHub, Jenkins, Azure Terraform. 4. Bolt Bolt - один из открытых проектов Puppet. Это безагентный инструмент для автоматизации ИТ. С помощью Bolt можно автоматизировать все задачи, выполняемые вручную, что необходимо сделать сегодня в соответствии с требованиями. Я говорю о таких задачах, как развертывание приложения, устранение неполадок серверов, остановка и перезапуск службы, исправление и обновление систем и т.д. Поскольку Bolt не содержит агентов, нет необходимости устанавливать какое-либо программное обеспечение агента на удаленных целевых машинах. Необходимо установить Bolt в локальной системе и подключить удаленные целевые системы с помощью SSH или WinRM. Основные возможности Bolt: Запишите план болта (сочетание команд, сценариев и задач) в YAML, простой в использовании и изучении. Многие существующие планы и рабочие процессы доступны в Puppet Forge (библиотека модулей). Переместите автоматизацию с Bolt на Puppet Enterprise для лучшей масштабируемости. 5. Terraform Terraform - это средство выделения ресурсов инфраструктуры с открытым исходным кодом, используемое для создания и развертывания инфраструктуры с использованием инфраструктуры в качестве кода (IaC). Hashicorp представила его в 2014 году. Terraform довольно хорошо работает с такими поставщиками облачных технологий, как AWS, Azure, GCP, Alibaba. С помощью Terraform можно развертывать инфраструктуру и управлять ею на любом из этих облачных поставщиков. В настоящее время Terraform широко используется многими организациями для управления Kubernetes кластерами. Преимущества Terraform: Простое управление конфигурацией неизменяемой инфраструктуры. Может выполнять полную оркестровку инфраструктуры, а не только управление конфигурацией. Использует язык конфигурации HashiCorp (HCL), который удобочитаем и очень прост для изучения. Предоставляет готовые модули и провайдеров для сотен инструментов, и технологий через реестр terraform. Заключение Это был мой список самых популярных решений для автоматизации инфраструктуры, которые предлагают продукты для организаций среднего размера на уровне предприятия. Если вы попадаете в домен DevOps и хотите автоматизировать свою инфраструктуру и связанные с ней монотонные задачи, это подходящее время, чтобы выбрать одно из вышеупомянутых решений и начать автоматизацию.
img
GLBP (Gateway load Balancing Protocol) - это протокол, разработанный компанией Cisco, который обеспечивает распределение нагрузки на несколько роутеров, используя всего 1 виртуальный адрес. Этот протокол входит в группу FHRP, а теперь давайте напомню какие протоколы в неё входят. HSRP (Hot Standby Router Protocol) - проприетарный протокол, разработанный Cisco; VRRP (Virtual Router Redundancy Protocol) - свободный протокол, сделан на основе HSRP; GLBP (Gateway Load Balancing Protocol). GLBP обеспечивает балансировку трафика одновременно на несколько роутеров, когда HSRP и VRRP работал только один из 2х роутеров. Терминология протокола AVG (Active Virtual Gateway) - активный роутер, который занимается раздачей MAC адресов устройствам. Некий начальник над роутерами в сети GLBP . Это роль диспетчера, который указывает устройствам, как распределять трафик по средству раздачи им MAC адресов, когда приходит ARP запрос. То есть IP адрес у всех будет единый, а вот MAC адреса будут разные. AVF (Active Virtual Forwarder) - активный роутер, который пропускает через себя трафик. Роутер с ролью AVG только один может быть, а вот с ролью AVF любой, при этом AVG может быть и AVF одновременно. Настройка этого протокола такая же, как и любого протокола группы FHRP на интерфейсе (в данном случает interface e0/0) Теперь пройдемся по командам Router(config-if)# glbp 1 ip 192.168.0.254 //включение GLBP Router(config-if)# glbp 1 priority 110 //установка приоритета 110 (если приоритет будет выше остальных ,то он станет AVG по умолчанию 100) Router(config-if)# glbp 1 preempt //установит режим приемптинга для AVG ( работает также как и в HSRP, VRRP) Router(config-if)# glbp 1 weighting 115 //установить вес для AVF в 115 Router(config-if)# glbp 1 load-balancing host-depended | round-robin | weighted Для чего требуется вес? Для того, чтобы выбрать кто будет AVF. Чтобы при падении линка до провайдера мы могли передать эту роль кому-нибудь ещё. Далее рассмотрим механизм передачи: Router(config-if)# glbp 1 weighting 130 lower 20 upper 129 Команда установит вес для Forwarder в 130, а нижняя граница будет 20, верхняя 129. Если вес упадет до 19, то он перестанет быть AVF, а если вес возрастет выше 129 после падения, то он снова превратиться в AVF. По умолчанию lower равен 1, upper равен 100. Данная команда используется совместно с Track: Router(config)# track 1 interface e0/1 line-protocol Router(config)# int e0/0 Router(config-if)# glbp 1 weighting track 1 decrement 111 Как проверить стал ли роутер AVG? R2(config)#do show glbp Ethernet0/0 - Group 1 State is Active ... Смотрим, состояние Active, а это значит он и стал AVG. Взглянем на второй: R3(config-if)#do sh glbp Ethernet0/0 - Group 1 State is Standby ... Говорит о том, что он не стал AVG. При просмотре команды нужно обращать внимание на State is Active / Listen / Standby. Где AVG это Active, запасной Standby, а тот, кто в выборах не участвует Listen. То есть если роутер State is Active накроется, то его место займет маршрутизатор с состоянием State is Standby. При этом каждый роутер является AVF. 3 режима AVG Round Robin (по кругу) - это значит, что балансирует равномерно, раздавая каждому устройству новый MAC по списку, а как заканчивается список, начинает заново. Когда в сети просыпается устройство или ARP table устаревает, то у него нет mac шлюза по умолчанию. Он формирует ARP запрос, где запрашивает эти данные. Отвечает ему только AVG, который выдает виртуальные mac адреса за роутеры в группе glbp. Одному ПК он выдаст свой ,потому что он еще и AVF , следующему ПК - R3 mac-address выдаст ,следующему устройству R4 mac-address . Weighted (утяжеленный) - когда AVF имеет больший вес, то принимает большую нагрузку, чем остальные роутеры. Host dependent (Зависимое устройство) - присваивает постоянный MAC определенным устройствам. Допустим к нему обратился VPC10 за MAC адресом и AVG выдает его, а также запоминает, что ему выдает только этот адрес. Как это работает? Представим, что в нашей топологии: Роутер R3 (State is Listen) умрет, то тогда его клиентов возьмет любой из группы, либо R2, либо R4. Роутер R2 (State is Active) умрет, то тогда роль AVG займет роутер R4 (State is Standby), а также возьмет его клиентов (или распределит между R3/R4). R3 станет запасным AVG. Роутер R4 (State is Standby) умрет, то его клиентов возьмет один из R2/R3 и R3 (State is Listen) станет State is Standby. show glbp на разных роутерах R2(config-if)#do sh glbp Ethernet0/0 - Group 1 State is Active 1 state change, last state change 00:06:48 Virtual IP address is 192.168.0.254 Hello time 3 sec, hold time 10 sec Next hello sent in 2.176 secs Redirect time 600 sec, forwarder timeout 14400 sec Preemption disabled Active is local Standby is 192.168.0.3, priority 100 (expires in 8.576 sec) Priority 100 (default) Weighting 100 (default 100), thresholds: lower 1, upper 100 Load balancing: round-robin Group members: aabb.cc00.2000 (192.168.0.1) local aabb.cc00.3000 (192.168.0.2) aabb.cc00.4000 (192.168.0.3) There are 3 forwarders (1 active) Forwarder 1 State is Active 1 state change, last state change 00:06:37 MAC address is 0007.b400.0101 (default) Owner ID is aabb.cc00.2000 Redirection enabled Preemption enabled, min delay 30 sec Active is local, weighting 100 Forwarder 2 State is Listen MAC address is 0007.b400.0102 (learnt) Owner ID is aabb.cc00.3000 Redirection enabled, 599.104 sec remaining (maximum 600 sec) Time to live: 14399.104 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.0.2 (primary), weighting 100 (expires in 9.216 sec) Forwarder 3 State is Listen MAC address is 0007.b400.0103 (learnt) Owner ID is aabb.cc00.4000 Redirection enabled, 598.592 sec remaining (maximum 600 sec) Time to live: 14398.592 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.0.3 (primary), weighting 100 (expires in 10.016 sec) В данный момент я подключил 3 роутера в группу glbp 1 и если посмотреть на вывод, то он показывает отношение 1 роутера к другому. То есть R2 по отношению к R3 и R4 является active, а остальные listen . Если глянуть на R3 и R4 ,то картина будет с точностью наоборот. Это сделано для того, чтобы наблюдать, какой роутер взял на себя роль AVF в случае падения, тогда при падении один из Forwarder будет в состоянии Active. Режим preempt Этот режим, как и в других протоколах типа FHRP помогает роутеру настроить нужную роль. В GLBP это будет касаться AVG и AVF. Для AVG по умолчанию он отключен, а для AVF по умолчанию включен, с задержкой 30 секунд. preempt для AVG: R2(config)# int e0/0 R2(config-if)# glbp 1 preempt preempt для AVF: R2(config)# int e0/0 R2(config-if)# glbp 1 forwarder preempt delay minimum 60 Настройка таймеров Настройка интервалов в группе GLBP: R2(config-if)# glbp 1 timers 3 10 Настройка пароля //Аутентификация через md5 по хешу R2(config-if)#glbp 1 authentication md5 key-string CISCO //Аутентификация в открытом виде R2(config-if)#glbp 1 authentication text CISCO Диагностика R2# show glbp //показать общую информацию по протоколу группы FHRP R2# show glbp brief //показывает краткую таблицу по всем роутерам группы GLBP ---------------------------------------------------------------------------------------------------------------------------- R2#show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Et0/0 1 - 110 Standby 192.168.0.254 192.168.0.4 local Et0/0 1 1 - Active 0007.b400.0101 local - Et0/0 1 2 - Listen 0007.b400.0102 192.168.0.2 - Et0/0 1 3 - Listen 0007.b400.0103 192.168.0.3 - Et0/0 1 4 - Listen 0007.b400.0104 192.168.0.4 - Важное В топологии GLBP может пропускать максимум 4 роутера, если подключить 5, то он попадет в таблицу GLBP, но пропускать через себя трафик не станет. А будет просто ждать, пока умрет какой-либо AVF.
img
Рассказываем как быстро и просто поднять свой NFS сервер на Ubuntu Linux Server 14-04.1, а также разберёмся с принципами работы протокола NFS и рассмотрим теорию. Теория Аббревиатура NFS расшифровывается как Need for Speed - Network File System. Это протокол для доступа к распределённым сетевым файловым системам, с помощью которого можно подмонтировать удалённые директории к своему серверу. Это позволяет использовать дисковое пространство другого сервера для хранения файлов и регулярно производить запись данных на него с нескольких серверов. Протокол имеет клиент-серверную модель, то есть один сервер (ещё его называют “шара” от слова share), с установленным пакетом NFS, будет обеспечивать доступ к своим каталогам и файлам, а клиентские компьютеры будут подключаться к нему по сети. Закрепим прочитанное схемкой: Обращения к серверу NFS осуществляются в виде пакетов протокола RPC (Remote Call Procedure), который позволяет выполнить различные функции или процедуры в другом сетевом пространстве, то есть на удалённом сервере. Авторизация пользователей, которые подключаются к серверу осуществляется по IP-адресу, а также по специальным идентификаторам пользователя UID и группы GID. Это не лучший способ относительно безопасности хранимых файлов, в сравнении с классической моделью «логин/пароль». Зато, благодаря такой архитектуре и тому, что NFS использовал протокол UDP без установления сессии, он практически невосприимчив к сбоям сети и самих клиентских компьютеров. Так, при каком-либо сбое, передача файла просто приостановится, а когда связь будет налажена, то передача возобновиться без необходимости какой-либо перенастройки. Настройка Думаю, с теорией понятно, так что давайте переходить к практике. Как было сказано, все настройки будет проводить на Ubuntu 14.04.1 Прежде всего, на компьютер, который будет выступать в роли сервера NFS, нужно установить необходимые компоненты. Итак, скачиваем пакет nfs-kernel-server, с помощью которого мы сможем раздать доступ (“расшарить”) директории. Для этого на будущем NFS сервере вводим команды: sudo apt-get update sudo apt-get install nfs-kernel-server Теперь создаём собственно директорию к которой хотим раздать доступ. Стоит отметить, что можно также “расшарить” уже имеющиеся на сервере директории, но мы создадим новую: sudo mkdir /var/nfs Далее мы должны сделать так, чтобы владельцем директории /var/nfs и группе, к которой он принадлежит стали все пользователи в нашей системе. Для этого вводим на сервере команду: sudo chown nobody:nogroup /var/nfs Вводите эту команду только для тех директорий, которые создали сами, не надо вводить её для уже имеющихся директорий, например /home . Следующим шагом необходимо изменить конфигурацию самого NFS, она лежит в файле /etc/exports, открываем его для редактирования любимым редактором: sudo nano /etc/exports Перед вами откроется конфигурационный файл с закомментированными строками, которые содержат примеры настройки для разных версий NFS. Закомментированные – это те, в начале которых стоит символ #, и это значит, что параметры, указанные в них, не имеют силы. Нам необходимо внести в этот файл следующие не закомментированные строки: /var/nfs 10.10.0.10/24(rw,sync,no_subtree_check) Где: /var/nfs - Директория, которую мы хотим расшарить 10.10.0.10 - IP-адрес и маска клиентского компьютера, которому нужно раздать доступ к директории rw - Разрешает клиенту читать (r) и записывать (w) файлы в директории sync - Этот параметр заставляет NFS записывать изменения на диск перед ответом клиенту. no_subtree_check - Данная опция отключает проверку того, что пользователь обращается именно к файлу в определённом подкаталоге. Если это проверка включена, то могут возникнуть проблемы, когда, например, название файла или подкаталога было изменено и пользователь попробует к ним обратиться. После этого, нужно создать таблицу соответствия расшаренных директорий и клиентов, а затем запустить NFS сервис. Для этого вводим следующие команды: sudo exportfs –a sudo service nfs-kernel-server start После выполненных действий расшаренные директории должны стать доступными для доступа с клиентов.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59