Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Breaking Change] No subscription bugfixes for automated installation #288

Closed

Conversation

FreddyFunk
Copy link
Contributor

I am currently trying to fully automate Proxmox Cluster + Ceph provisioning via your awesome Ansible role after utilizing a custom generatated Proxmox VE ISO described in the Proxmox wiki.

With v1.9.1 of this role I get some errors seen in the screenshot below. This PR draft aims to fix this and allows a fully automated installation with no enterprise subscription for neither Proxmox VE nor Ceph and also allows optional Ceph release override.

I am opening this as a draft since I am not sure if I am going in the right direction and would like to kindly ask for some feedback. This might be the beginning of a series of pull requests if it is okay for you and if you are interested.

Also please do not merge it yet, since it is a breaking change regarding the configuration variables of this role and I had no proper time to test it yet.

image

…E nor Ceph and also allows optional Ceph release override
@lae
Copy link
Owner

lae commented Jan 9, 2025

pve_repository_line needs to stay. some of us use unofficial, usually private, repos (myself included when I originally wrote the role) either for caching, working in walled garden environments, or working with repositories with custom patches.

The error in your screenshot, if I understand correctly, just needs you to import the enterprise GPG signing key to apt before updating. This should be doable as a pre_task in your playbook even without having run this role yet, I think?

@FreddyFunk
Copy link
Contributor Author

I do not have access to a Proxmox Enterprise license and also plan to only use the no subscription version for Proxmox VE and Ceph in my home lab. I aim to get to a point where I can get from a completely fresh Proxmox VE 8.3 install to a full working VE cluster with Ceph setup.

The shown error appears when installing Proxmox VE 8.3 and then run the following playbook immediately afterwards:

---
# Required when running the ntp role on a system that has never updated the package repo cache.
# I plan to purpose a change to Jeff for that.
- hosts: home_cluster
  become: True
  tasks:
    - name: Update repositories cache
      ansible.builtin.apt:
        update_cache: yes
      ignore_errors: yes

- hosts: home_cluster
  become: True
  roles:
    - role: geerlingguy.ntp
      vars:
        ntp_manage_config: true
        ntp_timezone: Europe/Berlin

- hosts: home_cluster
  become: True
  tasks:
    - ansible.builtin.apt:
        clean: yes
      become: yes

- hosts: home_cluster
  become: True
  roles:
    - role: lae.proxmox
        

These are my variables set in the group vars:

---
pve_group: home_cluster
pve_watchdog: ipmi
pve_ssl_private_key: "{{ lookup('file', pve_group + '/' + inventory_hostname + '.key') }}"
pve_cluster_enabled: yes
pve_cluster_clustername: "{{ pve_group }}"
pve_reboot_on_kernel_update: true
pve_storages:
  - name: localdir
    type: dir
    content: [ "images", "iso", "backup" ]
    path: /plop
    maxfiles: 4
pve_ssh_port: 22
pve_repository_line: "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription"
pve_ceph_repository_line: "deb http://download.proxmox.com/debian/ceph-squid bookworm main"
pve_remove_subscription_warning: true

So I assumed that the repository change might not work as expected and therefore opened this draft. Maybe this should have been an issue ticket instead...
Nonetheless, do you have an idea what is wrong here?

@lae
Copy link
Owner

lae commented Jan 10, 2025

Oh, I see, this scenario hasn't been brought up for a while so I kind of forgot. This role isn't technically supported on systems installed via the Proxmox ISO. It's out of scope because it's hard to test. For the longest time, at least. See #192 (comment) and #96 (comment). On closer inspection, this PR also suffers the same issue as those where it doesn't remove the enterprise repo on clean installs because it doesn't exist until the Proxmox packages are installed. A bit of a chicken and egg problem really.

But, I took a quick look at the wiki article you linked. It wasn't completely obvious from your OP, but I guess as of last year it looks like it's finally possible to preseed the Proxmox ISO for a fully unattended install. Which I guess means it should be more possible to automate the provisioning of virtual machines using the Proxmox ISO to use as a testing/development environment. This is clearly a bit of work, but that would make it more feasible to test the role in CI against Proxmox and thus start supporting it alongside Debian properly, in some sense at least. At the very least I would want a new Vagrantfile (or maybe a way to dynamically configure what image the existing Vagrantfile uses) to use such an automatically created image (which could be managed in its own repo, using Packer or whatever to build it).

Do keep in mind though that "fully automated clusters" (i.e. from machine boot to working cluster) has already been a thing with this role and Debian preseed/PXE since this role reached v1.0. (Only mentioning this in case you're not aware.)

Anyway, to get around this issue in the immediate future, you will need to have a post-install task to remove the enterprise repo. This seems to be something you can do using the first boot hook section.

@lae
Copy link
Owner

lae commented Feb 27, 2025

#291

@lae lae closed this Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants