Create deb.http.realraum.at apt-cacher instance
[noc.git] / ansible / host_playbooks / deb.yml
1 ---
2 - name: Basic Setup for deb.realraum.at
3   hosts: deb
4   roles:
5   - role: base
6   
7 - name: Set up data volume for apt-cacher-ng
8   hosts: deb
9   tasks:
10     - name: Format the data volume
11       filesystem:
12         dev: /dev/vdb
13         fstype: ext4
14         resizefs: yes
15
16     - name: Setup mountpoint
17       mount:
18         path:   /var/cache/apt-cacher-ng
19         src:    /dev/vdb
20         state:  mounted
21         fstype: ext4
22
23     - name: Create user/group apt-cacher-ng
24       user:
25         name: apt-cacher-ng
26         system: yes
27         shell: /usr/sbin/nologin
28         home: /var/cache/apt-cacher-ng
29         create_home: no
30
31     - name: Set up permissions on /var/cache/apt-cacher-ng
32       file:
33         path: /var/cache/apt-cacher-ng
34         owner: apt-cacher-ng
35         group: apt-cacher-ng
36
37 - name: Set up apt-cacher-ng
38   hosts: deb
39   handlers:
40     - name: restart acng
41       service:
42         name: apt-cacher-ng
43         state: restarted
44
45   tasks:
46     - name: Install acng
47       apt:
48         name: apt-cacher-ng
49         state: present
50
51     - name: Configure acng
52       notify: restart acng
53       lineinfile:
54         path: /etc/apt-cacher-ng/acng.conf
55         line: "{{ item.key }}: {{ item.value }}"
56         regexp: "^(#\\s*)?{{ item.key }}:"
57
58       loop_control:
59         label: "{{ item.key }}"
60       with_dict:
61         BindAddress: deb.http.realraum.at
62         Port: 8080
63         ForceManaged: 1
64         Remap-debsec: /debian-security ; file:backends_debian_security
65         Remap-grml: /grml ; file:backends_grml
66         Remap-pi: /pi ; file:backends_pi
67         Remap-raspbian: /raspbian ; file:backends_raspbian
68
69
70     - name: Configure's acng's backends
71       notify: restart acng
72       copy:
73         dest: /etc/apt-cacher-ng/backends_{{ item.key }}
74         content: |
75           {% for backend in item.value %}
76           {{ backend }}
77           {% endfor %}
78         mode: 0644
79
80       loop_control:
81         label: "{{ item.key }}"
82       with_dict:
83         debian:
84           - https://debian.ffgraz.net/debian
85           - http://cdn-fastly.deb.debian.org/debian
86
87         debian_security:
88           - https://debian.ffgraz.net/debian-security
89           - http://cdn-fastly.deb.debian.org/debian-security
90
91         pi:
92           - https://debian.ffgraz.net/pi
93           - https://archive.raspberrypi.org/debian
94
95         raspbian:
96           - https://debian.ffgraz.net/raspbian
97           - https://archive.raspbian.org/raspbian