]> git.somenet.org - root/pub/somesible.git/blob - roles/base/apt/tasks/main.yml
[roles/base/apt] configure package manager + update pkg-cache + upgrade packages
[root/pub/somesible.git] / roles / base / apt / tasks / main.yml
1 #####################################
2 ### someone's ansible provisioner ###
3 #####################################
4 # Part of: https://git.somenet.org/root/pub/somesible.git
5 # 2017-2026 by someone <someone@somenet.org>
6 #
7 ---
8 - name: copy apt sources.list
9   copy:
10     src: "{{item}}"
11     dest: "/etc/apt/sources.list"
12     mode: 0644
13     owner: "root"
14     group: "root"
15   with_first_found:
16     - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/apt-sources.list"
17     - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/apt-sources.list"
18     - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/apt-sources.list"
19     - "default/apt-sources.list"
20
21
22 - include_tasks: copy_sources_list_d_entries.yml
23   with_items: "{{apt_sources_list_d_entries}}"
24   loop_control:
25     loop_var: source_name
26
27
28 - name: copy apt package-pinning
29   copy:
30     src: "{{item}}"
31     dest: "/etc/apt/preferences.d/pinning.pref"
32     mode: 0644
33     owner: "root"
34     group: "root"
35   with_first_found:
36     - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/apt-pinning.pref"
37     - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/apt-pinning.pref"
38     - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/apt-pinning.pref"
39     - "default/apt-pinning.pref"
40
41
42 - name: copy apt kernel autoremove settings
43   copy:
44     src: "{{item}}"
45     dest: "/etc/apt/apt.conf.d/01autoremove"
46     mode: 0644
47     owner: "root"
48     group: "root"
49   with_first_found:
50     - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/apt.conf.d/01autoremove"
51     - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/01autoremove"
52     - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/01autoremove"
53     - "default/apt.conf.d/01autoremove"
54
55
56 - name: copy additional apt settings
57   copy:
58     src: "{{item}}"
59     dest: "/etc/apt/apt.conf.d/90somecustom"
60     mode: 0644
61     owner: "root"
62     group: "root"
63   with_first_found:
64     - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/apt.conf.d/90somecustom"
65     - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/90somecustom"
66     - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/90somecustom"
67     - "default/apt.conf.d/90somecustom"
68
69
70 - name: copy additional dpkg settings
71   copy:
72     src: "{{item}}"
73     dest: "/etc/dpkg/dpkg.cfg.d/90somecustom"
74     mode: 0644
75     owner: "root"
76     group: "root"
77   with_first_found:
78     - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/dpkg.cfg.d-90somecustom"
79     - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/dpkg.cfg.d-90somecustom"
80     - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/dpkg.cfg.d-90somecustom"
81     - "default/dpkg.cfg.d-90somecustom"
82
83
84 - name: copy ucf settings
85   copy:
86     src: "{{item}}"
87     dest: "/etc/ucf.conf"
88     mode: 0644
89     owner: "root"
90     group: "root"
91   with_first_found:
92     - "{{lookup('env','PWD')}}/host_files/{{inventory_hostname}}/{{role_name}}/ucf.conf"
93     - "{{lookup('env','PWD')}}/group_files/{{group_files_group}}/{{role_name}}/ucf.conf"
94     - "{{lookup('env','PWD')}}/group_files/all/{{role_name}}/ucf.conf"
95     - "default/ucf.conf"
96
97
98 - name: disable and stop apt-daily.timer
99   systemd:
100     name: apt-daily.timer
101     daemon_reload: yes
102     enabled: no
103     state: stopped
104
105
106 - name: disable and stop apt-daily-upgrade.timer
107   systemd:
108     name: apt-daily-upgrade.timer
109     daemon_reload: yes
110     enabled: no
111     state: stopped
112
113
114 - name: update repository cache if older than {{apt_cache_valid_time}} sec
115   apt:
116     update_cache: yes
117     cache_valid_time: "{{apt_cache_valid_time}}"
118   tags: "online"
119   ignore_errors: True
120
121
122 - name: install apt helper packages
123   apt:
124     pkg: "{{apt_helper_packages}}"
125     state: present
126     policy_rc_d: 101
127   tags: "online"
128   ignore_errors: "{{ignore_online_errors | bool}}"
129   register: temp
130
131
132 - name: update repository cache once more
133   apt:
134     update_cache: yes
135   tags: "online"
136   ignore_errors: True
137   when: temp.changed
138
139
140 # Use new configs. always. otherwise things like distupgrade can break.
141 - name: upgrade packages
142   apt:
143     upgrade: full
144     install_recommends: no
145     policy_rc_d: 101
146     dpkg_options: 'force-confnew,force-confmiss'
147   tags: "online"
148   ignore_errors: "{{ignore_online_errors | bool}}"
149
150
151 - name: remove dependencies that are no longer required
152   apt:
153     autoremove: yes
154     purge: yes
155   tags: "online"
156   ignore_errors: "{{ignore_online_errors | bool}}"
157   when: apt_cleanup | bool
158
159
160 - name: remove useless packages from the download cache
161   apt:
162     autoclean: yes
163   tags: "online"
164   ignore_errors: "{{ignore_online_errors | bool}}"
165   when: apt_cleanup | bool
166
167
168 - name: install additional packages
169   apt:
170     pkg: "{{ apt_additional_pkg + apt_additional_pkg_extra }}"
171     state: present
172     policy_rc_d: 101
173   tags: "online"
174   ignore_errors: "{{ignore_online_errors | bool}}"
175
176
177 - name: install additional bare metal packages
178   apt:
179     pkg: "{{ apt_additional_pkg_bare_metal }}"
180     state: present
181     policy_rc_d: 101
182   when: is_bare_metal | bool
183   tags: "online"
184   ignore_errors: "{{ignore_online_errors | bool}}"
185
186
187 # hacky, but sufficient for now: enablestart some installed services
188 - name: enable and start plocate-updatedb.timer
189   include_role: name="base/systemd/enable-and-start"
190   vars:
191     service_name: plocate-updatedb.timer
192
193 - name: enable and start lm-sensors.service
194   include_role: name="base/systemd/enable-and-start"
195   vars:
196     service_name: lm-sensors.service
197   when: is_bare_metal | bool
198
199
200   # makes no sense on RPI, ignore error.
201 - name: enable and start smartmontools.service
202   include_role: name="base/systemd/enable-and-start"
203   vars:
204     service_name: smartmontools.service
205   when: is_bare_metal | bool
206   ignore_errors: True