内网软件源镜像发展史: Apt-Cacher NG时代

本系列文章主要记录公司内网软件源的发展史,估计大概2篇博文,这是起始1.0

场景

内网需要频繁的安装一些软件,同时频繁大量进行一些docker镜像构建,需要缓存一些包来加快构建。因为一些历史包袱,无法使用通用基础镜像和使用docker构建缓存。
感觉构建缓慢,严重影响效率,另外我个人很喜欢
Debian (无它,就是真香,哈哈)

真香

于是自然而然就想到了Apt-Cacher Ng, 有人可能会问与Apt-Cacher啥区别,具体可以参考 difference-between-apt-cacher-and-apt-cacher-ng,我感觉最大的一点就是Apt-Cacher Ng支持非Debian系的发现版,如Redhat系。

部署

简单可以参考 sameersbn/docker-apt-cacher-ng,但是我在其基础上增强了对其他发现版本Linux系统和部分常用开源/半开源软件的支持。

启动配置

docker-compose行天下

version: '2.2'
services:
  apt-cacher-ng:
    image: ysicing/apt-cacher-ng
    container_name: apt-cacher-ng
    init: true
    ports:
    - "3142:3142"
    volumes:
    - /var/cache/apt-cacher-ng:/var/cache/apt-cacher-ng
    - /var/log/apt-cacher-ng:/var/log/apt-cacher-ng
    restart: always

其中镜像的dockerfile可以参考 ysicing/dockerfiles

示例如下,缓存如下这么多服务镜像

root@e0bdf2d23518:/etc/apt-cacher-ng# ls
acng.conf    backend_centosaltarch  backend_docker         backend_k8s     backends_cygwin          backends_debvol           backends_ubuntu.default
backend_archlx    backend_debianports    backend_epel         backend_salt    backends_debian          backends_gentoo.default  security.conf
backend_centos    backend_debsec           backend_gitlabrunner  backend_zabbix  backends_debian.default  backends_ubuntu           zz_debconf.conf

核心配置 acng.conf

精简如下,

CacheDir: /var/cache/apt-cacher-ng
LogDir: /var/log/apt-cacher-ng
SupportDir: /usr/lib/apt-cacher-ng
Remap-debrep: file:backends_debian /debian # Debian Archives
# Remap-debports: file:backend_debianports /debian # Debian Archives
Remap-debsec: file:backend_debsec /debian-security # Debian Sec
Remap-uburep: file:backends_ubuntu /ubuntu # Ubuntu Archives
Remap-cygwin: file:backends_cygwin /cygwin # incomplete, please create this file or specify preferred mirrors here
Remap-alxrep: file:backend_archlx /archlinux # Arch Linux
Remap-epel: file:backend_epel /epel  # Fedora EPEL
Remap-centos: file:backend_centos /centos # Centos
Remap-centosaltarch: file:backend_centosaltarch /centos-altarch # centos-altarch
Remap-docker: file:backend_docker /docker-ce/linux # Docker
Remap-k8s: file:backend_k8s /kubernetes # kubernetes
Remap-zabbix: file:backend_zabbix /zabbix # zabbix
Remap-salt: file:backend_salt /saltstack # salt
Remap-gitlabrunner: file:backend_gitlabrunner /gitlab-runner # gitlab-runner
ReportPage: acng-report.html
ForeGround: 1
ExThreshold: 4
LocalDirs: acng-doc /usr/share/doc/apt-cacher-ng
PassThroughPattern: .* #

看上去很多,其实大多数都或多或少都会存在一些问题。如对Debian/Centos支持就很好,对alpine就无能为了,用apk add包会报错,移除代理后就ok了。这也是后面不用这个工具的导火索。下面就具体谈谈,如何使用,还是很简单的。

使用

Debian系使用

cat > /etc/apt/apt.conf.d/00aptproxy <<EOF
Acquire::http::Proxy "http://172.16.16.55:3142";
Acquire::https::Proxy "http://172.16.16.55:3142";
EOF
apt update 
apt install -y git

RedHat系使用

cat >> /etc/yum.conf <<EOF
proxy=http://172.16.16.55:3142
EOF

其他

可以访问其管理页面, 地址为http://<所在节点ip>:3142/acng-report.html

示例如图

Last modification:September 29th, 2019 at 11:54 pm
搞技术/肝文章不易,恳请随意打赏 OwO

Leave a Comment