0Pricing
DevOps Bootcamp · Урок

Подготовка, усиление защиты и начальная настройка узлов

Приведите новые серверы к базовой конфигурации

«Подготовка, усиление защиты и начальная настройка узлов» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

От чистого сервера к базовой конфигурации

Новые узлы — это чистые заготовки. Роль common приводит каждый сервер к единой безопасной и согласованной базовой конфигурации до того, как на него попадёт код приложения. 🛠️

Обновление кэша пакетов

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

- name: Update apt cache
  ansible.builtin.apt:
    update_cache: true
    cache_valid_time: 3600

Установка базовых пакетов

Используйте цикл, чтобы установить инструменты, необходимые каждому узлу, например curl, vim и ufw, в одной понятной задаче.

- name: Base packages
  ansible.builtin.apt:
    name:
      - curl
      - ufw
      - fail2ban
    state: present

Создание пользователя для развёртывания

Никогда не выполняйте работу приложения от имени root. Модуль user создаёт отдельную учётную запись для развёртывания, которая в дальнейшем владеет приложением.

- name: Create deploy user
  ansible.builtin.user:
    name: deploy
    groups: sudo
    shell: /bin/bash

Добавление ключа SSH

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

- name: Add deploy key
  ansible.posix.authorized_key:
    user: deploy
    key: "{{ deploy_pubkey }}"

Защита SSH

Усильте защиту демона: отключите вход root и аутентификацию по паролю. Модуль lineinfile безопасно и идемпотентно изменяет sshd_config.

- ansible.builtin.lineinfile:
    path: /etc/ssh/sshd_config
    regexp: "^PermitRootLogin"
    line: "PermitRootLogin no"
  notify: Restart sshd

Открывайте только необходимые порты

Настройте межсетевой экран с помощью ufw: разрешите SSH и порты приложения, а остальные запретите. По умолчанию поверхность атаки минимальна.

- community.general.ufw:
    rule: allow
    port: "22"
    proto: tcp

Настройка часового пояса и NTP

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

- community.general.timezone:
    name: UTC

Вынесение перезапуска в обработчик

Перезапускайте sshd только при изменении его конфигурации: используйте notify вместе с обработчиком, а не при каждом запуске.

handlers:
  - name: Restart sshd
    ansible.builtin.service:
      name: sshd
      state: restarted

Идемпотентный запуск

Запустите роль common дважды: на втором проходе большинство результатов должны быть ok, а не changed. Это доказывает, что базовая конфигурация действительно сошлась.

Сначала базовая конфигурация, потом приложение

Сначала выполненная защита означает, что приложение разворачивается на проверенном и защищённом узле. Начальная настройка — фундамент, на котором держится всё остальное. 🔒

Быстрая проверка

Один выбор позволяет аккуратно изменять конфигурацию SSH.

Итоги

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

Часто задаваемые вопросы

Урок «Подготовка, усиление защиты и начальная настройка узлов» бесплатный?

Да — полный текст урока «Подготовка, усиление защиты и начальная настройка узлов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Подготовка, усиление защиты и начальная настройка узлов»?

Приведите новые серверы к базовой конфигурации Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

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

Сколько времени занимает урок «Подготовка, усиление защиты и начальная настройка узлов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Проектирование проекта: роли и инвентарь
  2. Подготовка, усиление защиты и начальная настройка узлов
  3. Поэтапное развёртывание за балансировщиком
  4. Дымовые тесты, откат и уведомления
← Назад к DevOps Bootcamp