-
Notifications
You must be signed in to change notification settings - Fork 14
/
proxmox-setup.yml
147 lines (128 loc) · 3.92 KB
/
proxmox-setup.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
---
- name: Setup proxmox nodes
hosts:
- proxmox
become: true
gather_facts: true
any_errors_fatal: true
pre_tasks:
- name: Pausing for 5 seconds...
ansible.builtin.pause:
seconds: 5
tasks:
- name: Remove PVE Enterprise repo
ansible.builtin.apt_repository:
repo: deb https://enterprise.proxmox.com/debian/pve {{ ansible_distribution_release }} pve-enterprise
state: absent
filename: pve-enterprise
- name: Add PVE no-subscription repo
ansible.builtin.apt_repository:
repo: deb http://download.proxmox.com/debian/pve {{ ansible_distribution_release }} pve-no-subscription
state: present
filename: pve-no-subscription
- name: Upgrade all system packages
ansible.builtin.apt:
upgrade: full
update_cache: true
cache_valid_time: 3600
autoclean: true
autoremove: true
register: apt_upgrade
retries: 5
until: apt_upgrade is success
- name: Mount EFI dir
ansible.posix.mount:
src: /dev/nvme0n1p2
path: /boot/efi
fstype: vfat
state: mounted
- name: Install common packages
ansible.builtin.apt:
name:
- vim
- ethtool
- htop
- linux-cpupower
- lm-sensors
- fwupdate
install_recommends: true
update_cache: true
cache_valid_time: 3600
autoclean: true
autoremove: true
- name: Load lm_sensors modules
community.general.modprobe:
name: "{{ item }}"
state: present
loop:
- coretemp
- drivetemp
- vfio
- vfio_iommu_type1
- vfio_pci
- kvmgt
- name: Enable lm_sensors modules on boot
ansible.builtin.copy:
mode: "0644"
content: "{{ item }}"
dest: "/etc/modules-load.d/{{ item }}.conf"
loop:
- coretemp
- drivetemp
- vfio
- vfio_iommu_type1
- vfio_pci
- kvmgt
- name: Set CPU mode to powersave (tmpfile)
ansible.builtin.copy:
mode: "0644"
content: "w /sys/devices/system/cpu/cpufreq/policy*/scaling_governor - - - - powersave"
dest: /etc/tmpfiles.d/cpu_governor.conf
notify: Configure CPU mode to powersave
- name: "Gather installed packages"
ansible.builtin.package_facts:
manager: auto
- name: "Install pve fake subscription"
when: "'pve-fake-subscription' not in ansible_facts.packages"
block:
- name: Get newest pve-fake-subscription release
ansible.builtin.uri:
url: https://api.github.com/repos/Jamesits/pve-fake-subscription/releases/latest
return_content: true
register: json_reponse
- name: Create tmpdir
ansible.builtin.tempfile:
state: directory
register: tmpdir
- name: Download pve-fake-subscription
ansible.builtin.get_url:
url: "{{ json_reponse.json.assets[0].browser_download_url }}"
dest: "{{ tmpdir.path }}"
mode: "0644"
register: download
- name: Install pve-fake-subscription
ansible.builtin.apt:
deb: "{{ download.dest }}"
- name: Disable rsyslog
ansible.builtin.systemd:
name: "{{ item }}"
enabled: false
state: stopped
loop:
- rsyslog.service
- name: Configure journald parameters
ansible.builtin.include_role:
name: igor_nikiforov.journald
vars:
journald_config:
Storage: volatile
- name: Install node-exporter
ansible.builtin.include_role:
name: prometheus.prometheus.node_exporter
handlers:
- name: Configure CPU mode to powersave
ansible.builtin.command:
cmd: cpupower frequency-set -g powersave
- name: Recreate initramfs
ansible.builtin.command:
cmd: /usr/sbin/update-initramfs -u