Руководство по управлению сервером

Задача управления ИТ-отделом является многогранной, и в основном она связана с предоставлением оборудования и программного обеспечения. Наиболее значимым (и дорогим) из этих компонентов, вероятно, будет сервер вашей компании. Чтобы обеспечить наилучшее соотношение цены и качества, вложенных в этот сервер, потребуется тщательный мониторинг, чтобы обеспечить доступность для использования возможностей роста. Более того, если вы работаете в крупной организации, ваши обязанности будут распространяться на весь кластер серверов.

Для этого вам нужно создать план игры, чтобы увеличить спрос на серверы вашей компании. В основе этой стратегии лежат два ключевых фактора роста: органический спрос на существующие услуги, а также запросы на новые приложения. Для достижения этих целей важно обеспечить доступность емкости сервера, а также предоставить оборудованию достаточную скорость процессора и объем памяти. Таким образом, вы сможете успешно запускать все программное обеспечение и хранилище, необходимые сотрудникам компании.

Для этого вам нужно создать план игры, чтобы увеличить спрос на серверы вашей компании. В основе этой стратегии лежат два ключевых фактора роста: органический спрос на существующие услуги, а также запросы на новые приложения. Для достижения этих целей важно обеспечить доступность емкости сервера, а также предоставить оборудованию достаточную скорость процессора и объем памяти. Таким образом, вы сможете успешно запускать все программное обеспечение и хранилище, необходимые сотрудникам компании.

Важность хорошо управляемых серверов

Сокращение бюджета в вашей инфраструктуре, включая серверы, приведет к ухудшению качества предоставления услуг и просто увеличит количество звонков, которые получает ваша служба поддержки (тем самым увеличивая сумму денег, которую вы должны потратить на поддержку пользователей и клиентов), Плохо работающие серверы также рискуют потерять бизнес вашей компании и снизить эффективность ее сотрудников.

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

Приоритеты управления сервером

Основные цели управления сервером можно разделить на три категории задач:

  • Предоставление инфраструктуры
  • Мониторинг услуг
  • Планирование будущих потребностей

Когда ваша компания небольшая и у нее мало ИТ-требований, вы можете избежать ручного отслеживания вашей инфраструктуры и просто полагаться на утилиты системной отчетности, встроенные в операционные системы и встроенное ПО вашего оборудования. Однако, как только ваш бизнес станет достаточно большим, чтобы нуждаться в собственном сервере, вы уже будете управлять системой, которая не может должным образом контролироваться без использования автоматизированных инструментов.

Лучшие инструменты управления сервером

При поиске инструментов управления сервером учитывайте следующие важные атрибуты:

  • Охватывает все физические условия серверов, включая функции стойки
  • Интегрируется с другими инструментами управления инфраструктурой
  • Может работать на операционной системе вашего сервера
  • Включает функции мониторинга и анализа
  • Не содержит ошибок и поддерживается производителем

Несмотря на то, что на рынке есть много инструментов для управления серверами, на удивление стоит заплатить за них. В этом руководстве вы узнаете о лучших инструментах управления сервером, которые являются лидерами в отрасли.

Вот наш список лучших инструментов управления и мониторинга серверов:

1. Сервер SolarWinds и монитор приложений (бесплатная пробная версия)

Image

Image

SolarWinds является ведущим производителем программного обеспечения для мониторинга инфраструктуры, и если вам нужно управлять серверами, вам следует обратиться к монитору серверов и приложений компании. Этот инструмент, сокращенно называемый SAM, может контролировать удаленные, облачные и локальные серверы с одинаковыми возможностями. Эта степень видимости идеально подходит для новых компаний, которые хотят избежать слишком больших инвестиций в оборудование для помещений. SAM также обслуживает крупные многонациональные компании, которые хотят интегрировать все свои сайты в одну централизованно управляемую глобальную сеть.

Монитор сервера и приложений построен на собственной платформе, созданной SolarWinds, которая называется Orion. Эта платформа также используется для других инструментов мониторинга компании, поэтому SAM легко интегрируется с монитором производительности сети SolarWinds и анализатором трафика NetFlow компании. Если вы хотите гарантировать доставку приложений для ваших пользователей и клиентов, вам рекомендуется объединить эти три пакета мониторинга.

В SAM также включен модуль PerfStack. Это позволяет группировать каждое приложение с сервером, службами, сетевыми и веб-службами, сетевыми устройствами и ссылками, которые способствуют доставке каждого приложения. Таким образом, объединение этих трех инструментов SolarWinds дает вам доступ к данным о производительности сети, а также к показателям серверов и приложений. Это позволит вам точно определить, где могут возникнуть проблемы с производительностью, и устранить их до того, как пользователи и клиенты начнут звонить в службу поддержки, чтобы пожаловаться.

Системные мониторы следят за физическим состоянием ваших серверов, тем самым внося свой вклад в успешную доставку приложений вашей компании. Атрибуты сервера, которые монитор SAM:

  • Мощность процессора
  • Использование памяти
  • Дисковые тома и использование
  • Источник питания
  • Температура системы
  • Производительность вентилятора

Чтобы полностью защитить серверы от сбоев оборудования, монитор также следит за услугами стоек, где вы используете блейд-серверы.

Вам не нужно настраивать монитор с системными запасами, потому что он соберет для вас реестр всего вашего оборудования. Это включает в себя ваши стойки и серверы. Монитор также регистрирует все приложения, запущенные на каждом сервере. Если вы также используете SolarWinds Network Performance Monitor, инструмент мониторинга создаст карту всего вашего оборудования (включая ваши серверы) и отобразит все сетевые соединения между ними (включая интернет-соединения с облачными серверами и оборудованием на удаленных сайтах). ). SAM может взаимодействовать с серверами Microsoft Azure и Amazon AWS.

SolarWinds SAM может отслеживать виртуализации и отображать отношения между серверами и виртуальными машинами, которые зависят от каждого из них. Этот мониторинг включает в себя отображение и отслеживание программного обеспечения виртуальных машин, которое лежит в основе отношений и сетевых связей между серверами и виртуальными машинами. Монитор сервера и приложений может управлять программным обеспечением для виртуализации Microsoft Hyper-V и VMWare ESX. Если вы реализуете много виртуализации, то вы можете рассмотреть возможность добавления диспетчера виртуализации SolarWinds, чтобы получить более полное представление о вашей системе виртуальных машин. К специализированным инструментам управления сервером, которые можно добавить в SAM, относятся монитор хранилища и ресурсов, веб-монитор производительности и анализатор производительности базы данных.

БЕСПЛАТНАЯ 30-дневная пробная версия: Монитор производительности сети SOLARWINDS пожалуйста, обратите внимание: Все пакеты мониторинга SolarWinds работают в среде Windows Server. Если вы предпочитаете получить облачный монитор сервера, вы можете вместо этого подписаться на монитор инфраструктуры SolarWinds AppOptics.

2. Paessler PRTG

Paessler PRTG - это унифицированная система мониторинга инфраструктуры с широким спектром возможностей, предназначенная для сетевых устройств, серверов и приложений. В пакете также есть модули для мониторинга пропускной способности сети, а также широкие возможности мониторинга виртуальных машин. Каждый фактор, который отслеживается системой, называется «датчиком», и вы можете настроить деятельность монитора, активируя различные датчики. Когда вы покупаете PRTG, вы покупаете право на определенное количество датчиков. Таким образом, вы можете ограничить систему только мониторингом ваших серверов, или охватить серверы, а также добавить несколько сетевых датчиков.

Paessler PRTG — это унифицированная система мониторинга инфраструктуры с широким спектром возможностей, предназначенная для сетевых устройств, серверов и приложений. В пакете также есть модули для мониторинга пропускной способности сети, а также широкие возможности мониторинга виртуальных машин. Каждый фактор, который отслеживается системой, называется «датчиком», и вы можете настроить деятельность монитора, активируя различные датчики. Когда вы покупаете PRTG, вы покупаете право на определенное количество датчиков. Таким образом, вы можете ограничить систему только мониторингом ваших серверов, или охватить серверы, а также добавить несколько сетевых датчиков.

Система PRTG контролирует следующие физические атрибуты ваших серверов:

  • Активность процессора
  • Дисковые тома и потребление
  • Производительность и здоровье жесткого диска
  • Использование памяти
  • Фанат здоровья
  • Состояние источника питания

PRTG устанавливается в среде Windows Server, но также может взаимодействовать с серверами под управлением Unix и Linux. Монитор предупредит вас, если состояние какого-либо из серверов в рамках его компетенции приблизится к полной мощности. В пакет также входят специализированные датчики, которые отслеживают производительность серверов хранения, веб-серверов, серверов электронной почты, серверов баз данных, серверов DHCP и DNS и серверов приложений.

Интегрированные возможности Paessler PRTG для мониторинга сетей, серверов и приложений делают его идеальным для отслеживания работоспособности всех тех элементов, которые способствуют виртуализации. Это отлично подходит для мониторинга:

  • Hyper-V,
  • Системы Citrix XEN
  • VMWare ESX
  • Parallels Virtuozzo Containers
  • Amazon EC2

Ваши компоненты виртуализации не обязательно должны быть на месте. PRTG может обращаться к серверам на удаленных сайтах, а также к управляемым серверам, доступным как облачные сервисы. Инструмент создаст карты между всеми ресурсами вашей виртуальной машины, чтобы вы могли видеть, какая виртуальная машина сопоставлена с какими серверами и насколько хорошо они работают. Если вы внедрили датчики мониторинга сетевых устройств, то вы также получите карту сети, которая показывает, как ваши серверы подключаются к оборудованию в остальной части сети.

Уведомления, генерируемые оповещениями, позволяют вам получать уведомления о возникающих проблемах и возможном исчерпании емкости Эти оповещения могут быть настроены так, что вы можете назначить для получения уведомлений по электронной почте или SMS. Вы также можете указать, какой член команды получает уведомления в зависимости от источника и серьезности предупреждения.

Paessler PRTG доступен как для локального программного обеспечения, так и для облачной службы. Вы можете воспользоваться услугой бесплатно, если вам нужно активировать до 100 датчиков. Paessler предлагает 30-дневную бесплатную пробную версию PRTG, которая включает в себя неограниченное количество датчиков.

3. Менеджер приложений ManageEngine

ManageEngine создал структуру программного обеспечения, которая очень похожа на конфигурацию инструмента SolarWinds. Все их инструменты написаны на общей платформе, и они легко интегрируются друг с другом. Возможности мониторинга сервера в наборе ManageEngine встроены в его инструмент Application Manager.

ManageEngine создал структуру программного обеспечения, которая очень похожа на конфигурацию инструмента SolarWinds. Все их инструменты написаны на общей платформе, и они легко интегрируются друг с другом. Возможности мониторинга сервера в наборе ManageEngine встроены в его инструмент Application Manager.

Монитор отслеживает следующие атрибуты сервера:

  • Емкость процессора и использование
  • Потребление ЦП приложениями в реальном времени
  • Дисковые тома и использование
  • Активность интерфейса сервера и загрузка сети на сервере
  • Занятие памяти
  • Источник питания здоровья
  • Поведение вентилятора
  • Температура системы

Визуализации панели управления Application Manager могут показать вам положение каждого сервера в стойке, а также представление вашей серверной комнаты с расположением каждого серверного шкафа. Монитор отслеживает состояние системы, доступность услуг и производительность приложений в режиме реального времени. Угрозы и критические состояния отображаются на приборной панели, а также могут быть отправлены по электронной почте или SMS. Доступ к панели управления можно получить удаленно на мобильных устройствах, поэтому вы можете контролировать свои серверы, даже находясь вне офиса.

Системная панель инструментов может быть настроена, и вы можете назначать роли пользователя для каждого макета. Это позволяет создавать учетные записи пользователей для доступа к системе и назначать разные роли каждой учетной записи использования. Оповещения также могут быть настроены так, что вы можете даже комбинировать события и условия для создания составных уведомлений и исключать запуск рабочих отчетов фабрики.

Менеджер приложений ManageEngine компетентен в мониторинге систем виртуализации. Он может общаться с Microsoft Hyper-V и VMWare ESX / ESXi. Инструмент отследит все ваши компоненты виртуальной машины и отобразит их для вас, поэтому вам не нужно участвовать в регистрации всех ваших служб виртуализации на панели инструментов. Это отслеживание виртуализации также распространяется на облачные серверы и удаленные сетевые системы. Аналитический компонент монитора позволит вам определить, перегружен ли какой-либо из ваших серверов, и поможет вам переназначить выделение вашей виртуальной машины.

Диспетчер приложений устанавливается в среде Windows Server и Linux. Его возможности отслеживания не ограничены операционной системой хоста. Он будет отслеживать системы Linux, если он установлен в Windows, и наоборот. Облачные операционные системы, с которыми может взаимодействовать монитор, включают в себя:

  • Microsoft Azure
  • Microsoft Office 365
  • Amazon EC2
  • Amazon RDS
  • Системы OpenStack

Вы можете использовать инструмент «Диспетчер приложений» в качестве облачной службы, а не устанавливать его на своей территории. ManageEngine называет свой онлайн-сервис Site24x7. Вы можете получить 30-дневную бесплатную пробную версию программного обеспечения ManageEngine, независимо от того, хотите ли вы получить к нему доступ онлайн или установить его на своих серверах.

4. WhatsUp Gold

WhatsUp Gold - это инструмент мониторинга инфраструктуры, который в основном ориентирован на сетевые устройства, серверы и соединения между ними. Инструмент производится компанией Ipswitch, которая создала модульный набор пакетов мониторинга. Вам не нужно покупать какие-либо дополнительные модули для мониторинга серверов с этим пакетом программного обеспечения.

WhatsUp Gold — это инструмент мониторинга инфраструктуры, который в основном ориентирован на сетевые устройства, серверы и соединения между ними. Инструмент производится компанией Ipswitch, которая создала модульный набор пакетов мониторинга. Вам не нужно покупать какие-либо дополнительные модули для мониторинга серверов с этим пакетом программного обеспечения.

После установки пакета он выполнит первоначальную проверку системы и зарегистрирует все ваше оборудование. Карта сети отображает связи между всем вашим оборудованием. Непрерывный мониторинг, выполняемый WhatsUp Gold, поддерживает этот инвентарь и карту. Оба обновятся автоматически, если вы добавите, удалите или переместите часть оборудования в сети.

Эта опция мониторинга системы будет отслеживать следующие условия на ваших серверах:

  • Активность процессора
  • Наличие памяти
  • Дисковые тома
  • Уровни использования хранилища

Возможности мониторинга WhatsUp Gold распространяются за пределы удаленных серверов и облачных сервисов. Такими облачными серверами могут быть системы Amazon AWS или Microsoft Azure. Если вы внедряете виртуализации на своем сайте, служба WhatsUp Gold может отслеживать эти службы. Он способен интегрировать связь с системами Hyper-V и VM. Хотя возможностей виртуализации в WhatsUp Gold достаточно, вы можете получить более глубокое представление о реализации виртуальных машин, купив надстройку Virtualization Monitor.

WhatsUp Gold устанавливается в среде Windows Server, но может также контролировать другие серверы под управлением Linux или Unix. Система подходит для средних компаний.Вы можете получить 30-дневную бесплатную пробную версию, чтобы проверить пригодность WhatsUp Gold для вашего бизнеса.

5. Логический монитор

Последний вариант в нашем списке - облачный сервис. Находясь в Интернете, программное обеспечение может быть доступно через браузер на любом устройстве, имеющем подключение к Интернету. Система Logic Monitor требует установки программы сбора в вашей сети.

Последний вариант в нашем списке — облачный сервис. Находясь в Интернете, программное обеспечение может быть доступно через браузер на любом устройстве, имеющем подключение к Интернету. Система Logic Monitor требует установки программы сбора в вашей сети.

Данные, собранные в вашей сети, хранятся на сервере Logic Monitor, поэтому вы не используете свое собственное хранилище с историческими данными о производительности. Этот инструмент контролирует серверы, сети и приложения и может соединять данные о производительности из этих трех источников, чтобы дать вам подробный обзор стека доставки приложений, который показывает, где потенциальные проблемы могут повлиять на производительность.

Служба Logic Monitor предлагается в трех планах с более длительными периодами хранения данных, доступными в вышестоящих планах. Стартовый пакет будет хранить ваши данные для анализа в течение 3 месяцев. В пакете Pro этот срок хранения составляет один год, а в плане Enterprise вы можете хранить данные журнала в течение двух лет. Размер сети, которую вы можете отслеживать, увеличивается с более дорогими планами, поэтому план Starter подойдет для небольших сетей, версия Pro подойдет для сети среднего размера, а версия Enterprise предназначена для крупных сетей.

Весь обмен данными между вашей сетью и сервером Logic Monitor защищен шифрованием, а данные о производительности зашифрованы в системе Logic Monitor. Служба может осуществлять мониторинг серверов Windows, Linux, AIX и Solaris. Он сообщает о:

  • Активность процессора
  • Использование памяти
  • Дисковые тома и доступность места
  • Скорость передачи по интерфейсам сервера

Logic Monitor способен отслеживать виртуализации. Он может отслеживать виртуальную машину, созданную:

  • VMware ESX / ESXi
  • Microsoft Hyper-V
  • Citrix XenServer

Система мониторинга Logic Monitor предупредит вас об условиях предупреждения. Эти оповещения будут отображаться в утерянном формате на панели инструментов, но вы также можете выбрать отправку уведомлений членам команды по электронной почте или в сообщениях чата. Приложение также может взаимодействовать с инструментами поддержки и совместной работы, включая Zendesk и HipChat. Вы можете попробовать Logic Monitor с 14-дневной бесплатной пробной версией.

Заключение

Пять инструментов в нашем списке рекомендаций — это лучшие системы управления серверами, доступные на рынке сегодня. Способность каждого инструмента работать в операционных системах ваших серверов является важным фактором, который сузит ваш выбор программного обеспечения для управления серверами. Тот факт, что к Logic Monitor можно получить доступ с любого типа подключенного к Интернету устройства, делает эту возможность жизнеспособной для мониторинга любой операционной системы.

Помните, что вы не сможете должным образом управлять своими серверами или планировать будущие требования к емкости, если вы не можете документировать свою текущую инфраструктуру и отслеживать ее производительность. Получите систему управления сервером, которая будет соответствовать текущему размеру вашей компании, а также сможет расширяться и расти вместе с вашим бизнесом. Предложения бесплатных пробных периодов также должны помочь вам определить, какой инструмент управления сервером вам подходит.

Какой сервис кажется лучшим для вашего бизнеса? Есть ли другие ключевые моменты, которые вы рекомендуете рассмотреть? Дайте нам знать ваши мысли в комментариях ниже.

Сегодня веб-мастера часто выбирают виртуальные частные/выделенные серверы (Virtual Private/Dedicated Servers) для размещения своих проектов. Это оптимальный вариант хостинга, когда мощностей shared-сервера уже недостаточно, а на аренду физической машины нет средств или в ней нет необходимости. Управлять VPS/VDS сложнее, чем обычным хостингом, потому что настраивать его приходится самостоятельно. Если вы не обладаете навыками системного администрирования и у вас нет возможности нанять человека с релевантными опытом, настройка VPS с нуля может занять много времени. Чтобы ускорить процесс, воспользуйтесь нашей пошаговой инструкцией. В статье описаны этапы настройки VDS на ОС Linux.

Подключение к VDS

Хостинг предполагает использование удаленного сервера, поэтому для начала нам необходимо подключиться к нему со своего ПК. Связь с VPS, работающим на базе Linux-дистрибутивов, осуществляется посредством протокола SSH. Если на локальной машине, с которой ведется подключение, используется Windows, нужно дополнительно установить бесплатное приложение PuTTY (или аналог).

Запустите утилиту на компьютере. Откроется графический интерфейс. Найдите поле «Имя хоста» и введите туда IP-адрес VDS. Хостинг-провайдер должен был прислать его электронным письмом сразу после активации сервера. Теперь кликните на кнопку «Соединиться». В открывшейся консоли вас попросят авторизоваться: рядом с «login as:» напишите root или тот логин, который указан в email-письме от хостера. Нажмите Enter. На следующей строке впишите или вставьте скопированный пароль из того же имейла. Готово! Можно приступать к настройке.

Если домашняя операционная система тоже относится к Linux-семейству или это macOS, SSH-соединение с виртуальным сервером, а также дальнейшее управление им будет осуществляться напрямую через командную строку. Настраивать VPS мы будем на примере серверных дистрибутивов из ветки Debian (в том числе Ubuntu).

Инструкция по настройке VPS/VDS сервера с нуля.

Изображение от Freepik.

Установка обновлений

Прежде чем начать непосредственно настройку, программное обеспечение на VDS нужно обновить. Вы арендуете машину с предустановленной операционной системой, но часть ее пакетов могут быть устаревшими. Работать с таким сервером небезопасно, поэтому стоит установить актуальную версию ОС.

В Debian и ее подобиях запустить апдейт можно с помощью встроенного менеджера APT. Для этого введите в терминал следующие строки:

apt update 
apt list –upgradable
apt upgrade

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

Добавление нового пользователя

Чтобы настраивать VPS/VDS, требуются права суперпользователя (root-доступ). Они по умолчанию закреплены за учетной записью, которую создал для вас провайдер — и так же по умолчанию она имеет имя root. Это стандарт для Linux-систем, о котором знают все специалисты. По этой причине действовать от имени root-пользователя может быть опасно: если кто-то вас взломает, доступ такого уровня позволит ему делать внутри сервера что угодно. Избежать подобного сценария можно, если создать в системе еще одну «учетку» с нуля для повседневного пользования и передать ей необходимые права.

Сделать это очень просто. Достаточно ввести в консоли команду:

adduser имя

Вместо «имени» подставьте свой вариант — это будет логином для нового пользователя. Далее машина попросит задать пароль и предложит заполнить необязательные поля. Настройка несложная, так что вы справитесь.

Передача привилегий root

Настраивать сервер мы будем от имени созданного юзера, но пока что у него нет на это разрешения. Он может только подключиться к VPS по SSH-протоколу — управление и настройка ему недоступны. Поэтому нужно поделиться с ним возможностями суперадминистратора.

В системах по образу Debian есть специальная группа, члены которой могут выполнять операции с рут-привилегиями: sudo. Для работы они используют одноименную утилиту. Добавить нашу чистую учетную запись в sudo можно при помощи команды:

usermod -aG sudo имя

Так же, как и в предыдущем пункте, замените «имя» на выбранный ранее логин. Готово! Теперь мы сможем полноценно управлять VDS через нового пользователя. Но сначала проверим, точно ли все работает. Отключите SSH-соединение (можно просто закрыть терминал) и переподключитесь к серверу под новым именем.

Изменение настроек SSH

Поскольку у нас теперь есть возможность удаленно запускать команды без участия root-пользователя, можно смело отключать ему доступ по SSH. Для этого нам нужно внести изменения в конфигурационный файл, ответственный за настройку этого соединения. В составе Debian-дистрибутивов в качестве утилиты для редактирования используется nano. Чтобы открыть файл, введите в терминал:

sudo nano /etc/ssh/sshd_config

После этого найдите строку:

PermitRootLogin yes

Раскомментируйте ее и измените значение «yes» на «no». Эта команда запретит пользователю root подключаться к VPS по протоколу SSH.

В целях безопасности нам необходимо отредактировать еще один момент: номер порта. По умолчанию на всех серверах прослушивается порт 22. Вы можете поменять его на любой из свободных. Рекомендуем выбирать в диапазоне от 49152 до 65535, чтобы избежать конфликтов с другими службами. Для этого найдите строку Port 22, снимите перед ней комментарий и впишите выбранный номер.

Чтобы изменения вступили в силу, перезапустите SSH следующей командой:

sudo service ssh restart

Готово. За несколько шагов мы с нуля настроили базовую защиту VDS. Пора заняться программным окружением, которое позволит нам запустить сайт.

Настройка VPS сервера.

Изображение от Freepik.

Включение веб-сервера Nginx

Для запуска веб-ресурса на сервере с Debian-подобной системой потребуется установить один из стандартных стеков: LEMP (Linux, Nginx, MySQL, PHP) или LAMP (Apache вместо Nginx). Мы остановимся на первом варианте, т. к. веб-сервер энджин-икс более быстрый. Он будет обрабатывать запросы, поступающие на наш VPS с сайта, и обслуживать соединения.

Энджинкс является бесплатным ПО с открытым исходным кодом. Он по умолчанию имеется в репозиториях Дебиан-образов, поэтому его настройка здесь производится одной командой:

sudo apt install nginx

После установки веб-сервер запустится с нуля автоматически.

Установка и настройка MySQL

Следующий компонент LEMP, который мы настроим — система управления базами данных MySQL. Через нее вы будете совершать любое взаимодействие с БД: создание, удаление, редактирование, настройка, извлечение информации и пр. Эта СУБД тоже бесплатна, установить ее можно с помощью команды:

sudo apt install mysql-server

После установки на сервер MySQL необходимо проделать ряд манипуляций со встроенным скриптом безопасности. Для этого введите в терминал:

sudo mysql_secure_installation

Далее VDS запустит серию диалогов, в которых вам нужно будет отвечать Y (yes), N (no) или использовать клавиши, указанные в инструкции на экране (ноль, один, два). Сначала потребуется настроить (или нет) плагин валидации пароля, затем задать сам пароль для root-доступа к MySQL (не к самому серверу!) и подтвердить его. На все последующие вопросы мы рекомендуем давать утвердительный ответ — так вы удалите анонимных пользователей и тестовые базы, запретите удаленный вход для root и перезагрузите правила, чтобы изменения стали активны.

Создание базы данных

Если вы хотите разместить на VPS/VDS динамический веб-сайт, для его работы понадобится БД. Создать ее несложно. Прежде всего нужно войти в консоль MySQL:

mysql -u root -p

Вас попросят ввести пароль, заданный на предыдущем этапе. Чтобы добавить новую базу, используйте команду вида:

CREATE DATABASE название_базы

Как правило, для каждого проекта создается отдельная БД и отдельный пользователь, который будет ею управлять. Добавим нового юзера:

CREATE USER имя@localhost  IDENTIFIED BY 'пароль';

После этого передадим ему привилегии по управлению нашей базой:

GRANT ALL PRIVILEGES ON название_базы* TO имя@localhost  IDENTIFIED BY 'пароль';

Готово! Теперь на вашем сервере есть созданная с нуля база данных. Настройка MySQL завершена.

Подключение PHP

Последний этап настройки LEMP — это подключение интерпретатора языка PHP, на котором написано большинство современных CMS. Он будет обрабатывать код и генерировать динамический контент для веб-сервера. Чтобы PHP мог взаимодействовать и с Nginx, и с MySQL, установите на VPS/VDS два пакета: php-fpm и php-mysql. Команда выглядит так:

sudo apt install php-fpm php-mysql

Подтвердите загрузку, нажав Y и Enter. Сервер автоматически инсталлирует актуальные версии пакетов, поскольку мы обновили их в самом начале. Теперь настроим конфигурационный файл.

Изменение конфигурации

Первым делом нам нужно отредактировать файл php.ini, чтобы закрыть важную уязвимость. В Debian-системах его можно открыть командой:

/etc/php/8.1/fpm/php.ini

Где «8.1» — версия PHP, которая работает на вашем VPS/VDS. На момент написания статьи 8.1.1 является новейшей редакцией. После открытия файла конфигурации можно приступать к настройке. Найдите и раскомментируйте строку:

;cgi.fix_pathinfo=1

Замените единицу на ноль. В результате должно получиться:

;cgi.fix_pathinfo=0

Это позволит избежать несанкционированного доступа к сайту через несуществующие файлы .php.

Добавление каталога для файлов

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

sudo mkdir /var/www/ваш_домен/public_html

Загружать файлы CMS необходимо в public_html. После этого останется только передать привилегии на управление нашему веб-серверу:

sudo chown -R www-data:www-data /var/www/html/*

Заключение

Настраивать VDS/VPS с нуля может быть непросто, если вы никогда ранее этим не занимались. В нашем руководстве описаны только начальные шаги по настройке, с которыми может справиться даже неопытный пользователь. Мы описывали все действия через терминал, но вообще для этого можно использовать панель управления. Если вам нужны более тонкие настройки или вы хотите запустить сервер не для сайта, а например VPN, лучше обратиться за помощью к специалистам.

Время на прочтение
12 мин

Количество просмотров 38K

Многим из тех, кто сегодня нуждается в веб-хостинге, необходим простейший метод управления серверами. Обычно предполагается, что вместе с хостингом предоставляется и графический интерфейс (GUI). И действительно, нередко хостеры предлагают лучшие панели управления – веб-консоли. Они представляют собой веб-интерфейс, позволяющий администраторам и/или пользователям управлять различными сервисами сервера в комфортной среде веб-браузера.

Рассмотрим кратко некоторые из наиболее популярных вариантов из числа доступных и активно поддерживаемых. 11 этих проектов относятся к категории Open Source, а шесть представляют собой проприетарное ПО.

Типовые средства панелей управления

В целом большинство панелей управления реализуют общий набор типовых функций. Хотя многие позволяют выполнять лишь некоторое их подмножество, есть несколько консолей, которые включают весь функционал. ПО панели управления для веб-хостинга может предоставлять доступ к следующим функциям:

  • Управление системой доменных имен (веб-домены, почтовые домены и пр.).
  • Управление системой электронной почты (адреса электронной почты, квоты, предотвращение спама, и др.).
  • Управление FTP (учетные записи пользователей, управление паролями, квотирование файловых систем).
  • Доступ к файловой системе из веб-интерфейса.
  • Управление пользователями/ключами SSH.
  • Управление базами данных (MySQL, PostgreSQL и иногда другими системами баз данных).
  • Управление резервным копированием.
  • Доступ к логам и создание отчетов.
  • Плагины для конфигурирования дополнительных сервисов и инсталляции приложений (например, WordPress).

Корпоративные средства панелей управления

Некоторые проекты предлагают также средства корпоративного класса, например:

  • Управление несколькими серверами с одной панели управления.
  • (Для хостов) позволяют нескольким клиентам параллельно запускать программную панель управления на сервере.
  • Мониторинг сервисов и оповещение.
  • Систему обработки обращений клиентов.
  • Поддержку протокола IPv6.

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

Возможности этих панелей управления разнообразны. Некоторые, возможно, лучше всего подходят для виртуального хостинга (shared), в то время как другие очень популярны среди пользователей облачного хостинга. Тем не менее, работает ли ваш сайт на базе выделенных серверов (dedicated), VPS, или размещается в общей среде, всегда пригодится возможность управлять файлами, электронной почтой, приложениями и пр. из единого интуитивно понятного интерфейса. Подчас это имеет неоценимое значение.

Обзор панелей управления

cPanel

cPanel – наиболее широко применяемая веб-консоль. Владельцы сайтов используют cPanel как панель управления, а хостинг-провайдеры — Web Host Manager (WHM) в качестве инструмента администрирования.

В целом и cPanel, и WHM можно рассматривать как самые полнофункциональные системы. Хотя cPanel поддерживается только в Linux, поддержку Windows можно реализовать с помощью продукта Enkompass или через виртуализацию. Однако пользовательский интерфейс, будучи простым, определенно не является лучшим среди веб-консолей.

  • Средства
  • Демо
  • Цены

Plesk

Plesk — ведущая панель управления в США, ей принадлежит также примерно 75-80% европейского рынка. Поддерживая широкий спектр версий Linux, а также обеспечивая совместимость с Windows, она поставляется в нескольких изданиях, Каждое предназначено специально для конкретного варианта хостинга и сценария использования.

Пользовательский интерфейс можно назвать несколько более четким и понятным, чем у cPanel, но с точки зрения функций Plesk и cPanel почти не отличаются. Оба продукта используются в крупных хостинговых компаниях (часто в виде фирменных версий) и многими другими заказчиками.

» Бесплатная демо-версия

Недавно Plesk стала независимой компанией, и разработчики активно пытаются идти в ногу с постоянно развивающимся Web. Создатели панели ориентированы как на хостинг для неопытных пользователей, так и на профессиональных разработчиков, и стараются сделать управление сервером простым и эффективным. Компания также инвестирует значительные средства в образовательную часть с элементами маркетинга, чтобы научить веб-профессионалов лучшим практикам ведения бизнеса в интернете, маркетинга и даже эффективной подачи материала.

Особенности

  • Независимость от хостов/ОС: Plesk можно устанавливать на широкий спектр операционных систем и практически на любой хост. Если вы используете любую разновидность популярной версии Linux (CentOS, Ubuntu, CloudLinux и пр.) или даже Windows, то можно запустить Plesk. В качестве дополнительного бонуса вы даже можете запустить Plesk внутри контейнера Docker, взятого с Docker Hub. Это сильный козырь, отличающий Plesk от cPanel, которая работает только на CentOS.
  • Интеграция с Git: В ответ на жалобы, что многие веб-консоли не поддерживают Git, популярную систему контроля версий, применяемую для отслеживания изменений и обновлений сайтов, в Plesk было добавлено расширение Gitman. Данное расширение доступно в версии Plesk 12.5 и старше, а в будущей версии Plesk в ядро будет встроена полная поддержка Git.
  • Интеграция с Docker: В релизе октября 2016 года ядро Plesk будет включать также поддержку Docker с каталогом из более 200 000 образов Docker. Это даст возможность запускать образы Docker прямо из Plesk, без помощи командной строки.
  • Безопасность SSL: Даже тем, кто не имеет опыта хостинга, следует разбираться в средствах безопасности SSL. К сожалению, настраивать и обновлять их подчас непросто. Благодаря новым сервисам типа Let’s Encrypt оснащение сайта средствами безопасности SSL (TLS) значительно упрощается, а потому нет никаких причин оставлять ваши страницы незащищенными. Plesk будет автоматически обрабатывать получение сертификата и конфигурировать файлы базы данных для доступа по https, что обеспечит защиту и веб-консоли, и размещенных на сервере сайтов. Это включает и такие «вкусности» как обновление вашего сертификата, поддержку HTTP2 и предоставление вам подробной информации по безопасности, когда ваш сервер подвергается атаке.
  • Поддержка WordPress: Будущая расширенная версия позволит пользователям WordPress одним кликом доверить управление безопасностью Plesk. Консоль Plesk возьмет на себя управление обновлениями плагинов, исправление ошибок в ПО и применение обновлений для усиления безопасности.
  • Демо
  • Цены

Для более продвинутых пользователей панель предусматривает поддержку многочисленных версий PHP, а поддержка Ruby, Python и NodeJS реализована через Phusion (в релизе Plesk Onyx она уже встроенная). В числе поддерживаемых популярных Linux-систем — Ubuntu, CentOS, RHEL, Debian и CloudLinux, а для Ubuntu и Debian возможен апгрейд.

DirectAdmin

DirectAdmin – относительно «легкая» панель управления с поддержкой Linux. В ней есть все базовые функции панели управления, включая инсталляцию для нескольких клиентов. Все лицензии продаются без ограничений на число доменов.

  • Средства
  • Демо
  • Цены

Core-Admin

Core-Admin – панель разрабатывалась как централизованное решение с широкими возможностями подключения, которое позволяет управлять несколькими серверами с одной веб-консоли. Это ПО включает развитую систему назначения полномочий и функции мониторинга. Есть бесплатная версия Free Web Edition на 10 доменов.

  • Средства
  • Демо
  • Цены

InterWorx

InterWorx предлагается в виде двух пакетов: NodeWorx (для управления сервером) и SiteWorx (для управления сайтом). В Interworx хорошая система плагинов, позволяющих быстро устанавливать приложения, что напоминает менеджер веб-пакетов Softaculous. Есть в InterWorx и интерфейс командной строки.

  • Демо
  • Цены

ISPmanager

ISPmanager – гибкая панель управления на базе Linux, предлагаемая ISPsystem, ведущим российским поставщиком решений для автоматизации VPS хостинга. За почти двадцатилетнюю свою историю ISPmanager стала одной из самых популярных веб-консолей в Восточной Европе, растет ее популярность и в других регионах. Эта мощная панель доступна в двух редакциях. Обе можно кастомизировать для работы с неограниченным числом доменов и пользователей и в соответствии с вашим брендингом.

Версия ISPmanager Lite разработана для управления VPS и выделенными серверами.

ISPmanager Business – идеальный вариант для виртуального VDS хостинга (shared) или реселлеров хостинга. ISPmanager – коммерческий продукт с функциями, аналогичными функциям панелей премиум-класса, при относительно низкой цене, поэтому многие пользователи считают данный вариант наиболее выгодным. Сочетание богатых функциональных возможностей ISPmanager и приемлемой стоимости – то качество, благодаря которому мы с удовольствием представляем данный продукт пользователям.

  • Средства
  • Цены
  • Демо и ознакомительная версия на 30 дней

i-MSCP

i-MSCP — продукт Open Source, претендующий на звание отличной панели управления несколькими серверами и для профессионалов (например, хостинг-провайдеров), и для личного пользования. В этой панели сложно выделить что-то одно, но у нее есть активное сообщество.

  • Средства
  • Исходники

Froxlor

Froxlor – также веб-консоль из разряда Open-Source с очень понятным интерфейсом. В ней есть поддержка IPv6, система обработки обращений клиентов и встроенная система обмена сообщениями «реселлер-заказчик». Идеальный вариант для интернет-провайдеров и подобных организаций.

  • Средства
  • Демо
  • Исходники

Vesta

Vesta — продукт Open Source, претендующий на звание самой простой и «легкой» веб-консоли. Он не поддерживает средства корпоративного уровня (вроде многосерверных инсталляций), но разработчики постарались сфокусировать свое внимание на производительности, для чего в качестве фронт-энда использовали Nginx, а в роли бек-энда приложения — Apache.

  • Средства
  • Исходники

ZPanel

Zpanel (не обновлялась с марта 2014 и, возможно, уже не поддерживается) – панель управления Open Source «корпоративного класса с поддержкой неограниченного числа реселлеров». Интерфейс продукта компактен и высокофункционален. Zpanel поддерживает многие операционные системы, включая Linux, Windows, MacOS и FreeBSD.

  • Средства
  • Исходники

Sentora

Sentora – ответвление ZPanel. Это разделение произошло после продажи Zpanel компании, базирующейся в США. Sentora считается версией ZPanel, развиваемой сообществом пользователей. Команда Sentora предлагает также премиальную поддержку по модели подписки.

  • Исходники

Webmin

Webmin — панель управления Open Source для системного администрирования в среде Linux/Unix. В ней есть десятки модулей для конфигурирования сервисов сервера. Инструментарий Cloudmin – интерфейс на базе Webmin для управления системами виртуализации, включая Xen, KVM и OpenVZ.

  • Демо
  • Исходники

ISPConfig

ISPConfig – популярная панель управления Open Sourcе с хорошей корпоративной поддержкой. Число ее скачиваний достигает 40 тыс. в месяц, в продукте есть хорошие инструменты для работы с несколькими серверами, поддержка IPv6и виртуализации (OpenVZ). Это идеальный вариант для сервис-провайдеров и корпоративной среды.

  • Демо
  • Средства

Ajenti

Ajenti – веб-консоль на базе Python, что отличает ее от систем управления на PHP. На сайте говорится, что у Ajenti свыше 55 000 активных пользователей. Консоль имеет очень хорошо спроектированный интерфейс. Ajento работает в различных дистрибутивах Linux и FreeBSD.

  • Исходники

BlueOnyx

BlueOnyx – веб-консоль Open Source, которая работает только в дистрибутивах CentOS и Scientific Linux. Ее интерфейс может показаться несколько устаревшим, но в числе многих других средств эта панель управления предлагает хорошую поддержку многопользовательских инсталляций.

  • Средства
  • Демо

CentOS Web Panel

CentOS Web Panel – веб-панель Open Source для CentOS Linux. Она содержит солидный набор функций, аналогичных большинству других веб-панелей, хотя возможность управления несколькими серверами отсутствует.

  • Средства
  • Демо

Virtualmin

Virtualmin – популярная панель управления, в основном Open Source. Предлагается она в трех версиях:

» Virtualmin GPL – базовая веб-консоль с богатым набором средств и приятным интерфейсом. Этот продукт доступен только в виде модуля Webmin. Webmin является одной из популярных в мире Linux / UNIX систем управления пользовательского интерфейса и имеет более трех миллионов загрузок в год.
Панель Virtualmin предлагает четыре метода управления сервером: через веб-интерфейс, с мобильного устройства, из командной строки и через удаленный HTTP API.

» Virtualmin Professional упрощает инсталляцию и обновление многих других приложений (например, WordPress, Joomla, Magento, NodeJS) и предусматривает коммерческую поддержку.

» Cloudmin Professional – панель управления несколькими серверами, реализованная на базе Virtualmin. Она используется компаниями и провайдерами для развертывания облачных сервисов. Cloudmin поддерживает Xen, vserver, Solaris Zones и Amazon EC2.

  • Средства
  • Демо
  • Цены
  • Исходники

Virtualmin Professional имеет более продвинутые средства для инсталляции приложений:

Заключительное замечание

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

Прежде чем выбирать панель управления, нужно понимать, какой именно вид хостинга вам более всего подходит (shared, dedicated или virtual). В соответствующем руководстве для начинающих рассказывается, что такое веб-хостинг и с чего лучше начать, а более осведомленные пользователи могут обратиться к руководству по VPS.

Не забывайте, что веб-панель – это лишь «приборная доска» для владельца сайта, помогающая управлять приложениями, файлами, программными дополнениями и пр. Многие поставщики услуг хостинга включают в свои пакеты панели управления с фантастическими возможностями.

Проприетарные панели управления

Удаленный доступ

Некоторые панели реализуют доступ к базовой ОС  через Java-апплет, при этом клиентская сторона должна использовать ПО Java Virtual Machine. Другие предоставляют прямой доступ через telnet или SSH.


Данная статья является доработанным переводом этой статьи и этой таблицы.

Для чего?

Вы уже получили навыки в создании web приложений и хотите разместить созданный сайт в интернете, но как это сделать? Все просто! Есть хостинг провайдеры, которые, как раз и предоставляют услуги, по размещению сайтов в сети. Заходя на страничку к провайдеру, вы видите, что можно взять в аренду виртуальный хостинг или VDS.

В чем разница? Давайте рассмотрим эти продукты и избавимся от боязни их использовать. Начнем по порядку от общего к частному.

Хостинг — это услуга по предоставлению ресурсов для размещения информации на сервере, постоянно имеющем доступ к интернету. Следовательно виртуальный хостинг — вид хостинга, при котором множество веб-сайтов расположено на одном веб-сервере. Это самый экономичный вид хостинга, подходящий для небольших проектов. Исходя из определения разные тарифы на виртуальные хостинг могут отличаться по следующим основным параметрам:

  1. размер дискового пространства;
  2. количество месячного трафика;
  3. количество сайтов, которые можно разместить в рамках хостинга как одной услуги;
  4. количество баз данных и количество места под базы данных;
  5. количество почтовых ящиков и FTP-аккаунтов;
  6. ресурсы CPU;
  7. количество оперативной памяти.

Примеры тарифов (хостинг timeweb)

Примеры тарифов (хостинг timeweb)

Используя виртуальный хостинг, соответственно Вы попадаете в определенные ограничения по использованию ресурсов, при превышении которых выставляются предупреждения об ограничении работы и предлагается повысить тариф или начать работу по оптимизации сайта. Но как компенсация этого, в Вашем распоряжении есть административная панель, с помощью которой вы можете реализовать все функции по управлению сайтами.

Альтернативой виртуального хостинга является использование VDSVPS (Virtual DedicatedPrivate Server) — это, виртуальный выделенный или приватный сервер, который предоставляется хостинг провайдером в аренду заказчику.Чтобы не вводить в заблуждение, сразу отмечу, что разницы между аббревиатурами VPS и VDS нет никакой. Дело в том, что два этих понятия появились практически одновременно и параллельно развивались.

Что же такое VDS? Говоря простым языком, поставщик услуг на своем оборудовании, с помощью средств виртуализации разворачивает несколько виртуальных (программных) серверов. С точки зрения функциональности такой сервер ничем не отличается от физического, на него также устанавливаются операционная система и программное обеспечение, он также расположен в сети и управляется, как и остальные ПК, средствами удаленного администрирования. При этом данный сервер находится на удаленной площадке провайдера, которая защищена от сбоев и оптимизирована под работу 24/7/365. В свою очередь хостинг провайдер берет на себя все обязательства по обслуживанию и сопровождению оборудования и системы виртуализации. Но соответственно цену на эту услугу несколько выше чем на виртуальный хостинг.

Примеры тарифов VDS

Примеры тарифов VDS

К достоинствам этой услуги можно отнести, что Вы больше не будете ограничены количеством месячного трафика, размещаемых сайтов, базами данных и прочим. В Ваших силах теперь установить на свой VDS все необходимое программное обеспечение без каких-либо запретов и ограничений.

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

Что бы исправить возникшую несправедливость и обучить настройке и азам администрирования VDS и создано это руководство.

Исходные данные

Определим, что у нас есть некоторый сайт, работающий на php+MySQL под управлением некой CMS (в нашем случае это будет MODX Revolution, но на процесс настройки VDS это не влияет), а это значит, что помимо развертывания CMS необходимо установить и настроить основные модули php, nginx, mysql. Для этого определим следующую последовательность наших действий:

  1. Регистрация на хостинге и конфигурация VDS;
  2. Создание VDS из панели управления;
  3. Подключение по SSH;
  4. Обновление и установка пакетов системы;
  5. Установка nginx + php;
  6. Установка mariadb (mysql);
  7. Создание нового пользователя системы;
  8. Конфигурирование php-fpm;
  9. Конфигурация nginx;
  10. Конфигурация mysql;
  11. Создание пароля для root пользователя mysql;
  12. Создание нового пользователя и базы данных для сайта;
  13. Создание недостающих каталогов и перезапуск сервисов;
  14. Установка MODX.

Регистрация на хостинге и конфигурация VDS

В руководстве будем пользоваться услугами компании timeweb. Переходим на вкладку VPS / VDS, из предлагаемых тарифов выбираем тот, который нам подходит по характеристикам и нажимаем кнопку заказать. После этого попадаем в окно регистрации и выбора параметров виртуального сервера.

В текстовые поля вводим свою фамилию, имя и отчество, и адрес электронной почты. В выпадающем списке меняем операционную систему на Ubuntu 20.04

Форма регистрации

Форма регистрации

Далее жмем кнопку «ЗАКАЗАТЬ» и переходим к оплате. После окончания регистрации на электрону почту придет письмо, содержащее данные для подключения к виртуальному серверу (ip адрес сервера, пароль root пользователя).

Root – это суперпользователь в системах *nix. С помощью этой учетной записи можно осуществлять административные операции над важными файлами ОС.

Создание VDS из панели управления

Если вы уже зарегистрированы на этом хостинге, то заходим панель управления, нажимаем кнопку «СОЗДАТЬ СЕРВЕР» (1), вводим имя сервера (2), выбираем операционную систему «Ubuntu 20.04» (3), указываем конфигурацию сервера (выбираем тариф) (4). Чтобы создать виртуальный сервер в верхней части окна, нажимаем на кнопку «СОЗДАТЬ СЕРВЕР».

Панель управления при создании нового сервера

Панель управления при создании нового сервера

Создание сервера занимает некоторое время, обычно оно не превышает нескольких минут. После того как создание будет завершено на электронную почту поступит информационное письмо с данными для подключения и в панели управления отобразится статистика по виртуальному серверу.

Подключение по SSH

Для подключения к серверу мы будем использовать встроенный терминал macOS или, если вы работаете в операционной системе windows, то программой Putty.

SSH — (Secure Shell) — это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал.

Дальнейшая руководство будет построено на примере работы из под macOS, для windows все действия аналогичны и не различаются.

Откройте окно терминала и введите следующую команду

где ssh — означает подключиться к удаленному компьютеру по протоколу ssh, в записи «root@193.168.3.225» — обозначает имя пользователя (root), @ — разделитель, 193.168.3.225 — ip адрес удаленного компьютера (смените на полученный в письме)

Нажмите клавишу «Enter», введите пароль и нажмите еще раз «Enter». Приглашение терминала изменится и это является свидетельством подключения к серверу.

Вид терминала после успешного подключения по SSH

Вид терминала после успешного подключения по SSH

Обратите внимание!

root@343158-artprog157:~#

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

  1. root — имя подключенного пользователя;
  2. @ — разделитель;
  3. 343158-artprog157 — имя компьютера
  4. знак «#» на конце строки означает, что пользователь имеет права суперпользователя, у обычного пользователя знак «$».

Обновление и установка пакетов системы

Обновление пакетов системы является неотъемлемой частью перед установкой программного обеспечения и настройкой сервера. В Ubuntu используется пакетный менеджер APT (Advanced Package Tool, Улучшенный инструмент для работы с пакетами), который умеет работать с репозиториями, разрешать зависимости и взаимодействовать с dpkg, которая, собственно, и занимается установкой пакетов. APT всегда работает с локальным кешем списков, поэтому перед любыми действиями с пакетным менеджером следует обновить списки в кэше. Это можно сделать следующей командой

Введенная команда проверяет версии списков в репозитории и при необходимости скачивает их новые версии, после чего анализирует список установленных пакетов и сообщает о доступных обновлениях. Далее обновления нужно установить с помощью команды

Это безопасный способ обновления, при котором обновляются только установленные пакеты и не происходит установки новых пакетов, если они затрагивают текущие версии, также не удаляются убранные из репозитория пакеты. На этом обновление системных пакетов закончено, переходим к следующему шагу.

Установка nginx + php

Приступим к установке программного обеспечения, необходимого для функционирования системы MODx, как и на предыдущем шаге мы будем использовать менеджер APT. Синтаксис команды для установки выглядит следующим образом

apt-get install {имя пакета}

Так как, необходимо установить более одного пакета, то не нужно вводить команду каждый раз для конкретного пакета. Можно все имена пакетов вписать в одну команду, отделяя их друг от друга пробелами. Выполните установку необходимых нам пакетов следующей командой:

apt-get install nginx php-common php-cli php-curl php-json php-gd php-mysql php-xml php-zip php-fpm php-mbstring php-bcmath php-pear

И так, мы выполнили установку nginx и php с библиотеками. Проверим, как установились пакеты. Для этого откройте браузер и в адресную строку впишите ip адрес виртуального сервера. У Вас должно отобразится приветственное окно nginx.

Страница приветствия nginx по-умолчанию

Страница приветствия nginx по-умолчанию
apt-get install mariadb-server-10.3

На этом установке завершена, настройка будет происходить в последующих шагах.

Создание нового пользователя системы

Теперь перейдем к созданию пользователя, от имени которого мы будем в дальнейшем работать с удаленным сервером. Так же использование root пользователя, в качестве основного создает предпосылки к нарушению системы безопасности. Определим следующую логику создания пользователей: один сайт — один пользователь с соответствующими настройками nginx, php, mariadb и правами на каталоги своего сайта. Таким образом, если один сайт взломают, то другие будут защищены благодаря нашей настройки.
Создадим пользователя с именем test, который входит в группу www-data командой:

useradd -d /home/test -g www-data -m -s /bin/bash test

-d — определяет домашний каталог (в нашем случае /home/test)
-g — задает группу создаваемого пользователя (www-data)
-m — создает домашний каталог если он не существует
-s — устанавливает командную оболочку

Чтобы в дальнейшем мы могли выполнять какие-либо административные действия добавим созданного пользователя в группу sudo

Осталось задать пароль пользователю, выполним команду

После этого необходимо ввести пароль и повторить его (при вводе пароль не отображается)

Проверим этот путем подключения к удаленному серверу под созданным пользователем, для этого повторим шаг «Подключение по SSH»

Обратите внимание, что приглашение теперь содержит имя пользователя test и заканчивается на знак $, что это значит можно узнать выше. Продолжим настройку сервера. Переподключитесь к нему под пользователем root.

Конфигурирование php-fpm

Начнем настройку php-fpm — это программный пакет, позволяющий выполнить обработку скриптов, написанных на языке PHP.
Настройка в операционной системе Linux, в большинстве случаев, сводится к правке конфигурационных файлов. Соответсвенно, для настройки php-fpm, необходимо перейти в каталог с этими файлами. Введите команду которая сменит каталог

cd /etc/php/7.4/fpm/pool.d/

Посмотрите какие файлы есть в этом каталоге

ls -al

Как видим в этой директории есть только один файл — www.conf. Он содержит конфигурацию сайтов, которые будут запускаться на этом сервере. Теперь удалим его и создадим новый, с описанием запуска нашего сайта.

Новый файл будет состоять из следующих строк

[test.site]
listen = /run/php/php-test.sock //сокет
listen.mode = 0666 //права на запуск
user = test //пользователь от имени которого будет запущен php
group = www-data //принадлежность к группе

//задание директив php
php_admin_value[upload_tmp_dir] = /home/test/tmp  //каталог для загружаемых файлов
php_admin_value[date.timezone] = Europe/Moscow //временная зона
php_admin_value[open_basedir] = /home/test  //корневой каталог сайта
php_admin_value[post_max_size] = 512M  // максимальной размер POST
php_admin_value[upload_max_filesize] = 512M //максимальный размер загружаемого файла
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[short_open_tag] = On //использовать короткую запись php
php_admin_value[memory_limit] = 512M //лимит оперативной памяти
php_admin_value[session.gc_probability] = 1 //настройки сессий
php_admin_value[session.gc_divisor] = 100 //настройки сессий
php_admin_value[session.gc_maxlifetime] = 28800; //максимальное время жизни сессии
php_admin_value[error_log] = /home/test/logs/php_errors.log; //файл записи лога ошибок

//задание динамических параметров
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4

Создадим файл конфигурации test.conf, с помощью встроенного редактора nano вставим строки кода приведеные выше, и сохраним файл.

На этом настройка php-fpm закончена, переходим далее.

Конфигурация nginx

NGINX – это мощный веб-сервер, использующий не потоковую, управляемую событиями архитектуру, которая позволяет ему превосходить Apache. Приступим к его конфигурированию.
Перейдите в каталог веб-сервера

В этой папке нас интересует два каталога, которые хранят настройки сайтов — sites-available, sites-enabled. Перейдем в первый каталог sites-available

Здесь находится файл default, который содержит установки по умолчанию. Удалите его командой

С помощью редактора nano создадим файл конфигураций 00-default. (00 в начале имени файла необходим для того, файл был первым в каталоге т.к. в своей работе nginx обращается сначала к первому файлу)

Внутрь файла поместите следующий код

 server {
    listen [::]:80;
    listen      80;
    server_name "";
    return      444; # закрытие соединения без ответа
}

Данный код запрещает обращаться к сайту через ip адрес и в этом случае выводит пользователю ошибку 444.
Сохраните файл. Далее создайте второй файл конфигураций, который будет задавать правила работы с нашим сайтом

Внутрь файла поместите следующий код, потом сохраните его

upstream backend-test {
  server unix:/run/php/php-test.sock;
}

server {
	listen [::]:80;
	listen 80;
	server_name test.site; # имя нашего сайта
	access_log /home/test/logs/nginx_access.log;
	error_log /home/test/logs/nginx_error.log;
	
	gzip on;
	# Минимальная длина ответа, при которой модуль будет жать, в байтах
	gzip_min_length 1000;
	# Разрешить сжатие для всех проксированных запросов
	gzip_proxied any;
	# MIME-типы которые необходимо жать
	gzip_types text/plain application/xml application/x-javascript text/javascript text/css text/json;
	# Запрещает сжатие ответа методом gzip для IE6 (старый вариант gzip_disable "msie6";)
	gzip_disable "MSIE [1-6].(?!.*SV1)";
	# Уровень gzip-компрессии
	gzip_comp_level 6;
	
	# корневой каталог сайта
	root /home/test/test.site/www;
	index index.php;
	
	# запрет для всех для при обращению к ядру MODx из браузера
	location ~ ^/core/.* {
	  deny all;
	  return 403;
	}
	# переадресация запросов на адрес index.php
	location / {
	  try_files $uri $uri/ @rewrite;
	}
	location @rewrite {
	  rewrite ^/(.*)$ /index.php?q=$1;
	}
	
	# При обращении к файлам php будет происходить запуск сокета php который мы настраивали на предыдущем шаге (Конфигурирование php-fpm)
	location ~ .php$ {
	  try_files  $uri =404;
	  include fastcgi_params;
	  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	  fastcgi_pass backend-test;
	}
  
	# кэширование файлов с указанными расширениями
	location ~* .(jpg|jpeg|gif|png|css|js|woff|woff2|ttf|eot|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|docx|xlsx)$ {
	  try_files $uri @rewrite;
	  access_log off;
	  expires 10d;
	  break;
	}

	location ~ /.ht {
	  deny all;
	}
}

Продолжаем настройку nginx. Перейдите в каталог sites-enabled

В этом каталоге удалите ссылку на уже не существующую конфигурацию

Создайте две ссылки на конфигурационные файлы созданные выше

ln -s ../sites-available/00-default.conf
ln -s ../sites-available/01-test.sites.conf

На этом конфигурация сервера nginx завершена. Двигаемся дальше!

Конфигурация mysql

Переходим в каталог mysql.

В этом каталоге находится файл my.cnf, в котором содержатся настройки нашей системы управления базами данных. Откройте этот файл в редакторе nano и отредактируйте

В конец файла вставьте следующий код, который обеспечит работу системы MODx с базой данных без ошибок

[mysqld]
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Теперь настроим парольный доступ root пользователя к базе данных. Для этого подключимся к СУБД

Подключение к базе сопровождается выводом ее приветствия (смотри изображение), после этого подключитесь к базе mysql. Обратите внимание, что при работе с базой данных каждая строка должна завершаться точкой с запятой, в случае ее отсутствия СУБД будет воспринимать следующую строку как продолжение предыдущей.

USE mysql;

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

Такую строку можно прочитать следующим образом:»Обнови в таблице user столбец plugin на mysql_native_password для строк где в колонке User значение root». Таким образом, мы разрешили пользователю root авторизироваться в СУБД через пароль БД. Однако сам пароль мы не задали, исправим это

ALTER USER 'root'@'localhost' IDENTIFIED BY 'testtest';

Таким образом, мы задали пароль testtest для локально подключенного пользователя root. После этого, необходимо перезагрузить привелегии пользователей командой

Как проверить правильность выполненных действий? Нужно войти в операционную систему под пользователем test (его мы создали немного выше) и подключиться к СУБД как root. Делаем следующие шаги — подключаемся как test

У вас должно измениться приглашение системы на пользователя test. Теперь настала очередь подключиться к СУБД

В приведенной команде -u — определяет что следующим идет имя пользователя, -р — использовать нативный пароль mysql (именно тот что мы и настраивали). После отправки команды СУБД попросит ввести пароль (нами был задан пароль testtest). Если у Вас все получилось, то шаги, проделанные выше, выполнены правильно. Далее выйдите из СУБД, подключитесь к операционной системе как root, и от имени этого же пользователя подключитесь к СУБД. Переходим дальше.

CREATE DATABASE IF NOT EXIST test;

Создадим пользователя в базе данных с именем test и паролем testtest. В дальнейшем этот пользователь будет использоваться системой MODx для работы с базой данных.

CREATE USER 'test'@'localhost' IDENTIFIED BY 'testtest';

Определим для созданного пользователя права при подключении к СУБД

GRANT USAGE ON *.* TO 'test'@'localhost' IDENTIFIED BY 'testtest' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Выдадим пользователю test все привилегии, на созданную, базу данных с правом ее передачи

GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost' WITH GRANT OPTION;

После этого необходимо перезагрузить привилегии пользователей командой

Проверьте правильность выполненных шагов следующим образом: подключитесь к СУБД под пользователем test.

Создание недостающих каталогов и перезапуск сервисов

На данном этапе мы выполним следующие шаги:

  1. Подготовка каталогов, которые мы использовали в настройках;
  2. Перезапуск сервисов.

Для правильной установки и функционирования MODx осталось создать недостающие каталоги. Выполните следующие команды

sudo -u test mkdir /home/test/tmp
sudo -u test mkdir /home/test/logs
sudo -u test mkdir /home/test/test.site
sudo -u test mkdir /home/test/test.site/www

В приведенных командах, как Вы заметили, операции по созданию каталогов (mkdir) выполняются с правами супер пользователя (sudo), от имени пользователя test (-u test). Это сделано с целью, чтобы пользователь test был владельцем этих каталогов и имел, по отношению к ним, полные права. После выполнения команд проверьте структуру каталога, там должны были появиться созданные нами папки.

Практически все готово к установке MODx, осталось перезапустить службы php, nginx, mysql. Это связано с тем, что настройки всех сервисов содержаться в текстовых файлах и считываются только при запуске служб. Выполните команды

sudo service php7.4-fpm restart
sudo service nginx restart
sudo service mysql restart

Так как, мы запретили подключение по ip адресу, то необходимо в локальном файле hosts указать переадресацию. Добавьте следующую строку в конец файла (Ваш ip адрес может отличаться от того, который приведен в примере)

Проверьте правильность выполненных действий. Введите в адресную строку браузера ip адрес сервера, Вам должна выдаться ошибка 444.

Если обратитесь по имени сайта, то ошибка должна следующей

Это является свидетельством, что все настроено правильно на данном этапе инструкции.

Установка MODX

Перед установкой MODx необходимо его дистрибутив поместить на наш виртуальный сервер. Для этого будем использовать текстовый загрузчик wget. Давайте установим его

На официальном сайте MODx скопируйте ссылку на дистрибутив (в моем случае она имеет вид https://modx.com/download/direct?id=modx-2.7.3-pl.zip&0=abs). Теперь с помощью программы wget сохраним его в каталоге /home/test/test.site/www/ командой

wget -P home/test/test.site/www/ https://modx.com/download/direct?id=modx-2.7.3-pl.zip&0=abs  

После скачивания проверьте, что в каталоге www присутствуют следующие файлы и папки (для разных версий MODx состав может незначительно отличаться)

Приступим к установке MODx. В адресную строку строку браузера введите

Откроется окно выбора языка, оставьте русский и нажимайте «ДАЛЕЕ»

Выберите пункт «НОВАЯ УСТАНОВКА», нажмите «ДАЛЕЕ»

В этом окне установите базу данных mysql, сервер — localhost, имя пользователя — test, укажите его пароль (testtest), имя базы данных — test, кодировка подключения — utf8, сопоставление — utf8_general_ci.

Теперь придумайте логин и пароль администратора сайта

Удостоверьтесь, что в отчете об установке все компоненты установлены и работают

Нажмите войти и введите регистрационные данные администратора сайта

На этом установка MODx закончена.

Заключение

В руководстве мы рассмотрели большой объем материала. Затронули множество тем, которые затрагивают основы администрирования удаленного сервера, установки и настройки необходимого программного обеспечения. Данное руководство, на первый взгляд, только выглядит сложно, но по мере получения практических навыков, для Вас, эти процедуры будут казаться элементарными.

Вступление

Puppet — это утилита управления конфигурацией с открытым исходным кодом, позволяющая пользователю автоматически, а при необходимости также удаленно управлять несколькими системами и их конфигурацией. Puppet является декларативным, что означает, что пользователю нужно только запросить состояние службы или ресурса, а на самом деле не думать о том, как это состояние будет достигнуто.

Другими словами, представьте, что вы системный администратор, управляющий сотнями систем, и вам нужно убедиться, что этот определенный ресурс, например Привет пакет установлен. Чтобы достичь этого традиционным способом системного администрирования, администратор должен будет пройти несколько проверок, таких как текущее состояние установка пакета, тип платформы операционной системы, команда установки, которая будет использоваться до фактической установки пакета. Будучи марионеткой декларативно, пользователю нужно только определить состояние желаемого пакета, а марионетка позаботится обо всем остальном. В случае, если установлен наш пакет «hello», марионетка не будет предпринимать никаких действий, а если пакет не установлен, он установит его.

Сценарий

В нашем сценарии мы не собираемся запускать сотни операционных систем и пытаться ими управлять. Наша цель будет намного проще. Фактически, мы собираемся запустить только две отдельные системы, в которых запущен puppet master и puppet agent. Таким образом, через главный сервер марионеток мы попытаемся настроить удаленный узел и установить пакет «hello» с помощью агента марионеток. Это будет сделано с минимально возможной конфигурацией.

Терминология

  • Puppet master — центральный сервер, на котором размещаются и компилируются все манифесты конфигурации агента.
  • марионеточный агент — служба, которая запускается на узле и периодически проверяет состояние конфигурации с главным марионеточным сервером и извлекает текущий обновленный манифест конфигурации
  • manifest — файл конфигурации, которым обмениваются сборщик марионеток и агент марионетки
  • узел — операционная система, на которой работает служба марионеток

Настройки сценария

В этом руководстве я буду называть оба хоста просто как владелец и узел1. Операционная система, используемая на обоих владелец и узел1 экземпляров — это Debian 8 Jessie. Ubuntu Linux также можно использовать в качестве альтернативы этому руководству. Базовая конфигурация сети не имеет значения. Однако ожидается, что узел1 может решить владелец хост по его имени, и оба хоста подключены, и применяются правильные настройки брандмауэра, чтобы разрешить марионетку владелец и узел1 агент для связи:

root @ node1: / # ping -c 1 master. Мастер PING (172.17.0.1): 56 байтов данных. 64 байта из 172.17.0.1: icmp_seq = 0 ttl = 64 time = 0,083 мс. основная статистика ping 1 пакет передан, 1 пакет получен, потеря пакетов 0%. двусторонний мин. / сред. / макс. / стандартное отклонение = 0,083 / 0,083 / 0,083 / 0,000 мс. 

ПРИМЕЧАНИЕ: Прочтите приложение о том, как настроить вышеуказанное сценарий без усилий с Docker.

Установка и настройка Pupper Master

Начнем с установки кукловода:

root @ master: ~ # apt-get install puppetmaster-пассажира. 

Приведенная выше команда установит Puppet вместе с Apache и Passenger. Таким образом, вместо использования типичного сервера WEBrick мы задействуем Apache Passenger для запуска мастера марионеток на порту. 8140. Файл конфигурации Apache Passenger по умолчанию и автоматически сгенерированный файл можно найти в /etc/apache2/sites-available/puppetmaster.conf:

# Эта конфигурация виртуального хоста Apache 2 показывает, как использовать Puppet в качестве стойки. # приложение через Passenger. Видеть. # http://docs.puppetlabs.com/guides/passenger.html за дополнительной информацией. # Вы также можете использовать включенный файл config.ru для запуска Puppet с другим Rack. # сервера вместо Passenger. # вы, вероятно, захотите настроить эти параметры. PassengerHighPerformance on. PassengerMaxPoolSize 12. PassengerPoolIdleTime 1500. # PassengerMaxRequests 1000. PassengerStatThrottleRate 120 Слушайте 8140  SSLEngine на протоколе SSL ALL -SSLv2 -SSLv3 SSLCipherSuite EDH + CAMELLIA: EDH + aRSA: EECDH + aRSA + AESGCM: EECDH + aRSA + SHA384: EECDH + aRSA + SHA256: EECDH: + CAMELLIA256: + AES256: + CAMELLIA128: + AES128: + SSLv3:! ANULL:! ENULL:! LOW:! 3DES:! MD5:! EXP:! PSK:! DSS:! RC4:! SEED:! ИДЕЯ:! ECDSA: kEDH: CAMELLIA256-SHA: AES256-SHA: CAMELLIA128-SHA: AES128-SHA SSLHonorCipherOrder в SSLCertificateFile /var/lib/puppet/ssl/certs/master.pem SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/master.pem SSLCertificateChainFile /var/lib/puppet/ssl/certs/ca.pem SSLCACertificateFile /var/lib/puppet/ssl/certs/ca.pem # Если Apache жалуется на недопустимые подписи в CRL, вы можете попробовать отключить проверку # CRL, прокомментировав следующую строку, но это не рекомендуется. SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem # Apache 2.4 вводит директиву SSLCARevocationCheck и устанавливает для нее значение none #, что эффективно отключает проверку CRL; если вы используете Apache 2.4+, вы должны # указать «цепочку SSLCARevocationCheck», чтобы фактически использовать CRL. # SSLCARevocationCheck chain SSLVerifyClient optional SSLVerifyDepth 1 # Параметр ExportCertData необходим для предупреждений об истечении срока действия сертификата агента SSLOptions + StdEnvVars + ExportCertData # Этот заголовок необходимо установить при использовании балансировщика нагрузки или прокси RequestHeader unset X-Forwarded-For RequestHeader set X-SSL-Subject % {SSL_CLIENT_S_DN} e RequestHeader установить X-Client-DN% {SSL_CLIENT_S_DN} e RequestHeader установить X-Client-Verify% {SSL_CLIENT_VERIFY} e DocumentRoot / usr / share / puppet / rack / puppetmasterd / public / RackBaseURI /  Параметры Нет AllowOverride Нет Порядок разрешить, запретить разрешить для всех 

Глядя на приведенный выше файл конфигурации, мы можем заметить несколько сертификатов SSL, автоматически сгенерированных на основе имени хоста системы. Убедитесь, что все перечисленные пути сертификатов указывают на правильные марионеточные SSL-сертификаты. В противном случае необходимо будет создать новые сертификаты SSL. Если вам нужно сначала сгенерировать новые сертификаты, удалите текущие сертификаты:

корень @ мастер: ~ # rm -rf / var / lib / puppet / ssl. 

Затем запустите puppet на переднем плане, чтобы увидеть, как будут сгенерированы новые сертификаты. Когда закончите, остановите процесс комбинацией клавиш CTRL + C:

root @ master: ~ # марионеточный мастер --verbose --no-daemonize. Информация: Создание нового ключа SSL для ок. Информация: Создание нового запроса сертификата SSL для ок. Информация: Отпечаток запроса сертификата (SHA256): FA: D8: 2A: 0F: B4: 0B: 91: 8C: 01: AD: 71: B4: 49: 66: 1F: B1: 38: BE: A4: 4E: AF: 76: 16: D2: 97: 50: C8: A3: 8F: 35: CC: F2. Примечание: подписанный запрос сертификата для ок. Информация: Создание нового списка отзыва сертификатов. Информация: Создание нового ключа SSL для мастера. Информация: загрузка файла csr_attributes из /etc/puppet/csr_attributes.yaml. Информация: Создание нового запроса сертификата SSL для мастера. Информация: Отпечаток запроса сертификата (SHA256): 43: 67: 42: 68: 64: 73: 83: F7: 36: 2B: 2E: 6F: 06: 20: 65: 87: AB: 61: 96: 2A: EB: B2: 91: A9: 58: 8E: 3F: F0: 26: 63: C3: 00. Примечание: у мастера есть ожидающий запрос сертификата. Примечание: подписанный запрос сертификата для мастера. Примечание: удаление файла Puppet:: SSL:: CertificateRequest master в '/var/lib/puppet/ssl/ca/requests/master.pem' Примечание. Удаление файла Puppet:: SSL:: CertificateRequest master в '/var/lib/puppet/ssl/certificate_requests/master.pem' Примечание. Запуск основной версии Puppet 3.7.2 ^ CNotice: Caught INT; вызов стоп.

Прежде чем мы запустим нашего мастера марионеток, нам сначала нужно создать пустой манифест конфигурации по умолчанию:

корень @ мастер: ~ #> /etc/puppet/manifests/site.pp. 

Все готово для запуска мастера марионеток после перезагрузки:

root @ master: ~ # systemctl включить apache2. Синхронизация состояния apache2.service с sysvinit с помощью update-rc.d... Выполнение /usr/sbin/update-rc.d значений по умолчанию apache2. Выполнение /usr/sbin/update-rc.d apache2 enable. 

и запустите мастер марионеток, запустив веб-сервер apache:

root @ master: ~ # service apache2 start [ok] Запуск веб-сервера: apache2. корень @ мастер: ~ #

Убедитесь, что марионетка запущена

# ps aux. USER PID% CPU% MEM VSZ RSS TTY STAT ВРЕМЯ НАЧАЛА КОМАНДА. корень 1 0,0 0,0 20228 2016? Сс 11:53 0:00 / bin / bash. корень 1455 0,0 0,0 98272 4600? Сс 12:40 0:00 / usr / sbin / apache2 -k start. корень 1458 0,0 0,0 223228 1920? Ssl 12:40 0:00 PassengerWatchdog. корень 1461 0,0 0,0 506784 4156? Сл 12:40 0:00 PassengerHelperAgent. никто 1466 0,0 0,0 226648 4892? Сл 12:40 0:00 PassengerLoggingAgent. www-data 1476 0,0 0,0 385300 5116? Sl 12:40 0:00 / usr / sbin / apache2 -k start. www-data 1477 0,0 0,0 450880 5608? Sl 12:40 0:00 / usr / sbin / apache2 -k start. корень 1601 0,0 0,0 17484 1140? R + 12:44 0:00 пс доп. 

и прослушивание порта 8140:

# netstat -ant Активные интернет-соединения (серверы и установленные) Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние tcp6 0 0 8140 * LISTEN tcp6 0 0 80 * LISTEN tcp6 0 0 443 * LISTEN.

Конфигурация марионеточного узла

В настоящий момент наш главный сервер работает и ожидает запросов от марионеточного агента, поэтому пришло время установить наш марионеточный агент на узел1:

# apt-get install puppet. 

Затем нам нужно настроить марионетку для работы в качестве агента, удалив все директивы по умолчанию для главного сервера из его файла конфигурации. /etc/puppet/puppet.conf:
ИЗ:

[основной] logdir = / var / log / марионетка. vardir = / var / lib / марионетка. ssldir = / var / lib / puppet / ssl. rundir = / var / run / puppet. factpath = $ vardir / lib / facter. prerun_command = / etc / puppet / etckeeper-commit-pre. postrun_command = / etc / puppet / etckeeper-commit-post [мастер] # Они необходимы, когда кукловодом управляет пассажир. # и может быть безопасно удален, если используется вебрик. ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY.

К:

[основной] logdir = / var / log / марионетка. vardir = / var / lib / марионетка. ssldir = / var / lib / puppet / ssl. rundir = / var / run / puppet. factpath = $ vardir / lib / facter. prerun_command = / etc / puppet / etckeeper-commit-pre. postrun_command = / etc / puppet / etckeeper-commit-post [агент] сервер = мастер.

Указанная выше директива сервер = мастер определяет главный сервер, к которому должен подключиться марионеточный агент. Где слово владелец в нашем случае как имя хоста, которое преобразуется в IP-адрес главного сервера:

# ping -c 1 master. Мастер PING (172.17.0.43): 56 байтов данных. 64 байта из 172.17.0.43: icmp_seq = 0 ttl = 64 time = 0,226 мс. основная статистика ping 1 пакет передан, 1 пакет получен, потеря пакетов 0%. двусторонний мин. / сред. / макс. / стандартное отклонение = 0,226 / 0,226 / 0,226 / 0,000 мс. 

Часть установки завершена, осталось только разрешить запуск марионетки после перезагрузки и запустить марионетку:

# systemctl включить марионетку. Синхронизация состояния puppet.service с sysvinit с помощью update-rc.d... Выполнение настроек марионетки /usr/sbin/update-rc.d по умолчанию. Выполнение /usr/sbin/update-rc.d puppet enable. root @ node1: / # запуск марионетки службы. [ok] Запуск марионеточного агента. 

Кроме того, по умолчанию агент отключен после установки на новых ненастроенных хостах. Чтобы включить марионеточный агент, нам нужно запустить:

root @ node1: / # puppet agent --enable. 

Сертификат подписывающего агента

Оба хозяина владелец и узел1 запущены и работают. Последний набор настроек, необходимых для разговора ведущего и агента, — это подписать узел1Запрос сертификата. После того, как мы запустили марионеточный агент на узел1 запрос на подпись сертификата был направлен владелец сервер:

root @ master: / # список сертификатов марионетки "node1" (SHA256) 2C: 62: B3: A4: 1A: 66: 0A: 14: 17: 93: 86: E4: F8: 1C: E3: 4E: 25: F8: 7A: 7C: FB: FC: 6B: 83: 97: F1: C8: 21: DD: 52: E4: 91. 

По умолчанию каждый запрос на подпись сертификата должен быть подписан вручную:

root @ master: / # знак сертификата марионетки node1. Примечание: подписанный запрос сертификата для node1. Примечание: удаление файла Puppet:: SSL:: CertificateRequest node1 в '/var/lib/puppet/ssl/ca/requests/node1.pem'

На этом этапе наш мастер должен разместить два подписанных сертификата:

 root @ master: / # список сертификатов марионеток --all. + «мастер» (SHA256) EE: E0: 0A: 5C: 05: 17: FA: 11: 05: E8: D0: 8C: 29: FC: D2: 1F: E0: 2F: 27: A8: 66: 70: D7: 4B: A1: 62: 7E: BA: F4: 7C: 3D: E8. + «узел1» (SHA256) 99: DC: 41: BA: 26: FE: 89: 98: DC: D6: F0: 34: 64: 7A: DF: E2: 2F: 0E: 84: 48: 76: 6D: 75: 81: BD: EF: 01: 44: CB: 08: D9: 2A. 

Запуск запроса конфигурации марионетки

Пришло время создать первый манифест конфигурации. Как уже упоминалось выше, теперь мы собираемся убедиться, что пакет Привет доступно на узел1. Откройте манифест по умолчанию /etc/puppet/manifests/site.pp файл на владелец hosts и добавьте следующую упрощенную конфигурацию узла:

пакет {"привет": убедитесь => "установлен" }

Наш агент на узел1 по умолчанию настроен на получение конфигурации мастера каждые 30 минут. Если мы не хотим ждать, мы можем запустить запрос конфигурации вручную:

root @ node1: / # привет. bash: hello: команда не найдена. 

Пакет hello в настоящее время недоступен для узел1. Запуск нового запроса конфигурации вручную:

root @ node1: / # puppet agent --test. Информация: Кэширование certificate_revocation_list для ca. Информация: получение фактов о плагинах. Информация: получение плагина. Информация: Кэширующий каталог для node1. Информация: применение версии конфигурации '1434159185' Примечание: / Stage [main] / Main / Package [hello] / sure: убедитесь, что "очищен" изменен на "присутствует" Информация: Создание файла состояния /var/lib/puppet/state/state.yaml. Примечание. Запуск каталога завершен за 4,00 секунды.

Из вышеприведенного вывода мы видим, что была применена новая конфигурация и теперь доступен пакет «hello»:

root @ node1: / # привет. Привет мир! 

Вывод

В приведенном выше тексте показана упрощенная процедура настройки марионетки. Однако он должен служить отправной точкой для многоузловых развертываний. Чтобы добавить больше узлов, просто посетите выше Раздел конфигурации марионеточного узла и Сертификат подписывающего агента разделы этой статьи.

Поиск проблемы

apache2: не удалось надежно определить полное доменное имя сервера с использованием 172.17.0.43. Установите глобальную директиву ServerName, чтобы подавить это сообщение.

# echo "ServerName` hostname` ">> /etc/apache2/apache2.conf. 

Примечание. Пропуск запуска клиента конфигурации Puppet; отключено административно (Причина: «Отключено по умолчанию для новых или ненастроенных старых установок»);
Используйте «Puppet agent –enable» для повторного включения.

root @ node1: / # puppet agent --enable. 

Приложение

Быстрая настройка сценария с помощью Docker

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

# docker run -it -h master --name = master linuxconfig / sandbox / bin / bash. 

Как только мастер марионеток запущен и запускается узел1:

# docker run -it -h node1 --name = node1 --link master: master linuxconfig / sandbox / bin / bash. 

Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.

LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.

Ожидается, что при написании статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области. Вы будете работать независимо и сможете выпускать не менее 2 технических статей в месяц.

Понравилась статья? Поделить с друзьями:
  • Герметик u seal 501 инструкция по применению
  • Ифнс мытищи руководство
  • Инструкция по эксплуатации душевой кабины ниагара
  • Телефон panasonic kx tg2511ru инструкция на русском языке
  • Быть диктатором практическое руководство микал хем книга