Foreman snapshot management plugin

Hello,
i just upgraded to Foreman 3.14 & Katello 4.16 and installed the snapshot management plugin. The installer run without any error. But i have no snapshot tab/page in the host page.
Is the plugin supported for the newer versions?
Thanks for your help!

Hi there,

all you see in the UI from the snapshot plugin is a card on the overview page of the host details page :slight_smile:

Hey,
i dont have that either. Which version are you using?

Hmm interesting, the screenshot is actually from orcharhino 7.1, though I have been using the plugin through all versions since 2.4

Could you make sure that you have the feature enabled? You can just rerun the installer this way:

foreman-installer --enable-foreman-plugin-snapshot-management

It should theoretically restart the application, which enables it.
Other things I could think of but shouldn’t really affect a change would be clearing the browser cache.

Your hosts are connected to a compatible compute resource right?

Doesnt seem to help. I think the plugin isnt available for my version yet

http://yum.theforeman.org/plugins/3.14/el9/x86_64/rubygem-foreman_snapshot_management-4.0.0-1.fm3_13.el9.noarch.rpm

It is available :+1:
That’s what it installs if you enable the feature

Could you please take a look at the production.log it might throw any error.

No i didnt mean it in that way. The installation works.
image

I mean the plugin isnt supported for my version.

It is compatible, as I say it I also have 3.14 running in another environment, and there it works :+1: (just checked to make sure)

production.log:
2025-04-30T14:04:02 [W|app|] You are trying to replace import_subnets from . Adding allowed actions from plugin permissions to the existing one.
2025-04-30T14:04:02 [W|app|] You are trying to replace view_hosts from foreman_ansible. Adding allowed actions from plugin permissions to the existing one.
2025-04-30T14:04:02 [W|app|] You are trying to replace view_hostgroups from foreman_ansible. Adding allowed actions from plugin permissions to the existing one.
2025-04-30T14:04:02 [W|app|] You are trying to replace edit_hosts from foreman_ansible. Adding allowed actions from plugin permissions to the existing one.
2025-04-30T14:04:02 [W|app|] You are trying to replace edit_hostgroups from foreman_ansible. Adding allowed actions from plugin permissions to the existing one.
2025-04-30T14:04:03 [W|app|] You are trying to replace view_smart_proxies from katello. Adding allowed actions from plugin permissions to the existing one.
2025-04-30T14:04:04 [W|app|] Failed to load Proxmox extension uninitialized constant ForemanFogProxmox
| Did you mean? ForemanChef
2025-04-30T14:04:05 [W|app|] Scoped order is ignored, it’s forced to be batch order.
2025-04-30T14:04:06 [W|app|] Scoped order is ignored, it’s forced to be batch order.
2025-04-30T14:04:06 [W|app|] Scoped order is ignored, it’s forced to be batch order.

The rest before is all info.

Okay looks good to me on first sight, you are using the snapshot plugin with a VMware compute resource right?

Yes we are using vmware. Do i need to connect the vsphere first in some way? Thats what im asking me the whole time, where do i get to the point to reach out to the vsphere

Just to make sure you also have setup the VMware compute resource provider (more features to enable), and then configured the connection to your vCenter, right?
And then clicked on associate Hosts, which makes the connection between the host items and the VM objects?

If you did this Foreman will know which VM is which host and can call the vCenter API to check the Snapshot state.

Okay i didnt do that. I thought i have to set this in the snapshot tab when i can see it. Im setting it up now. Do you know which permissions the vsphere user needs? I dont want to give foreman the administrator.
Thanks!

I created a compute resource with my vsphere and rerun the installer and restartet the services. But unfortunately nothing changed. Did i miss something. Test-wise, i gave foreman admin credentials for vsphere

Did you click the associate VMs button in the compute resource?

And for the permissions, there is only a cheat sheet for if you are also using provisioning,
these are the permissions which we gave the user, due to our needs:

https://docs.theforeman.org/nightly/Provisioning_Hosts/index-katello.html#Creating_a_VMware_User_vmware-provisioning

    privilege_ids:
      - Datastore.AllocateSpace
      - Datastore.Browse
      - Datastore.FileManagement
      - Datastore.UpdateVirtualMachineFiles
      - Global.LogEvent
      - InventoryService.Tagging.ObjectAttachable
      - Network.Assign
      - Resource.AssignVMToPool
      - System.Anonymous
      - System.Read
      - System.View
      - VirtualMachine.Config.AddExistingDisk
      - VirtualMachine.Config.AddNewDisk
      - VirtualMachine.Config.AddRemoveDevice
      - VirtualMachine.Config.AdvancedConfig
      - VirtualMachine.Config.Annotation
      - VirtualMachine.Config.CPUCount
      - VirtualMachine.Config.ChangeTracking
      - VirtualMachine.Config.DiskExtend
      - VirtualMachine.Config.DiskLease
      - VirtualMachine.Config.EditDevice
      - VirtualMachine.Config.HostUSBDevice
      - VirtualMachine.Config.ManagedBy
      - VirtualMachine.Config.Memory
      - VirtualMachine.Config.MksControl
      - VirtualMachine.Config.QueryFTCompatibility
      - VirtualMachine.Config.QueryUnownedFiles
      - VirtualMachine.Config.RawDevice
      - VirtualMachine.Config.ReloadFromPath
      - VirtualMachine.Config.RemoveDisk
      - VirtualMachine.Config.Rename
      - VirtualMachine.Config.ResetGuestInfo
      - VirtualMachine.Config.Resource
      - VirtualMachine.Config.Settings
      - VirtualMachine.Config.SwapPlacement
      - VirtualMachine.Config.ToggleForkParent
      - VirtualMachine.Config.Unlock
      - VirtualMachine.Config.UpgradeVirtualHardware
      - VirtualMachine.Interact.AnswerQuestion
      - VirtualMachine.Interact.Backup
      - VirtualMachine.Interact.ConsoleInteract
      - VirtualMachine.Interact.CreateScreenshot
      - VirtualMachine.Interact.DefragmentAllDisks
      - VirtualMachine.Interact.DeviceConnection
      - VirtualMachine.Interact.DnD
      - VirtualMachine.Interact.GuestControl
      - VirtualMachine.Interact.Pause
      - VirtualMachine.Interact.PowerOff
      - VirtualMachine.Interact.PowerOn
      - VirtualMachine.Interact.PutUsbScanCodes
      - VirtualMachine.Interact.Record
      - VirtualMachine.Interact.Replay
      - VirtualMachine.Interact.Reset
      - VirtualMachine.Interact.SESparseMaintenance
      - VirtualMachine.Interact.SetCDMedia
      - VirtualMachine.Interact.SetFloppyMedia
      - VirtualMachine.Interact.Suspend
      - VirtualMachine.Interact.SuspendToMemory
      - VirtualMachine.Interact.ToolsInstall
      - VirtualMachine.Inventory.Create
      - VirtualMachine.Inventory.CreateFromExisting
      - VirtualMachine.Inventory.Delete
      - VirtualMachine.Inventory.Move
      - VirtualMachine.Provisioning.Clone
      - VirtualMachine.Provisioning.CloneTemplate
      - VirtualMachine.Provisioning.CreateTemplateFromVM
      - VirtualMachine.Provisioning.Customize
      - VirtualMachine.Provisioning.DeployTemplate
      - VirtualMachine.Provisioning.DiskRandomAccess
      - VirtualMachine.Provisioning.DiskRandomRead
      - VirtualMachine.Provisioning.FileRandomAccess
      - VirtualMachine.Provisioning.GetVmFiles
      - VirtualMachine.Provisioning.MarkAsTemplate
      - VirtualMachine.Provisioning.MarkAsVM
      - VirtualMachine.Provisioning.ModifyCustSpecs
      - VirtualMachine.Provisioning.PromoteDisks
      - VirtualMachine.Provisioning.PutVmFiles
      - VirtualMachine.Provisioning.ReadCustSpecs
      - VirtualMachine.State.CreateSnapshot
      - VirtualMachine.State.RemoveSnapshot
      - VirtualMachine.State.RenameSnapshot
      - VirtualMachine.State.RevertToSnapshot

If you only want to use the snapshot feature, it might be enough if the user can read all objects/properties + the snapshot stuff

2 Likes

Thank you! Now everthing works!

1 Like