Чтобы задеплоить Go-приложение на сервер RHEL 8, вам понадобится ряд шагов. Вот подробное пошаговое руководство:
Шаг 1: Установка Go
1.1 Откройте терминал и выполните следующую команду, чтобы загрузить архив Go:
wget https://golang.org/dl/goX.XX.X.linux-amd64.tar.gz
1.2 Распакуйте архив с помощью следующей команды:
sudo tar -C /usr/local -xzf goX.XX.X.linux-amd64.tar.gz
1.3 Добавьте к переменной PATH путь к исполняемым файлам Go, выполнив следующую команду:
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc source ~/.bashrc
1.4 Проверьте установку, выполните команду:
go version
Шаг 2: Создание и сборка Go-приложения
2.1 Создайте каталог для вашего проекта:
mkdir -p ~/go/src/<имя_проекта>
2.2 Перейдите в каталог проекта:
cd ~/go/src/<имя_проекта>
2.3 Создайте файл с исходным кодом вашего приложения, например main.go:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
2.4 Соберите приложение с помощью команды go build:
go build
Шаг 3: Настройка сервера RHEL 8
3.1 Установите необходимые зависимости для вашего Go-приложения, например базу данных или дополнительные пакеты:
sudo dnf install <пакеты_зависимостей>
Шаг 4: Деплой Go-приложения на сервер
4.1 Скопируйте скомпилированный исполняемый файл в нужную директорию на сервере, например /opt/<имя_проекта>:
sudo cp <имя_проекта> /opt/<имя_проекта>
4.2 Настройте системный сервис для запуска приложения в фоновом режиме. Создайте файл с расширением ".service" в директории /etc/systemd/system, например <имя_проекта>.service и добавьте следующий контент в файл:
[Unit] Description=<Описание приложения> After=network.target [Service] ExecStart=/opt/<имя_проекта>/<имя_проекта> WorkingDirectory=/opt/<имя_проекта> User=<имя_пользователя> Group=<имя_группы> Restart=always [Install] WantedBy=multi-user.target
4.3 Активируйте сервис и запустите приложение:
sudo systemctl enable <имя_проекта>.service sudo systemctl start <имя_проекта>.service
4.4 Проверьте статус сервиса:
sudo systemctl status <имя_проекта>.service
Поздравляю, ваше Go-приложение успешно задеплоено на сервере RHEL 8!