mkdir -p ~/tmp temp_dir=$(mktemp -d ~/tmp/tmpdir.XXXXXX) cd $temp_dir
Установка бинарника traefik в systemd
Описание установки traefik в systemd в изолированной среде.
1. Скачивание бинарника из github в Nexus
-
Создайте временный каталог:
-
Скачайте архив с бинарником последней версии и файл с контрольными суммами:
GITHUB_REPO_NAME="traefik/traefik" FILES=("traefik_.*_linux_amd64\.tar\.gz" "traefik_.*_checksums\.txt") for i in ${FILES[@]}; do curl -s https://api.github.com/repos/${GITHUB_REPO_NAME}/releases | \ grep browser_download_url | \ grep "$i" \ | head -n1 | cut -d '"' -f 4 | \ wget -i - done
-
Распакуйте архивный файл и проверьте контрольные суммы:
tar -xvf traefik_*.tar.gz sha256sum -c --ignore-missing traefik_*_checksums.txt
Пример ожидаемого вывода:traefik_v3.4.0_linux_amd64.tar.gz: OK
-
Задайте адрес загрузки файлов:
INTERNAL_REPO="https://nexus.example.org/repository/github" REPO_FOLDER="${GITHUB_REPO_NAME}"
-
Задайте учётные данные для доступа к локальному репо:
set +o history USER_PASS='ken:xxxxxxxxxxxxxxxx' set -o history
-
Загрузите файлы в Nexus:
for i in "$FILES[@]"; do curl -v --user "${USER_PASS}" \ --upload-file ${i} \ ${INTERNAL_REPO}/${REPO_FOLDER}/ done
-
Удалите временный каталог:
cd rm -rf ${temp_dir}
2. Установка traefik в systemd
-
Добавьте системного пользователя:
useradd -s /sbin/nologin -M -r -U traefik
-
Добавьте каталог для конфигурационных файлов traefik:
CONF_DIR='/etc/traefik' mkdir -p ${CONF_DIR} chown root:traefik ${CONF_DIR} chmod 2750 ${CONF_DIR}
-
Добавьте systemd-юнит:
cat << 'EOF' > /etc/systemd/system/traefik.service [Unit] Description=Traefik Reverse Proxy After=network-online.target Wants=network-online.target [Service] Type=simple User=traefik Group=traefik WorkingDirectory=/etc/traefik ExecStart=/usr/local/bin/traefik --configFile=traefik.yml Restart=on-failure PrivateTmp=true ProtectHome=true ProtectSystem=full [Install] WantedBy=multi-user.target EOF systemctl daemon-reload