Подготовка, усиление защиты и начальная настройка узлов
Приведите новые серверы к базовой конфигурации
«Подготовка, усиление защиты и начальная настройка узлов» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Проектирование проекта: роли и инвентарь
- Подготовка, усиление защиты и начальная настройка узлов
- Поэтапное развёртывание за балансировщиком
- Дымовые тесты, откат и уведомления