Skip to content
This repository has been archived by the owner on Feb 10, 2024. It is now read-only.

alexpdp7/ansible-create-proxmox-host

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

A playbook that creates an LXC container and joins it to a FreeIPA domain.

Typical usage:

---
- hosts: <proxmox_host>
  tasks:
    - include_role:
        name: create-proxmox-host
      vars:
        hostname: <hostname>
        vmid: "{{ hostvars['<hostname>']['proxmox_vmid'] }}"
        ipa_domain: "{{ ipa_domain_name }}"
        ipa_username: admin
        ipa_password: "{{ ipa_admin_password }}"
        root_password: "{{ hostvars['<hostname>']['root_password'] }}"
        flavor: ubuntu_20_04

I keep IPA data on group_vars/all/(vars|vault) and proxmox_vmid on host_vars//(vars|vault).

I only need a single line in the inventory for each host's hostname, and I put:

ansible_become: True
ansible_user: <my ipa username>

in the host's variables to connect.

Parameters:

  • flavor: only ubuntu_20_04 is supported now
  • vmid
  • hostname
  • memory: default 512, in megabytes
  • swap: default 512, in megabytes
  • disk: default 4, in gigabytes
  • root_password
  • extra_opts: to pass on to pct create
  • ipa_idrange_start, ipa_idrange_start, ipa_idrange_size
  • ipa_domain, ipa_password, ipa_username

Docker setup

Use the following to create a zvol to hold /var/lib/docker and get Docker working when using ZFS:

---
- hosts: <proxmox_host>
  tasks:
    - name: Create Docker zvol
      zfs:
        name: rpool/user/<hostname>-docker
        state: present
        extra_zfs_properties:
          volsize: 32G
    - name: Format Docker zvol
      shell: "test -f /etc/ansible/mkfs-<hostname>-docker || mkfs.ext4 /dev/zvol/rpool/user/<hostname>-docker && touch /etc/ansible/mkfs-<hostname>-docker"
    - name: Mount Docker zvol
      mount:
        path: /mnt/<hostname>-docker
        src: /dev/zvol/rpool/user/<hostname>-docker
        fstype: ext4
        state: mounted
    - name: fix perms Docker zvol
      file:
        path: /mnt/<hostname>-docker
        mode: 0711
        owner: "100000"
        group: "100000"
    - include_role:
        name: create-proxmox-host
      vars:
...
        extra_opts: -features nesting=1,keyctl=1 -mp0 /mnt/dokku-docker,mp=/var/lib/docker

Note: as this does not follow the disk naming conventions that Proxmox uses, Proxmox features like snapshots and migration might cease to work. See #1 for hints about following the disk naming conventions to solve this problem.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published