aboutsummaryrefslogtreecommitdiff
path: root/personal_infra/playbooks/proxmox_create_lxc.yml
blob: c904fa8db8fc7c4bf83cbc139e28b462202f4c2a (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
---
- name: create lxc
  hosts: lxc
  gather_facts: false
  collections:
    - ansible.builtin
    - community.general

  vars:
    flavors:
      el8:
        template: rockylinux-8-default_20210929
        pct_ostype: centos
      el9:
        template: rockylinux-9-default_20221109
        pct_ostype: centos
        
  tasks:
    - name: download template
      command: "pveam download local {{ flavors[proxmox.flavor].template }}_amd64.tar.xz"
      args:
        creates: "/var/lib/vz/template/cache/{{ flavors[proxmox.flavor].template }}_amd64.tar.xz"
      delegate_to: "{{ proxmox.host }}"
    - name: create host
      command: >
        pct create {{ proxmox.id }} "/var/lib/vz/template/cache/{{ flavors[proxmox.flavor].template }}_amd64.tar.xz"
          --hostname {{ inventory_hostname }}
          --storage local-zfs
          -net0 name=eth0,bridge=vmbr0,ip=dhcp
          -onboot 1
          --unprivileged
          --password {{ ansible_password }}
          --nameserver {{ hostvars[proxmox.host].network.self_internal_ip }}
          --ostype {{ flavors[proxmox.flavor].pct_ostype }}
      args:
        creates: "/etc/pve/lxc/{{ proxmox.id }}.conf"
      delegate_to: "{{ proxmox.host }}"
    # https://bugzilla.proxmox.com/show_bug.cgi?id=4460
    - name: set hostname
      copy:
        content: "{{ inventory_hostname }}"
        dest: /rpool/data/subvol-{{ proxmox.id }}-disk-0/etc/hostname
      delegate_to: "{{ proxmox.host }}"
    - name: start host
      command: pct start {{ proxmox.id }}
      delegate_to: "{{ proxmox.host }}"
    - name: install ssh
      command: pct exec {{ proxmox.id }} -- dnf install -y openssh-server
      retries: 10
      delay: 1
      until: result.rc == 0
      register: result
      delegate_to: "{{ proxmox.host }}"
    - name: enable ssh
      command: pct exec {{ proxmox.id }} -- systemctl enable --now sshd
      delegate_to: "{{ proxmox.host }}"