Debian / Ubuntu – Install apt-cacher-NG as package proxy for Debian / Ubuntu and Centos Fedora clients

This is nothing really new, but definitely worth tracking because it just make sense and works fine.
If you either virtualise or have otherwise many Debian / Ubuntu / Centos / Fedora based servers and workstations and want to keep them updated regularly, you do this over the internet for each and every instance. This utilises bandwidth and takes time to download particularly if you don’t have a some big internet connectivity.
The principle is that you setup a proxy server for apt or yum which caches and serves on duplicate request the packages and therefore you will save time and bandwidth.
The first device fetching the package will trigger the proxy to cache it and the next instance will receive the cache package from the proxy. This will reduce the used bandwidth and volume of the internet line and speed up the update due to using a local available cache.
I also want to write something about another tool for Debian and Ubuntu named Aptly which allows to run controlled internal repositories mirrored from the official repositories but with custom versioning and point in time snapshots, which is most likely the better way a large organisation would handle updating Linux servers. I hope to get to this soon.
I explain here how to install apt-cacher-NG under Debian (it works the same under Ubuntu) while the clients can be Debian / Ubuntu based or Fedora / Centos based. Apt-cacher-NG handles both types of packages as a proxy.
How to install apt-cache-NG in Debian or Ubuntu:
In my case the debian server running apt-cacher-ng has the IP Address 192.168.1.12
sudo apt-get install apt-cacher-ng
Once the installation completed check the config file for the right settings as needed.
vi /etc/apt-cacher-ng/acng.conf
Modify as needed:
CacheDir: /var/cache/apt-cachepoweroffr-ng LogDir: /var/log/apt-cacher-ng #The port to listen on Port:3142 #0.0.0.0 will listen to each and every IP else you can limit it BindAddress: 0.0.0.0 #this is needed if you like to have a html page for the statistics as in the screenshot later on. ReportPage: acng-report.html #make sure this is not commented out PidFile: /var/run/apt-cacher-ng/pid
I left the remap entries alone, it worked out of the box without any modification, but there is a manual available if there is a need to modify it.
Restart apt-cacher-ng
service apt-cacher-ng restart
You can now open the webinterfaces for apt-cacher-ng.
http://192.168.1.12:3142/ #for a config page http://192.168.1.12:3142/acng-report.html #for the statictis page
Client Config:
For all client config counts that you need to make sure the proxy will be available when running updates. Else they will fail at all since the proxy will be hard coded. To remove the proxy and fetch from the internet direct you will need to # comment the entry out.
REMINDER THIS IP ADDRESSES AND PORT IS BASED ON MY SETUP (SERVER 192.168.1.12 Port 3142). CHANGE IT TO YOUR VALUES ACCORDINGLY
Debian / Ubuntu based (APT/deb)
To activate, edit or create the file /etc/apt/apt.conf
vi /etc/apt/apt.conf #insert Acquire::http { Proxy "http://192.168.1.12:3142"; };
Then run normal apt-get update;apt-get upgrade
Centos / Fedora based (YUM/rpm)
To activate, edit the file /etc/yum/yum.conf and insert:
vi /etc/yum.conf #insert proxy=http://192.168.1.12:3142
Then run
yum update
Result:
As per the following stats screenshot and a few update sessions over the last few days, the reduction is sizeable. The Misses are the newly to be fetched packages while Hits is the duplicate data served from cache.
Update: 2017-05-21
There is a great Post by packagecloud describing apt-cacher handling and how to resolve https repo issues. https://blog.packagecloud.io/eng/2015/05/05/using-apt-cacher-ng-with-ssl-tls/