Subcategories

  • VMs, hosts, pools, networks and all other usual management tasks.

    472 Topics
    4k Posts
    johnnezeroJ
    UPDATE: Tag-Based-Automation Plugin WHAT: The xo-tag-automation plugn is a native xo-server plugin that enforces VM performance tiers, manages group permissions, and synchronizes VM metadata -- all driven by VM tags and NFS-hosted CSV files (see below for more details). FEATURES PERFORMANCE SYNC Automatically applies CPU weights and IO priorities (sched-pri) based on VM performance tier tags: 0-core -- CPU weight: 2048 IO priority: 7 1-high -- CPU weight: 1024 IO priority: 7 2-normal -- CPU weight: 512 IO priority: 5 3-low -- CPU weight: 256 IO priority: 2 All tier weights and IO priorities are fully configurable in the plugin UI. An optional pool-specific tag suffix (e.g. -1=POOL1, -2=POOL2, etc.) allows you to manage multiple pools from a single XO instance without tag collisions. PERMISSION SYNC VM tags ending in -Admin, -Operator, or -Viewer automatically trigger XO Group creation and ACL assignments. CSV PERMISSION MANAGEMENT FILES Two CSV files on your NFS share drive the workflow: current-vms.csv A live export of your entire VM inventory. Contains UUID, Name, CurrentTags, NewTags, CurrentNotes, and NewNotes columns. Edit the NewTags and NewNotes columns and run the plugin (e.g. push the [Test plugin] button) to apply changes in bulk. The CSV auto-refreshes after each run. A staleness warning fires if the CSV has not been updated within a configurable number of days. preload-vms.csv Pre-stage tag and notes configurations for VMs that do not exist yet -- before they are migrated or created. The moment a VM matching a preload entry appears in XO, the plugin applies (on next scheduled interval) its tags and notes automatically and removes the entry from the preload file. PERMISSION AUTOPILOT Designed for active migration and onboarding projects. Automatically applies permission settings on scheduled interval, based on preload-vms.csv contents. Note: Should be disabled when not actively involved in migration projects. DRY-RUN / EXPORT-CSV MODE When Dry-Run is ON (the default), the plugin previews all changes in the XO logs without applying any changes, and simultaneously exports a fresh copy of all VM metadata to current-vms.csv with blank NewTags and NewNotes columns ready to fill in. Turn Dry-Run OFF to apply changes for real. RUN NOW (e.g. The [Test plugin] button) Trigger a full enforcement cycle instantly from the XO plugin UI without waiting for the next scheduled run. NFS LOGGING All activity is written to structured log files on your NFS share: xo-tag-automation.log -- full run log (auto-rotates at 2MB) xo-tag-automation.log.1 -- previous log backup xo-tag-automation-summary.log -- run summary entries only daily-summary.log -- nightly VM count and new VM report Logs are also available via xo-cli API methods (see below). LEGACY MIGRATION If you have an existing vm_metadata.csv from an older version, the plugin automatically renames it to current-vms.csv on first run. No manual migration needed. SECURITY -- PLEASE READ CAREFULLY This plugin automates infrastructure changes. Security is not optional. Please take both of the following seriously before enabling Permission Sync or Autopilot. -- REST API SERVICE ACCOUNT -- The plugin uses the XO JSON-RPC API internally. Use a dedicated service account -- never your personal admin credentials. Recommended setup (generic -- adapt to your environment): Create a dedicated XO user account for the service (e.g. a non-admin account with only the minimal access permissions required) Generate a scoped API token via xo-cli: xo-cli --register xo-cli token.create Store the token securely -- treat it like a password! Refer to the official Vates REST API documentation for full token management guidance: https://xen-orchestra.com/docs/restapi.html -- NFS SHARE SECURITY -- The NFS share hosts your CSV files and logs. Anyone with write access to the share can modify VM tags and permissions. STRONGLY RECOMMENDED Run the NFS share from a dedicated VM -- not a general-purpose NFS server. Restrict NFS exports to the XOA IP address only: /srv/nfs/share<XOAIP>/32(rw,sync,no_subtree_check,no_root_squash) Do NOT expose the NFS share to the general network or to end-user access. Admins who need to edit CSV files can SCP them to/from the XOA: EXAMPLE: Download CSV from XOA to your workstation scp <xoa-user>@<xoa-ip>:/path/to/current-vms.csv ./ Upload edited CSV back to XOA scp ./current-vms.csv <xoa-user>@<xoa-ip>:/path/to/current-vms.csv Use firewall rules to enforce NFS access at the network level in addition to the exports configuration Failure to secure the NFS share is a serious security risk. UPGRADING FROM THE STANDALONE SCRIPT If you installed the old standalone set-performance.sh script, you can remove it before enabling the plugin as follows: Remove the script: sudo rm /usr/local/bin/set-performance.sh Remove the crontab entry: crontab -e (delete the line referencing set-performance.sh) Note: The plugin handles its own scheduling via the XO UI. No manual cron configuration is required. INSTALLATION Download the latest airgap release tarball from GitHub: https://github.com/johnezero/xo-tag-automation_plugin/releases SCP the tarball to your XOA: scp xo-tag-automation-airgap-vX.X.X.tar.gz <xoa-user>@<xoa-ip>:/tmp/ Create the plugin folder: sudo mkdir -p /usr/local/lib/node_modules/xo-server-tag-automation Extract directly into the plugin directory: sudo tar -xzvf /tmp/xo-tag-automation-airgap-vX.X.X.tar.gz -C /usr/local/lib/node_modules/xo-server-tag-automation/ --strip-components=1 Restart xo-server: sudo systemctl restart xo-server Verify registration: sudo journalctl -u xo-server -n 100 --no-pager | grep -A3 "tag-automation" You should see: [INFO] xo-tag-automation: Plugin factory called -- xo context: YES [INFO] xo-tag-automation: Plugin loaded -- waiting for core started. xo:plugin INFO successfully register tag-automation Enable and configure the plugin options in XO: Settings -> Plugins -> tag-automation -> Enable XO-CLI API METHODS The plugin exposes several API methods accessible via xo-cli: xo-cli xo-server-tag-automation.exportCsv Export current VM inventory to current-vms.csv xo-cli xo-server-tag-automation.downloadCsvApi Print CSV content to stdout xo-cli xo-server-tag-automation.uploadCsvApi content@./current-vms.csv Push an edited CSV back to the NFS share xo-cli xo-server-tag-automation.getLog lines=100 View the last N lines of the plugin log xo-cli xo-server-tag-automation.getDailySummary View the nightly VM count summary xo-cli xo-server-tag-automation.getFilePaths Show all configured file paths LINKS GitHub: https://github.com/johnezero/xo-tag-automation_plugin Vates REST API docs: https://xen-orchestra.com/docs/restapi.html STANDARD DISCLAIMER HERE This software is provided "AS-IS" without any express or implied warranty. While this plugin is being used in a production environment managing live VMs, you should always review the code and test it in a non-production environment before full deployment. Note: The plugin is designed to ONLY take action on VMs with specific tags assigned (e.g. untagged VMs are never modified). Use Dry-Run mode to preview all changes (via log file output) before applying them. That said, as always - your mileage may vary... [image: 1780884996846-johnezero-logo.jpg]
  • ACLs, Self-service, Cloud-init, Load balancing...

    104 Topics
    863 Posts
    laszlobortelL
    @florent Thanks for your reply! We have started to migrate thousands of VMs, so disk transfer speed is important for us.. We will also do our detailed tests soon with different threads setting and publish it here. I think threads=1 is a good and logical default, but not efficient. Others might complain if you set it to a higher value. Configuration option would be a real good solution.
  • All XO backup features: full and incremental, replication, mirrors...

    509 Topics
    5k Posts
    A
    @florent Ubuntu LVM file restore is working! (commit 38931) Now for another important issue I noticed with file restore (not directly LVM). Symbolic links don't show up. They should be restorable alone, but more importantly you need to be able to see and follow them for directories. For example. In Ubuntu, /bin is a link to /usr/bin. It is important to be able to click on /bin as a link to /usr/bin so files can be found in the backup. Another example is /vmlinuz that is a link to boot/vmlinuz-5.10.0-44-amd64. At worst the file restore should show a link (and it's destination), even if I can't restore the link. This is not just a LVM issue.
  • Everything related to Xen Orchestra's REST API

    85 Topics
    642 Posts
    1
    @poddingue Confirmed working, thank you so much for the heads-up, this made my day! Got it wired into the n8n flow and it's running perfectly. One gotcha for anyone else landing here, name_description gets rejected with a 422 "excess property", it has to be nameDescription. Working body: { "nameDescription": "nginx, app-1, app-2 | 2026-06-01" }
  • Terraform, Packer or any tool to do IaC

    50 Topics
    470 Posts
    CyrilleC
    Kubernetes CSI Driver for XO new release v0.3.0 Stable CSI Volume Identity: This decouples Kubernetes volume identity from backend storage lifecycle events (e.g. VDI migration between Storage Repositories) Topology-Aware Volume Provisioning: Dynamic provisioning now supports topology-aware pool selection. ️ Migration required from v0.2.0 to v0.3.0 Full release note: https://github.com/vatesfr/xenorchestra-csi-driver/releases/tag/v0.3.0
  • Xen Orchestra from Sources unreachable after applying XCPng Patch updates

    24
    0 Votes
    24 Posts
    7k Views
    JamfoFLJ
    @CodeMercenary Glad it worked! I just noticed that in the couple weeks since this happened, a new set of Pool Patches was available, so I ran through the usual process to update those and had no issues at all. This time, everything went smoothly, just as it has for the entire time I've had this lab up and running. So, chalk this up to one of those weird glitches you're bound to see when you use any technology long enough. As far as I'm concerned, the issue has been resolved. Please feel free to close out the issue.
  • Xen Orchestra v6 - From Sources

    4
    2
    0 Votes
    4 Posts
    2k Views
    lsouai-vatesL
    @acebmxer good news! XO Team is totally aware of these "loading in progress" issues, and it will be fixed in the next release which will be released very soon. Don't hesitate to inform us if you see another UI issues. Have a good day!
  • XOA v6 create (dynamic) groups to organize vms - Feature request

    4
    1
    0 Votes
    4 Posts
    1k Views
    Vincent GV
    @lsouai-vates
  • Expanded VM View Display Issue for Debian based VMs

    4
    1
    0 Votes
    4 Posts
    853 Views
    olivierlambertO
    It's not a branch question, you need to build XO 6: yarn run turbo run build --filter @xen-orchestra/web
  • 0 Votes
    18 Posts
    2k Views
    D
    @HH said in XO Commuity Edition Xen Orchestra, commit fee7b geht nicht auf Master, commit e5702: I didn't mean that I want to go to 6.0 now, but when 6.0 becomes "Stable LTS", get that automatically with your script ? Assuming there aren't any major changes to the upgrading processing using the existing script should work, but that has to be determined once a general release is created.
  • Trial period extension for on-going tests

    3
    0 Votes
    3 Posts
    806 Views
    Y
    @olivierlambert Thank you Olivier
  • xoa updater stalls

    3
    0 Votes
    3 Posts
    802 Views
    xo-xenX
    Thank you so much for that hint. Yes, after restarting some xoa service this now works. So cool. You are great. Thank you.
  • 0 Votes
    5 Posts
    2k Views
    F
    Hello everyone. I tripped over this issue. If someone got another approach I would be interested. Thanks to @lsouai-vates I had a look at: https://github.com/vatesfr/xen-orchestra/blob/ab56924b1d046ccf6c09dfe7a4ab47deb5d77f4a/packages/xo-acl-resolver/index.js and https://github.com/vatesfr/xen-orchestra/blob/ab56924b1d046ccf6c09dfe7a4ab47deb5d77f4a/packages/xo-server/src/xo-mixins/acls.mjs#L150-L168 To what I understand it is not possible as a Non-Admin user to get information like pools, ... By creating a new admin user limiting the resources via ACLS with viewer right worked around this. However, granting admin rights still looks sort of strange. Just in case someone struggled as well this information might help.
  • 0 Votes
    10 Posts
    2k Views
    A
    @jivanpal We do not currently have any plans to support elliptic curve keys - this is a very sensitive topic given different governmental security requirements around the world. Note that Let's Encrypt recommends a dual setup for this exact reason: "Our recommendation is to serve a dual-cert config, offering an RSA certificate by default, and a (much smaller) ECDSA certificate to those clients that indicate support." (https://letsencrypt.org/docs/integration-guide/)
  • NFS Storage Leads to File System Errors After Unplanned Shutdown

    6
    0 Votes
    6 Posts
    1k Views
    I
    @creoleMalady Fingers crossed And don't feel stupid. Everybody has those moments - even after decades of experience.
  • Disk import failed

    Solved
    10
    1
    0 Votes
    10 Posts
    2k Views
    olivierlambertO
    Great news! Thanks for the feedback.
  • XOA Console not coming up

    6
    0 Votes
    6 Posts
    1k Views
    D
    @olivierlambert Tried this - XCPNG | ~/_scripts > netstat -tulpn | sed -n '1,2p;/5900\|80/p' Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:5900 0.0.0.0:* LISTEN 1741/vncterm tcp 0 0 0.0.0.0:10809 0.0.0.0:* LISTEN 2896/xapi-nbd tcp6 0 0 :::80 :::* LISTEN 2887/xapi udp 0 0 0.0.0.0:780 0.0.0.0:* 1029/rpcbind udp6 0 0 :::780 :::* 1029/rpcbind VNC on the XCPNg box is listening to 127.0.01 : 5900, may be - I should change this to listen to 0.0.0.0 ? Also, something to do with protocol used - the browser > inspect > network - seems to use ws:// protocol and receives a 101 - upgrade, should it have been vnc ? ( apologies if its a random guess rant here) -- Attached screenshot of browser console logs. FYI - 192.168.0.49:3000 - is where my XOA VM is running as a VM on XCP Ng (192.168.0.45) and the logs below is when the console for itself (i.e. same IP) [image: 1751716444788-selection_157.png]
  • XOA vs XO vs Backup feature

    4
    0 Votes
    4 Posts
    1k Views
    A
    @kagbasi-ngc Hi, thanks for your thoughts. I get on well with Linux myself - I’m using XO from source following the documentation, and actually, Ronivay’s script, as you mentioned, makes it all even handier. Still, I can’t help but think - your average home user, a total amateur, is just going to land on the XCP-ng host homepage and click "Deploy XOA". And then they’ve no backup, outside of the trial period. But sure, if XOA is aimed squarely at business and enterprise users with paid licences, fair enough that makes perfect sense. I just feel like backup isn’t really a purely business or enterprise feature, unlike, say, proxy instances or hyper-converged storage. It's something even home users would genuinely benefit from. But as it is mentioned above, that’s just how it’s set up - and like you said yourself, everyone’s got the chance to learn something new. And sure, in the age of AI chatbots, there’s really no excuse not to manage it
  • XO and XCP-ng pricing

    34
    0 Votes
    34 Posts
    11k Views
    B
    @DustinB Been using it since 2012, non-profits fell under the academic tier and it was originally by number of cpu which was 2 cpu per host, under 192G ram but again didnt include vmotion etc, just plain ole esxi why I used Veeam since it brought replication into the mix again still using them at a very low cost. They had essentials and essentials plus and the academic pricing was very low, my understanding is they would rather you use VMware vs something else. Again I have receipts going back to 2012, pretty much same price for all these years until Broadcom entered the picture. There was nothing sus about it, you had to verify your non-profit category and fit within the limts, it was pretty standard pricing for a low number of cores, I could go to CDW or any reseller and get the same pricing. Why you have so many small companies jumping ship many were using vmware essentials which was WAY cheaper then what they are doing now which the only option is Standard and it now requires min of 16 cores per host @$50/core. That is the new and wonderful world of Broadcom... Anyway, this was pretty common stuff under VMware, why so many folks were using it, even the small shops.
  • Some weird Alt Gr issue

    3
    0 Votes
    3 Posts
    487 Views
    K
    @olivierlambert thank you for your response. Just tested with another laptop : no more issue... Well, we will inform our future users and wait for v6 !
  • Transport-email plugin - oauth for gmail

    6
    0 Votes
    6 Posts
    1k Views
    D
    @Pierre-Briec You can try something like Mailjet.
  • XO SocketError: other side closed

    Solved
    12
    0 Votes
    12 Posts
    2k Views
    olivierlambertO
    Excellent news! Thanks for keeping us posted
  • 0 Votes
    14 Posts
    6k Views
    TheNorthernLightT
    @dinhngtu Thank you very much for this. Luckily, these last few 2012 OS's will be mothballed at the end of August, but... sometimes schedules and security don't align.
  • XO one time job scheduler

    3
    0 Votes
    3 Posts
    628 Views
    tjkreidlT
    @RS One option would be this, assuming in this se you want to run the job at midnight on Dec. 25: /bin/echo "/path/to/your/script.sh" | at midnight Dec 25 While cron doesn't offer a specific one-time execution, you could also do this in cron but would have to remove the entry afterwards: 0 0 25 12 * /path/to/your/script.sh Also, take a look at this option: https://www.fastcron.com/guides/one-time-cronjobs/
  • CPU Stats bottoming out to Zero every five minutes

    10
    1
    0 Votes
    10 Posts
    2k Views
    tjkreidlT
    @DKirk That all makes sense, thanks for clarifying. Looks like there are further comments below that seem to pinpoint where the issue may lay. The key point you make is only "after the last updates" is when this started happening!