Загрузка данных
2. Настройка операционной системы
2.1 Обновление системы
Выполнено обновление списка пакетов и установка последних обновлений безопасности операционной системы.
sudo apt update
sudo apt upgrade -y
Рисунок 1 – Обновление списка пакетов и установка обновлений операционной системы
2.2 Установка базовых утилит
Установлены базовые утилиты для загрузки файлов, работы с архивами, управления репозиториями и сборки программ.
sudo apt install -y curl wget git unzip zip build-essential software-properties-common apt-transport-https ca-certificates gnupg lsb-release
Рисунок 2 – Установка базовых утилит для работы DevOps-инфраструктуры
2.3 Проверка интернет-соединения
Проверено сетевое подключение. Командой ip a определён активный сетевой интерфейс, а командой ping подтверждён доступ к сети Интернет.
ip a
ping -c 4 google.com
Рисунок 3 – Проверка сетевого интерфейса и подключения к сети Интернет
3. Настройка SSH и удалённого доступа
Установлен и настроен SSH-сервер. Служба SSH запущена и добавлена в автозагрузку, что позволяет выполнять удалённое подключение к системе.
3.1 Установка SSH-сервера
sudo apt install -y openssh-server
3.2 Запуск и проверка SSH
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
3.3 Определение IP-адреса
hostname -I
4. Установка виртуального принтера
Установлен виртуальный принтер CUPS-PDF, позволяющий сохранять документы в формате PDF.
sudo apt install -y cups cups-pdf
sudo systemctl enable cups
sudo systemctl start cups
lpstat -p
5. Установка редактора кода Visual Studio Code
5.1 Установка VS Code
sudo snap install code –classic
Проверка:
code –version
5.2 Установка расширений
Установлен редактор Visual Studio Code и расширения для работы с Python, Bash, Go, Rust, YAML, JSON и Docker.
code --install-extension ms-python.python
code --install-extension ms-vscode.cpptools
code --install-extension golang.go
code --install-extension rust-lang.rust-analyzer
code --install-extension redhat.vscode-yaml
code --install-extension ms-azuretools.vscode-docker
6. Установка языков и инструментов разработки
Установлены языки программирования и инструменты разработки Python, Go и Rust, необходимые для работы DevOps-команды.
6.1 Python
sudo apt install -y python3 python3-pip python3-venv
python3 --version
6.2 Go
sudo apt install -y golang-go
go version
6.3 Rust
sudo apt install -y rustc cargo
rustc --version
cargo --version
7. Установка Docker и Docker Compose
Установлены Docker и Docker Compose. Docker используется для контейнеризации приложений, а Docker Compose — для управления несколькими контейнерами через конфигурационные файлы.
7.1 Установка Docker
sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker
7.2 Добавление пользователя в группу docker
sudo usermod -aG docker $USER
docker --version
docker run hello-world
7.3 Установка Docker Compose
sudo apt install -y docker-compose
docker-compose --version
8. Установка CI/CD-платформы Jenkins
Установлена и запущена CI/CD-платформа Jenkins в контейнере Docker. Выполнена первичная настройка через веб-интерфейс, установлены рекомендуемые плагины и создан пользователь администратора.
8.1 Создание папки для Jenkins
mkdir -p ~/jenkins_home
8.2 Запуск Jenkins в контейнере
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v ~/jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
8.3 Проверка контейнера
docker ps
8.4 Получение начального пароля Jenkins
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
8.5 Открытие Jenkins
В браузере открыть:
http://localhost:8080
Дальше:
Вставить пароль из терминала.
Выбрать Install suggested plugins.
Создать администратора.
Перейти в главное меню Jenkins.
9. Создание тестового CI/CD-задания в Jenkins
В Jenkins создан тестовый проект test-pipeline. Выполнена пробная сборка, в ходе которой проверяется доступность Python и Docker. Сборка завершена успешно.
9.1 Создание задачи
В Jenkins:
Нажать New Item.
Ввести имя проекта:
test-pipeline
Выбрать Freestyle project.
Нажать OK.
9.2 Добавление шага сборки
В разделе Build Steps выбрать:
Execute shell
Вставить команду:
echo "CI/CD pipeline started"
python3 --version
docker --version
echo "Build completed successfully"
Нажать Save.
9.3 Запуск сборки
Нажать:
Build Now
Открыть результат сборки и посмотреть Console Output.
10. Установка системы мониторинга Netdata
Установлена система мониторинга Netdata. Через веб-интерфейс доступен просмотр состояния процессора, оперативной памяти, диска, сети и системных служб.
10.1 Установка Netdata
sudo apt install -y netdata
10.2 Запуск службы
sudo systemctl enable netdata
sudo systemctl start netdata
sudo systemctl status netdata
10.3 Открытие панели мониторинга
В браузере открыть:
http://localhost:19999
11. Настройка защиты периметра
11.1 Установка и настройка UFW
Настроен межсетевой экран UFW. Разрешены подключения по SSH, а также доступ к Jenkins и Netdata.
sudo apt install -y ufw
sudo ufw allow ssh
sudo ufw allow 8080
sudo ufw allow 19999
sudo ufw enable
sudo ufw status
11.2 Установка Fail2ban
Установлен Fail2ban для защиты системы от подозрительных попыток авторизации и подбора паролей.
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban
12. Настройка аудита безопасности
Установлена служба аудита auditd, позволяющая отслеживать события безопасности, входы пользователей и системные действия.
12.1 Установка auditd
sudo apt install -y auditd audispd-plugins
sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd
12.2 Просмотр журналов аудита
sudo ausearch -m USER_LOGIN или sudo aureport
13. Создание пользователей, групп и настройка прав доступа
Созданы группы devops и security, пользователи devuser и secuser, а также настроены права доступа к рабочему каталогу /opt/devops_project.
13.1 Создание групп
sudo groupadd devops
sudo groupadd security
13.2 Создание пользователей
sudo useradd -m -G devops devuser
sudo useradd -m -G security secuser
13.3 Установка паролей
sudo passwd devuser
sudo passwd secuser
13.4 Создание рабочей директории
sudo mkdir /opt/devops_project
sudo chown root:devops /opt/devops_project
sudo chmod 770 /opt/devops_project
13.5 Проверка прав
ls -ld /opt/devops_project
groups devuser
groups secuser
14. Резервное копирование и точки восстановления
14.1 Установка Timeshift
Создана точка восстановления системы с помощью Timeshift.
sudo apt install -y timeshift
sudo timeshift-gtk
окне выбрать:
RSYNC.
Диск для хранения снимков.
Нажать Create.
14.2 Резервное копирование папки проекта
Выполнено резервное копирование рабочей директории проекта с помощью утилиты rsync.
mkdir -p ~/backup
rsync -av /opt/devops_project ~/backup/
15. Проверка совместимости программного обеспечения
Проверена совместимость установленного программного обеспечения с операционной системой Linux. Все программы запускаются корректно, интерфейс отображается без ошибок.
code --version
docker --version
docker-compose --version
python3 --version
go version
rustc –version