aboutsummaryrefslogtreecommitdiffstats
path: root/roles/proxmox_hypervisor/tasks/pve.yml
blob: e780bf602fc9354904030ef8d2e24ceb58892623 (plain)
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
- name: disable proxmox enterprise repositiory
  apt_repository:
    filename: pve-enterprise
    repo: 'deb {{ proxmox_repo_url }} {{ ansible_distribution_release }} pve-enterprise'
    state: absent
    update_cache: no

- name: enable proxmox community repository
  apt_repository:
    filename: pve-no-subscription
    repo: 'deb {{ proxmox_repo_url }} {{ ansible_distribution_release }} pve-no-subscription'
    state: present
    update_cache: yes

- name: enable snippets on local storage
  lineinfile:
    path: /etc/pve/storage.cfg
    line: '	content iso,backup,snippets,vztmpl'
    regexp: '^\s+content\s'
    insertafter: '^dir: local$'
    firstmatch: yes

- name: create snippets directory
  file:
    path: '{{ proxmox_snippets_dir }}'
    state: directory

- name: generate custom snippets
  template:
    src: '{{ item.src }}'
    dest: '{{ proxmox_snippets_dir }}/{{ item.path | splitext | first }}'
  loop: "{{ lookup('filetree', '../templates/{{ proxmox_snippets_dir[1:] }}', wantlist=True) }}"
  when: item.state == 'file'

- name: add ansible API user
  import_tasks: pve_api_user.yml

- name: create kvm image directory
  file:
    path: '{{ proxmox_kvm_image_dir }}'
    state: directory

- name: get current VMIDs
  shell: qm list | awk '{print $1}'
  register: vmids
  changed_when: false

- name: install proxmoxer
  apt:
    name: python3-proxmoxer
    state: present

- name: create KVM templates
  include_tasks: pve_kvm_template.yml
  when: (image.vmid | string) not in vmids.stdout_lines
  loop: '{{ proxmox_kvm_images }}'
  loop_control:
    loop_var: image