Для нужд PXE сервиса где порой необходимо для лабораторных условий устанавливать операционные системы Ubuntu 18.04: Desktop & Server не с образа который лежит на NFS ресурсе, а выкачивать из интернета нужно не просто одно и тоже выкачивать, в смысле deb-пакеты, правильнее поднять на том же сервере где и PXE персональный кешируемый сервер пакетов. У меня уже есть заметка на этот счет, но это было давно и делалось для Ubuntu 11.04. Сейчас будет подробный разбор каким я себе это вижу по инсталляции утилиты apt-cacher-ng на Ubuntu 18.04 Server amd64 чтобы в дальнейшем адаптировать ее к PXE сервису.
ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.33.33.25/hg/dproject
ekzorchik@srv-bionic:~$ sudo ./dproject/default
Устанавливаю пакет apt-cacher-ng:
ekzorchik@srv-bionic:~$ apt-cache show apt-cacher-ng | grep Version
Version: 3.1-1build1
ekzorchik@srv-bionic:~$ sudo apt-get install apt-cacher-ng -y
ekzorchik@srv-bionic:~$ id apt-cacher-ng
uid=111(apt-cacher-ng) gid=114(apt-cacher-ng) groups=114(apt-cacher-ng)
Файлы пакетов буду хранить на отдельном каталоге (можно выделить отдельный диск):
ekzorchik@srv-bionic:~$ sudo mkdir -p /data/repository
ekzorchik@srv-bionic:~$ sudo mkdir -p /data/log
ekzorchik@srv-bionic:~$ sudo chown -R apt-cacher-ng:apt-cacher-ng /data
ekzorchik@srv-bionic:~$ sudo nano /etc/default/apt-cacher-ng
DISABLED=1
DAEMON_OPTS=" -c /etc/apt-cacher-ng "
ekzorchik@srv-bionic:~$ sudo systemctl restart apt-cacher-ng && sudo systemctl status apt-cacher-ng | head -n 5
● apt-cacher-ng.service - Apt-Cacher NG software download proxy
Loaded: loaded (/lib/systemd/system/apt-cacher-ng.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2018-12-09 21:06:07 MSK; 45ms ago
Main PID: 12717 (apt-cacher-ng)
Tasks: 1 (limit: 2320)
Проверяю, а поднимется ли теперь сервис apt-cacher-ng если система будет перезагружена:
ekzorchik@srv-bionic:~$ sudo reboot
Ответ да, сервис сам поднимается порт (3142) прослушивается:
ekzorchik@srv-bionic:~$ sudo systemctl status apt-cacher-ng | head -n 3
● apt-cacher-ng.service - Apt-Cacher NG software download proxy
Loaded: loaded (/lib/systemd/system/apt-cacher-ng.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2018-12-09 21:57:35 MSK; 46s ago
ekzorchik@srv-bionic:~$
ekzorchik@srv-bionic:~$ ss -tul | grep :3142
tcp LISTEN 0 128 172.33.33.25:3142 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:3142 0.0.0.0:*
tcp LISTEN 0 128 [::1]:3142 [::]:*
Исходя из выше указанного, если на системе применяется фаервол вида ufw, то следует разрешить доступ из сети клиентских систем к нему:
ekzorchik@srv-bionic:~$ sudo ufw allow to 172.33.33.25 port 3142 from 172.33.33.0/24 proto tcp
Текущие репозитарии системы Ubuntu 18.04 Server amd64
ekzorchik@srv-bionic:~$ cat /etc/apt/sources.list | grep -v '^\#'
deb http://archive.ubuntu.com/ubuntu bionic main restricted
deb-src http://archive.ubuntu.com/ubuntu bionic main restricted
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu bionic-updates main restricted
deb http://archive.ubuntu.com/ubuntu bionic universe
deb-src http://archive.ubuntu.com/ubuntu bionic universe
deb http://archive.ubuntu.com/ubuntu bionic-updates universe
deb-src http://archive.ubuntu.com/ubuntu bionic-updates universe
deb http://archive.ubuntu.com/ubuntu bionic multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic-updates multiverse
deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse
ekzorchik@srv-bionic:~$ sudo nano /etc/apt-cacher-ng/acng.conf
#CacheDir: /var/cache/apt-cacher-ng
CacheDir: /data/repository/
#LogDir: /var/log/apt-cacher-ng
LogDir: /data/log/
SupportDir: /usr/lib/apt-cacher-ng
Port:3142
ReportPage: acng-report.html
BindAddress: localhost 172.33.33.25
ekzorchik@srv-bionic:~$ sudo /etc/init.d/apt-cacher-ng restart
На клиентской системе прописываем, к примеру путь это будет: Ubuntu 18.04 Desktop amd64
ekzorchik@srv-desktop:~$ lsb_release -a && uname -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
Linux srv-desktop 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ekzorchik@srv-desktop:~$ sudo nano /etc/apt/sources.list
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic main restricted
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic main restricted
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-updates main restricted
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-updates main restricted
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic universe
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic universe
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-updates universe
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-updates universe
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic multiverse
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic multiverse
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-updates multiverse
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-updates multiverse
deb http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
deb-src http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
deb http://172.33.33.25:3142/security.ubuntu.com/ubuntu bionic-security main restricted
deb-src http://172.33.33.25:3142/security.ubuntu.com/ubuntu bionic-security main restricted
deb http://172.33.33.25:3142/security.ubuntu.com/ubuntu bionic-security universe
deb-src http://172.33.33.25:3142/security.ubuntu.com/ubuntu bionic-security universe
deb http://172.33.33.25:3142/security.ubuntu.com/ubuntu bionic-security multiverse
deb-src http://172.33.33.25:3142/security.ubuntu.com/ubuntu bionic-security multiverse
Т.е я после http:// указываю адрес сервера где развернут apt-cacher-ng с портом, а потом как обычно.
Или без правки sources.list
ekzorchik@srv-desktop:~$ sudo nano /etc/apt/apt.conf.d/02proxy
Acquire::http { Proxy "http://172.33.33.25:3142"; };
Обновляю информацию о пакетах репозитариев:
ekzorchik@srv-desktop:~$ sudo apt-get update
Пробую установить таким образом пакет в Ubuntu 18.04 Desktop:
ekzorchik@srv-desktop:~$ sudo apt-get install htop -y
Пол:1 http://172.33.33.25:3142/archive.ubuntu.com/ubuntu bionic/main amd64 htop amd64 2.1.0-3 [80.0 kB]
Смотрю, что на системе Ubuntu 18.04 Server (где развернут apt-cacher-ng сервис) в каталоге /data/repository
ekzorchik@srv-bionic:~$ sudo apt-get install tree -y
На заметку: ключ -L
это вывод на указанную глубину, -d
→ только дерево директорий
ekzorchik@srv-bionic:~$ tree -d /data/repository/ -L 2
/data/repository/
├── 172.33.33.25
│ ├── archive.ubuntu.com
│ └── security.ubuntu.com
├── security.ubuntu.com
│ └── ubuntu
├── uburep
│ └── dists
└── _xstore
├── qstats
└── rsnap
10 directories
А размер каталога /data/repository/
ekzorchik@srv-bionic:~$ sudo du -sh /data/repository/
112M /data/repository/
А теперь появился ли выкачанный пакет htop запрошенный клиентом на настроенный кеширующий сервер deb–пакетов:
ekzorchik@srv-bionic:~$ find /data/repository -name htop
/data/repository/172.33.33.25/archive.ubuntu.com/ubuntu/pool/main/h/htop
/data/repository/uburep/pool/main/h/htop
О, да — работает. Как и задумывалось. Теперь у меня будет собственный сервис по хранению часто используемых устанавливаемых пакетов на систему, как Desktop & Server.
Обновляться клиентам также можно, вообще делать с пакетами все что угодно:
ekzorchik@srv-dsektop:~$ sudo apt-get update && sudo apt-get upgrade -y
Кому-то может показать, что все это слишком сложно, это их проблемы, у меня есть цель и я его достигаю и попутно усложняю. Мне как-то один сказал в skype, то будет трудно объяснить человеку который придет на мое место без глубоких знаний, как все сейчас у меня устроено. Вот только когда я прихожу на новое место работы, всегда сталкиваюсь, что остаюсь один на один с проблемами и решаю их сам без чей либо помощи. Работая системным администратором у Вас должен быть богатый опыт и желание учиться чему-то новому.
Итого, заметка работоспособна. С уважением, автор блога Олло Александр aka ekzorchik.