Compare commits

..

No commits in common. 'nuster' and 'master' have entirely different histories.

@ -5,19 +5,6 @@
vars: vars:
install_docker: false install_docker: false
# For arch distros just run `pacman-mirrors --fasttrack` to grab the fastest
# repos in your country.
repos:
- name: gigenet
url: mirrors.gigenet.com
port: 443
- name: ialab
url: repo.ialab.dsu.edu
port: 443
- name: princeton
url: mirror.math.princeton.edu
port: 443
# TODO remove this if unused.
# This object represents the uid/gid for the haproxy user/group in the # This object represents the uid/gid for the haproxy user/group in the
# haproxy container. # haproxy container.
haproxy_user: haproxy_user:
@ -27,9 +14,7 @@
gid: &haproxy_gid 99 gid: &haproxy_gid 99
persistent_data_directory: /media1/srv/pkg-cache persistent_data_directory: /media1/srv/pkg-cache
host_cert_file: "{{ persistent_data_directory }}/{{ cert_name }}" host_cert_file: "{{ persistent_data_directory }}/{{ cert_name }}"
host_config_file: "{{ persistent_data_directory }}/nuster.cfg" host_config_file: "{{ persistent_data_directory }}/haproxy.cfg"
host_mirrorlist_file: "{{ persistent_data_directory }}/mirrorlist"
local_mirrorlist_file: ~/dev/pkg-cache-ansible/mirrorlist
permissions: &persistent_data_permissions permissions: &persistent_data_permissions
# owner: gert # owner: gert
# group: gert # group: gert
@ -55,28 +40,13 @@
mode: '0750' mode: '0750'
become: true become: true
- name: Create nuster config file. - name: Create haproxy config file.
ansible.builtin.template: ansible.builtin.template:
src: templates/nuster.cfg.j2 src: templates/haproxy.cfg.j2
dest: "{{ host_config_file }}" dest: "{{ host_config_file }}"
<<: *persistent_data_permissions <<: *persistent_data_permissions
become: true become: true
# This is an example mirrorlist to used with this package cache.
- name: Create the mirrorlist example.
ansible.builtin.template:
src: templates/mirrorlist.j2
dest: "{{ host_mirrorlist_file }}"
<<: *persistent_data_permissions
become: true
- name: Copy the mirrorlist to localhost.
ansible.builtin.fetch:
src: "{{ host_mirrorlist_file }}"
dest: "{{ local_mirrorlist_file }}"
flat: true
become: true
- name: Copy over SSL cert. - name: Copy over SSL cert.
ansible.builtin.copy: ansible.builtin.copy:
dest: "{{ host_cert_file }}" dest: "{{ host_cert_file }}"
@ -85,23 +55,21 @@
mode: '0600' mode: '0600'
become: true become: true
- name: Start the nuster container. - name: Start the haproxy container.
community.docker.docker_container: community.docker.docker_container:
image: nuster/nuster:5.3.0.23-alpine image: haproxy
name: pkg-cache name: pkg-cache
state: started state: started
restart: true restart: true
# recreate: true
network_mode: default network_mode: default
# TODO REM this shouldn't be needed becuase of the proxy. # TODO REM this shouldn't be needed becuase of the proxy.
# published_ports: # published_ports:
# - 4433:8080 # - 4433:4433
volumes: volumes:
- "{{ host_config_file }}:/etc/nuster/nuster.cfg" - "{{ host_config_file }}:/usr/local/etc/haproxy/haproxy.cfg"
- "{{ host_cert_file }}:{{ container_cert_file }}" - "{{ host_cert_file }}:{{ container_cert_file }}"
- "{{ persistent_data_directory }}/cache:/cache"
env: env:
VIRTUAL_HOST: pkg.shnee.net,*.pkg.shnee.net VIRTUAL_HOST: pkg.shnee.net
VIRTUAL_PORT: "8080" VIRTAUL_PORT: "8080"
# NETWORK_ACCESS: internal NETWORK_ACCESS: internal
restart_policy: unless-stopped restart_policy: unless-stopped

@ -0,0 +1,29 @@
global
log stdout format raw local0
# uid {{ haproxy_user.uid }}
# gid {{ haproxy_user.gid }}
defaults
log global
mode http
option httplog
timeout client 10s
timeout connect 5s
timeout server 10s
timeout http-request 10s
cache pkg_cache
total-max-size 4095
max-object-size 524288000
frontend http_frontend
# bind *:4433 ssl crt {{ container_cert_file }}
bind *:8080
default_backend pkg_repo
backend pkg_repo
http-request cache-use pkg_cache
http-response cache-store pkg_cache
option forwardfor
server server1 mirrors.gigenet.com:443 ssl

@ -1,6 +0,0 @@
## This mirrorlist has been generated pkg-cache.yml playbook to use a cached
## proxy for package repos.
{% for repo in repos %}
Server = http://{{ repo.name }}.pkg.shnee.net/manjaro/stable/$repo/$arch
{% endfor %}

@ -1,31 +0,0 @@
global
log stdout format raw local0
# TODO REM remove these and haproxy from the vars if unused.
# uid {{ haproxy_user.uid }}
# gid {{ haproxy_user.gid }}
nuster cache on dir /cache
defaults
log global
mode http
option httplog
timeout client 10s
timeout connect 5s
timeout server 10s
timeout http-request 10s
frontend http_frontend
# bind *:4433 ssl crt {{ container_cert_file }}
bind *:8080
{% for repo in repos %}
use_backend {{ repo.name }}_pkg_repo if { hdr_beg(host) -i {{ repo.name }} }
{% endfor %}
{% for repo in repos %}
backend {{ repo.name }}_pkg_repo
nuster cache on
nuster rule {{ repo.name }}_rule disk on memory off
option forwardfor
server {{ repo.name }} {{ repo.url }}:{{ repo.port }} ssl verify none
{% endfor %}
Loading…
Cancel
Save