diff --git a/multi-node-aio/playbooks/pxe/acng.conf.j2 b/multi-node-aio/playbooks/pxe/acng.conf.j2 new file mode 100644 index 00000000..72092bbc --- /dev/null +++ b/multi-node-aio/playbooks/pxe/acng.conf.j2 @@ -0,0 +1,34 @@ +# {{ ansible_managed }} + +CacheDir: /var/www/pkg-cache +LogDir: /var/log/apt-cacher-ng +Port: 3142 +BindAddress: 10.0.2.1 +Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian # Debian Archives +Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu # Ubuntu Archives +Remap-debvol: file:debvol_mirror*.gz /debian-volatile ; file:backends_debvol # Debian Volatile Archives +Remap-cygwin: file:cygwin_mirrors /cygwin # ; file:backends_cygwin # incomplete, please create this file or specify preferred mirrors here +Remap-sfnet: file:sfnet_mirrors # ; file:backends_sfnet # incomplete, please create this file or specify preferred mirrors here +Remap-alxrep: file:archlx_mirrors /archlinux # ; file:backend_archlx # Arch Linux +Remap-fedora: file:fedora_mirrors # Fedora Linux +Remap-epel: file:epel_mirrors # Fedora EPEL +Remap-slrep: file:sl_mirrors # Scientific Linux +Remap-centos: file:centos_mirrors /centos #centos +ReportPage: acng-report.html +PidFile: /var/run/apt-cacher-ng +ExTreshold: 4 +LocalDirs: acng-doc /usr/share/doc/apt-cacher-ng +PassThroughPattern: .* +{% if http_proxy is defined and http_proxy %} +Proxy: {{ http_proxy }} +{% endif %} +{% if ansible_distribution_release | lower != 'trusty' %} +VfilePatternEx: ^/\?release=[0-9]+&arch= +{% endif %} +# NOTE(mhayden): Caching the CentOS mirror list causes yum to throw +# 503 errors intermittently since the remote file is dynamic. Also, +# yum has issues with retrieving the mariadb.org repodata bz2 and +# that causes more intermittent 503 errors. This DontCache line +# tells apt-cacher-ng to allow requests for these to pass through +# without being cached. +DontCache: (mirrorlist\.centos\.org)|(mariadb\.org.*\.bz2$) \ No newline at end of file diff --git a/multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 b/multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 index 420d6c05..753bd3c4 100644 --- a/multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 +++ b/multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 @@ -11,5 +11,5 @@ mkdir -p /root/.ssh chmod 0700 /root/.ssh echo "{{ tftp_ssh_key }}" >> /root/.ssh/authorized_keys -wget {{ tftp_server }}/networking/mnaio-bridges.cfg -O /etc/network/interfaces.d/mnaio-bridges.cfg -wget {{ tftp_server }}/networking/basic-interface.cfg -O /etc/network/interfaces +wget --no-proxy http://{{ tftp_server }}/networking/mnaio-bridges.cfg -O /etc/network/interfaces.d/mnaio-bridges.cfg +wget --no-proxy http://{{ tftp_server }}/networking/basic-interface.cfg -O /etc/network/interfaces diff --git a/multi-node-aio/playbooks/pxe/debian/mnaio.preseed.j2 b/multi-node-aio/playbooks/pxe/debian/mnaio.preseed.j2 index 13cc6586..f8b817f5 100644 --- a/multi-node-aio/playbooks/pxe/debian/mnaio.preseed.j2 +++ b/multi-node-aio/playbooks/pxe/debian/mnaio.preseed.j2 @@ -247,7 +247,7 @@ d-i grub-installer/only_debian boolean true # Post Install d-i preseed/late_command string \ - in-target bash -c "wget {{ tftp_server }}/scripts/mnaio-post-install-script.sh -O /opt/mnaio-post-install-script.sh"; \ + in-target bash -c "wget --no-proxy http://{{ tftp_server }}/scripts/mnaio-post-install-script.sh -O /opt/mnaio-post-install-script.sh"; \ in-target bash -c 'chmod +x /opt/mnaio-post-install-script.sh'; \ in-target bash -c '/opt/mnaio-post-install-script.sh' # Finish diff --git a/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 b/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 index 62f97706..c85c4d54 100644 --- a/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 +++ b/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 @@ -11,8 +11,8 @@ mkdir -p /root/.ssh chmod 0700 /root/.ssh echo "{{ tftp_ssh_key }}" >> /root/.ssh/authorized_keys -wget {{ tftp_server }}/networking/$(cat /etc/hostname)-bridges.cfg -O /etc/network/interfaces.d/vm-bridges.cfg -wget {{ tftp_server }}/networking/basic-interface.cfg -O /etc/network/interfaces +wget --no-proxy http://{{ tftp_server }}/networking/$(cat /etc/hostname)-bridges.cfg -O /etc/network/interfaces.d/vm-bridges.cfg +wget --no-proxy http://{{ tftp_server }}/networking/basic-interface.cfg -O /etc/network/interfaces cat > /etc/network/if-up.d/post-up-rules </etc/apt-cacher-ng/centos_mirrors + echo "http://mirror.centos.org/centos/" >>/etc/apt-cacher-ng/centos_mirrors + + - name: Drop acng.conf + template: + src: "pxe/acng.conf.j2" + dest: "/etc/apt-cacher-ng/acng.conf" + notify: + - reload acng + + - name: Drop apt package manager proxy + copy: + content: 'Acquire::http { Proxy "{{ default_ubuntu_mirror_proxy }}"; };' + dest: "/etc/apt/apt.conf.d/00apt-cacher-proxy" + + - name: Update apt when proxy is added + apt: + update_cache: yes + + handlers: + - name: reload acng + service: + name: "apt-cacher-ng" + state: restarted + enabled: yes + vars_files: - vars/main.yml tags: diff --git a/multi-node-aio/playbooks/vars/main.yml b/multi-node-aio/playbooks/vars/main.yml index fbfb6666..d6691895 100644 --- a/multi-node-aio/playbooks/vars/main.yml +++ b/multi-node-aio/playbooks/vars/main.yml @@ -4,10 +4,9 @@ default_interface: "{{ default_network | default('eth0') }}" default_vm_image: "{{ default_image | default('ubuntu-16.04-amd64') }}" default_vm_storage: "{{ vm_disk_size | default(61440) }}" -default_ubuntu_mirror_proxy: '' +default_ubuntu_mirror_proxy: 'http://10.0.2.1:3142/' default_ubuntu_mirror_hostname: archive.ubuntu.com default_ubuntu_mirror_directory: /ubuntu - ############### DEFAULTS ############### diff --git a/multi-node-aio/playbooks/vars/ubuntu.yml b/multi-node-aio/playbooks/vars/ubuntu.yml index 22547660..d556176c 100644 --- a/multi-node-aio/playbooks/vars/ubuntu.yml +++ b/multi-node-aio/playbooks/vars/ubuntu.yml @@ -40,4 +40,7 @@ mnaio_pxe_distro_packages: mnaio_dhcp_distro_packages: - isc-dhcp-server +mnaio_pkg_cache_server_distro_packages: + - apt-cacher-ng + mnaio_host_iptables_service: "{{ (ansible_distribution | lower + '-' + ansible_distribution_version | lower == 'ubuntu-14.04') | ternary('iptables-persistent', 'netfilter-persistent') }}"