For context: I want to automatically enable Intel SGX for every VM and LXC in Proxmox, but it doesn’t seem like there’s a way to do it using APIs AFAIK (so Terraform is out of the question unless I’ve missed something) other than editing the template for the individual LXC/VM.

I’d like to know if there’s a tool that can automate this. I could potentially write a shell script but I’d like to know if there’s something that’s mature software before I go do this. I have been reading about Packer, Vagrant and cloud-init but I don’t think this is something in their scope of usage.

Thanks!

  • Lupec@lemm.ee
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    10 months ago

    I don’t have much actual experience with it but you can run arbitrary shell commands in at least cloud-init, the others should be able to do the same. Maybe that could work? Definitely better than manually running scripts, at least.

      • Lupec@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        10 months ago

        Yeah, you’re probably right. I didn’t connect the dots that’s what you’d need here, my bad.

  • vegetaaaaaaa@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    10 months ago

    I would check enabling it from cloud-init and/or during an initial provisioning step using ansible

    • MigratingtoLemmy@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 months ago

      I will probably have to run cloud-init/ansible on the PVE host for this to work. I’d probably go with Ansible, but I would have liked for this to be possible directly through Terraform. I don’t know if it’s the developer of the provider who didn’t include this.

      With that said, we do have AppArmour support for VMs, which is a secure enclave too (if I understand correctly). Don’t quite know if switching on and using both SGX and AppArmour would be a good choice - would you happen to know about this?

      • vegetaaaaaaa@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        10 months ago

        I would have liked for this to be possible directly through Terraform

        Is it this proxmox provider? It does allow specifying cloud-init settings: https://registry.terraform.io/providers/Telmate/proxmox/latest/docs/resources/cloud_init_disk. So you can use runcmd or similar to do whatever is needed inside the host to enable Intel SGX, during the terraform provisioning step.

        AppArmour support for VMs, which is a secure enclave too (if I understand correctly).

        Nope, Apparmor is a Mandatory Access Control (MAC)) framework [1], similar to SELinux. It complements traditional Linux permissions (DAC, Discretionary Access Control). Apparmor is already enabled by default on Debian derivatives/Ubuntu.

        • MigratingtoLemmy@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          10 months ago

          I was under the impression that cloud-init could only really be used to run commands inside the guest? Well, I could technically use Ansible and edit the file every time I provision something - this was just an example of however much the community tries, there might be something missing in the provider because proxmox doesn’t take this on directly.

          I should have worded that better. In using MAC, AppArmor effectively reduces access to files that would be essential for the VM to run. That is the sense in which I mentioned “security enclave” but I can see now that that isn’t quite correct.

          Either way, that is my philosophical reasoning for complaining this much. Ansible is pretty decent and has decent Proxmox integration, but Terraform is, in my opinion, superior when it comes to deploying infrastructure. That might be a bias from my side, of course. For now, I’m also going through the OpenStack documentation to see if the things I want to achieve can be done there, because they have an official Ansible project alongside their version of Cloudformation - Heat.

          Thanks