### Install cloud-initramfs-growroot Source: https://docs.xen-orchestra.com/vm-templates Install the growroot package to allow the VM to apply Cloud Config. ```bash sudo apt install cloud-initramfs-growroot ``` -------------------------------- ### Install openvswitch-ipsec for Encryption Source: https://docs.xen-orchestra.com/sdn_controller Install the necessary package for encrypting SDN Controller networks. Ensure the ipsec and openvswitch-ipsec services are enabled and started. ```bash yum install openvswitch-ipsec --enablerepo=xcp-ng-testing systemctl enable ipsec systemctl enable openvswitch-ipsec systemctl start ipsec systemctl start openvswitch-ipsec ``` -------------------------------- ### Install or Run MCP Server Source: https://docs.xen-orchestra.com/mcp Install the package globally or execute it directly using npx. ```bash npm install -g @xen-orchestra/mcp ``` ```bash npx @xen-orchestra/mcp ``` -------------------------------- ### Import and start XOA in air-gapped pool Source: https://docs.xen-orchestra.com/airgap Import the transferred XVA file into the air-gapped pool and start the appliance. ```bash $ xe vm-import filename=xoa.xva c87a6dc3-9889-acf0-a680-79de3780c08f $ xe vm-start uuid=c87a6dc3-9889-acf0-a680-79de3780c08f ``` -------------------------------- ### Install and build Xen Orchestra Source: https://docs.xen-orchestra.com/installation Commands to install dependencies and build the project from the root directory. ```bash cd xen-orchestra yarn yarn build ``` -------------------------------- ### Start xo-server Source: https://docs.xen-orchestra.com/installation Commands to launch the server and verify it is listening. ```bash $ yarn start WebServer listening on localhost:80 [INFO] Default user: "admin@admin.net" with password "admin" ``` ```bash yarn start ``` -------------------------------- ### Configure xo-server Source: https://docs.xen-orchestra.com/installation Setup the configuration file for the server in the user's home directory. ```bash cd packages/xo-server mkdir -p ~/.config/xo-server cp sample.config.toml ~/.config/xo-server/config.toml ``` -------------------------------- ### Install System Dependencies Source: https://docs.xen-orchestra.com/installation Install required system packages for Xen Orchestra on various Linux distributions. ```bash apt-get install build-essential redis-server libpng-dev git python3-minimal libvhdi-utils lvm2 cifs-utils nfs-common ntfs-3g openssl ``` ```bash dnf install redis libpng-devel git lvm2 cifs-utils make automake gcc gcc-c++ nfs-utils ntfs-3g openssl ``` ```bash dnf install epel-release dnf config-manager --enable devel dnf install valkey valkey-compat-redis libpng-devel git lvm2 cifs-utils make automake gcc gcc-c++ nfs-utils ntfs-3g openssl ``` -------------------------------- ### Install the CR seed utility Source: https://docs.xen-orchestra.com/incremental_replication Install the command-line tool required for manually associating source snapshots with target VMs. ```bash sudo npm i -g --unsafe-perm @xen-orchestra/cr-seed-cli ``` -------------------------------- ### Start Redis Service on FreeBSD Source: https://docs.xen-orchestra.com/installation Manually start the Redis service on FreeBSD if you are not rebooting the system immediately after configuration. ```bash service redis start ``` -------------------------------- ### Install Immutable Backups Package Source: https://docs.xen-orchestra.com/immutability Install the dedicated Xen Orchestra immutable backups package globally using npm. Ensure Node.js is installed on the backup repository machine. ```bash npm install -g @xen-orchestra/immutable-backups ``` -------------------------------- ### Install Additional OpenBSD Binaries Source: https://docs.xen-orchestra.com/installation Install optional binary packages on OpenBSD that some npm packages may require for building, potentially simplifying future upgrades. ```bash pkg_add jpeg optipng gifsicle ``` -------------------------------- ### Start Redis Service on OpenBSD Source: https://docs.xen-orchestra.com/installation Manually start the Redis service on OpenBSD using `rcctl` if you are not rebooting the system immediately after configuration. ```bash rcctl start redis ``` -------------------------------- ### Enable Redis on FreeBSD Boot Source: https://docs.xen-orchestra.com/installation Configure Redis to start automatically on boot by adding the appropriate line to your `/etc/rc.conf` file. ```bash redis_enable="YES" ``` -------------------------------- ### Install OpenBSD Packages for Xen Orchestra Source: https://docs.xen-orchestra.com/installation Install necessary packages on OpenBSD, including build tools, redis, Python, Git, Node.js, and Yarn. ```bash pkg_add gmake redis python--%2.7 git node autoconf yarn ``` -------------------------------- ### Install Additional FreeBSD Binaries Source: https://docs.xen-orchestra.com/installation Install optional binary packages on FreeBSD that some npm packages may require for building, potentially simplifying future upgrades. ```bash pkg install jpeg-turbo optipng gifsicle ``` -------------------------------- ### Enable Redis on OpenBSD Boot Source: https://docs.xen-orchestra.com/installation Configure Redis to start automatically on boot using `rcctl` on OpenBSD. ```bash rcctl enable redis ``` -------------------------------- ### Manage process with forever Source: https://docs.xen-orchestra.com/installation Use forever to keep the server running or install it as a system service. ```bash yarn global add forever # Run the below as the user owning XO forever start dist/cli.mjs ``` ```bash yarn global add forever yarn global add forever-service # Be sure to edit the path below to where your install is located! cd /home/username/xen-orchestra/packages/xo-server/ # Change the username below to the user owning XO forever-service install orchestra -r username -s dist/cli.mjs ``` ```bash service orchestra start service orchestra status ``` ```bash forever-service delete orchestra ``` -------------------------------- ### Execute XOA deployment script Source: https://docs.xen-orchestra.com/airgap Set permissions and run the deployment script to install the XOA appliance on the XCP-ng host. ```bash chmod +x deploy.sh ``` ```bash ./deploy.sh XOA.xva ``` -------------------------------- ### Install FreeBSD Packages for Xen Orchestra Source: https://docs.xen-orchestra.com/installation Install essential packages on FreeBSD required for Xen Orchestra, including build tools, redis, Python, Git, and Node.js. ```bash pkg install gmake redis python git npm node autoconf ``` -------------------------------- ### Debug xo-server logs Source: https://docs.xen-orchestra.com/advanced Command to start xo-server with debug logging enabled for the OpenMetrics plugin. ```bash DEBUG=xo:xo-server-openmetrics* yarn start ``` -------------------------------- ### Grafana Panel Queries Source: https://docs.xen-orchestra.com/advanced Example PromQL queries for visualizing host, VM, and storage metrics in Grafana panels. ```PromQL xcp_host_cpu_average{pool_name="$pool"} * 100 ``` ```PromQL xcp_vm_memory_bytes{vm_name="$vm"} / 1024 / 1024 / 1024 ``` ```PromQL (xcp_sr_physical_usage_bytes{sr_name="$sr"} / xcp_sr_physical_size_bytes{sr_name="$sr"}) * 100 ``` ```PromQL # Used space xcp_sr_physical_usage_bytes{pool_name="$pool"} # Free space xcp_sr_physical_size_bytes{pool_name="$pool"} - xcp_sr_physical_usage_bytes{pool_name="$pool"} ``` -------------------------------- ### LDAP Directory Entry Examples Source: https://docs.xen-orchestra.com/users Sample structure for LDAP user and group objects used to configure group synchronization. ```text objectClass: Person cn: Bruce Wayne uid: 347 ... ``` ```text objectClass: Group cn: heroes displayName: Heroes gid: 456 member: 347 member: 348 ... ``` -------------------------------- ### Google Workspace SAML App Setup Source: https://docs.xen-orchestra.com/users Steps to add a custom SAML app in Google Workspace for Xen Orchestra integration. Refer to screenshots for field population. ```text 1. Sign in to your Google Workspace Admin Dashboard. 2. Go to Apps/Web and mobile apps 3. Click Add app and select Add custom SAML app 4. Give your app a name and optionally a description. 5. To see how the fields should be filled out, refer to the screenshots below. ``` -------------------------------- ### Monitoring Tasks Source: https://docs.xen-orchestra.com/restapi Examples for fetching specific task records with wait functionality and watching collection updates via NDJSON. ```bash curl \ -b authenticationToken=KQxQdm2vMiv7jBIK0hgkmgxKzemd8wSJ7ugFGKFkTbs \ 'https://xo.example.org/rest/v0/tasks/0lr4zljbe?wait=true' ``` ```http GET /rest/v0/vms?fields=start,status&ndjson=true&watch=true HTTP/1.1 Cookie: authenticationToken=TN2YBOMYtXB_hHtf4wTzm9p5tTuqq2i15yeuhcz2xXM HTTP/1.1 200 OK Content-Type: application/x-ndjson ["remove",{"href":"/rest/v0/tasks/0lv13orww"}] ["update",{"start":1713194362080,"status":"pending","href":"/rest/v0/tasks/0lv13otzz"}] ``` -------------------------------- ### Perform REST API Request with cURL Source: https://docs.xen-orchestra.com/restapi Example of executing a GET request using cURL with an authentication token cookie. ```bash curl -b \ authenticationToken=KQxQdm2vMiv7jBIK0hgkmgxKzemd8wSJ7ugFGKFkTbs \ https://xo.company.lan/rest/v0/vms ``` -------------------------------- ### Create a VM snapshot with parameters Source: https://docs.xen-orchestra.com/restapi Create a snapshot of a virtual machine. This action accepts parameters, such as `name_label`, provided in a JSON-encoded request body. Requires `Content-Type` and `Accept` headers. ```bash curl \ -X POST \ -b authenticationToken=KQxQdm2vMiv7jBIK0hgkmgxKzemd8wSJ7ugFGKFkTbs \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "name_label": "My snapshot" }' \ 'https://xo.example.org/rest/v0/vms/770aa52a-fd42-8faf-f167-8c5c4a237cac/actions/snapshot' ``` -------------------------------- ### On-the-fly Patching Source: https://docs.xen-orchestra.com/architecture Demonstrates how 'xo-server' can automate the process of downloading, unzipping, uploading, and applying patches to Xen hosts. ```javascript // Apply patch on the fly client.call("patch.apply", { host: "host1", patch: "http://path/to/patch.zip" }); ``` -------------------------------- ### Escalate to root Source: https://docs.xen-orchestra.com/vm-templates Verify sudoer privileges within the deployed VM. ```bash [centos@tmp-app1 ~]$ sudo -s [root@tmp-app1 centos]# ``` -------------------------------- ### VM Streaming (Old Method) Source: https://docs.xen-orchestra.com/architecture Illustrates the traditional, multi-step process for streaming a VM between hosts, involving export, transfer, and import. ```bash xe vm-export vm=myVM "/path/to/export.xva" scp "/path/to/export.xva" user@host2:/path/to/import/ xe vm-import "/path/to/import.xva" ``` -------------------------------- ### LDAP Group Filter Example Source: https://docs.xen-orchestra.com/users This is an example of a broad LDAP filter that matches all relevant groups. Ensure your filter is not too restrictive. ```ldap (objectclass=posixGroup) ``` -------------------------------- ### Configure Default UI Mounts Source: https://docs.xen-orchestra.com/configuration Create a configuration file to define which UI version is served at specific URL paths. ```toml [http.mounts] '/' = '/usr/local/lib/node_modules/xo-web/dist/' '/v5' = '/usr/local/lib/node_modules/xo-web/dist/' '/v6' = '/usr/local/lib/node_modules/@xen-orchestra/web/dist/' ``` -------------------------------- ### Infrastructure Overview Prompt Source: https://docs.xen-orchestra.com/mcp Generates a natural language overview of the XO infrastructure by calling the `get_infrastructure_summary` API. ```APIDOC ## POST /prompts/infrastructure-overview ### Description Generates a natural language overview of the XO infrastructure. When invoked, the assistant calls `get_infrastructure_summary` and formats the results as a readable summary with pool names, host counts, and VM statistics. ### Method POST ### Endpoint /prompts/infrastructure-overview ### Parameters None ### Request Body None ### Response #### Success Response (200) - **summary** (string) - A natural language summary of the infrastructure. ``` -------------------------------- ### Health Check Script Example Source: https://docs.xen-orchestra.com/backups This bash script is an example for the health check feature. It waits for a specific xenstore key to be updated, indicating success or failure of the health check process. ```bash #!/bin/bash # This script is an example for the health check feature. # It waits for a specific xenstore key to be updated, indicating success or failure of the health check process. # Wait for the xenstore key 'vm-data/xo-backup-health-check' to be set to 'planned' while [ "$(xe vm-data-list vm=VM_UUID xenstore-key=vm-data/xo-backup-health-check)" != "planned" ]; do sleep 1 done # Simulate a health check process # In a real scenario, you would perform checks here # Set the xenstore key to 'success' or 'failure' based on the outcome xe vm-data-set vm=VM_UUID xenstore-key=vm-data/xo-backup-health-check value=success # Optionally, set an error message if the check fails # xe vm-data-set vm=VM_UUID xenstore-key=vm-data/xo-backup-health-check-error value="Error details" ``` -------------------------------- ### Manage process with systemd Source: https://docs.xen-orchestra.com/installation Configure and manage the server as a systemd service. ```ini [Unit] Description=XO Server After=network-online.target [Service] Environment="DEBUG=xo:main" Restart=always SyslogIdentifier=xo-server # Be sure to edit the path below to where your Node and your xo-server install is located! ExecStart=/usr/bin/node /home/username/xen-orchestra/packages/xo-server/dist/cli.mjs [Install] WantedBy=multi-user.target ``` ```bash systemctl daemon-reload systemctl enable --now xo-server ``` ```bash systemctl status xo-server ``` -------------------------------- ### Get Network Details API Source: https://docs.xen-orchestra.com/mcp Retrieves detailed information about a specific network. ```APIDOC ## GET /get_network_details ### Description Get detailed information about a specific network. ### Method GET ### Endpoint /get_network_details ### Parameters #### Query Parameters - **network_id** (string) - Required - The network ID ``` -------------------------------- ### Create Filesystem on New Disk Source: https://docs.xen-orchestra.com/backups Use this command to create an ext4 filesystem on a newly attached disk, typically used for local backups. ```bash mkfs.ext4 /dev/xvdb ``` -------------------------------- ### Get VM Details API Source: https://docs.xen-orchestra.com/mcp Retrieves detailed information about a specific virtual machine. ```APIDOC ## GET /get_vm_details ### Description Get detailed information about a specific virtual machine. ### Method GET ### Endpoint /get_vm_details ### Parameters #### Query Parameters - **vm_id** (string) - Required - The VM ID or UUID ``` -------------------------------- ### Get SR Details API Source: https://docs.xen-orchestra.com/mcp Retrieves detailed information about a specific storage repository. ```APIDOC ## GET /get_sr_details ### Description Get detailed information about a specific storage repository. ### Method GET ### Endpoint /get_sr_details ### Parameters #### Query Parameters - **sr_id** (string) - Required - The SR ID or UUID ``` -------------------------------- ### Configure On-Prem Immutability Settings Source: https://docs.xen-orchestra.com/immutability Create a TOML configuration file for on-premises immutability. Define the check interval (`liftEvery`) and for each remote, specify the backup root directory and the immutability duration. ```toml liftEvery = "1h" [remotes.remote1] root = "/mnt/ssd/vhdblock/" immutabilityDuration = "7d" ``` -------------------------------- ### Verify Node.js Version Source: https://docs.xen-orchestra.com/installation Check the installed version of Node.js to ensure it meets the LTS requirement. ```bash $ node -v v20.14.0 ``` -------------------------------- ### Get Infrastructure Summary API Source: https://docs.xen-orchestra.com/mcp Retrieves a high-level summary of the entire Xen Orchestra infrastructure. ```APIDOC ## GET /get_infrastructure_summary ### Description Get a high-level summary of the entire XO infrastructure, including pool count, host count, and VM counts by power state (running, halted, other). ### Method GET ### Endpoint /get_infrastructure_summary ### Parameters None ``` -------------------------------- ### Configure HTTPS and Certificates Source: https://docs.xen-orchestra.com/configuration Set up secure HTTPS access by providing the host, port, and paths to certificate and key files. ```toml hostname = '0.0.0.0' port = 443 certificate = './certificate.pem' key = './key.pem' ``` -------------------------------- ### Updating Collection Properties Source: https://docs.xen-orchestra.com/restapi Examples for adding or removing tags on items using PUT and DELETE methods. ```bash curl \ -X PUT \ -b authenticationToken=KQxQdm2vMiv7jBIK0hgkmgxKzemd8wSJ7ugFGKFkTbs \ 'https://xo.example.org/rest/v0/vms/770aa52a-fd42-8faf-f167-8c5c4a237cac/tags/My%20tag' ``` ```bash curl \ -X DELETE \ -b authenticationToken=KQxQdm2vMiv7jBIK0hgkmgxKzemd8wSJ7ugFGKFkTbs \ 'https://xo.example.org/rest/v0/vms/770aa52a-fd42-8faf-f167-8c5c4a237cac/tags/My%20tag' ``` -------------------------------- ### Configuring NTP Servers Source: https://docs.xen-orchestra.com/xoa Configuration for system time synchronization via NTP. ```text pool 0.debian.pool.ntp.org iburst pool 1.debian.pool.ntp.org iburst pool 2.debian.pool.ntp.org iburst pool 3.debian.pool.ntp.org iburst ``` ```bash $ xoa network ntp ? NTP servers (space separated) ``` -------------------------------- ### Configure Nginx reverse proxy Source: https://docs.xen-orchestra.com/advanced Example configuration for exposing the metrics endpoint securely via Nginx. ```nginx server { listen 443 ssl; server_name metrics.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location /metrics { proxy_pass http://your-xoa-ip/openmetrics/metrics; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` -------------------------------- ### GET /rest/v0/vms Source: https://docs.xen-orchestra.com/restapi Retrieves a list of virtual machines. Requires authentication via Cookie or Authorization header. ```APIDOC ## GET /rest/v0/vms ### Description Retrieves a list of virtual machines from the Xen Orchestra server. ### Method GET ### Endpoint /rest/v0/vms ### Parameters #### Request Headers - **Cookie** (string) - Optional - authenticationToken=[token] - **Authorization** (string) - Optional - Basic [base64_encoded_credentials] ``` -------------------------------- ### Import a VM using xo-cli Source: https://docs.xen-orchestra.com/architecture Imports an XVA file into a specific storage repository. Note that only XVA files are supported. ```bash xo-cli vm.import sr=60a6939e-8b0a-4352-9954-5bde44bcdf7d @=vm.xva ``` -------------------------------- ### Manage Redis or Valkey Service Source: https://docs.xen-orchestra.com/installation Commands to restart the database service and verify connectivity. ```bash systemctl restart redis.service ``` ```bash systemctl restart valkey.service ``` ```bash $ redis-cli ping PONG ``` -------------------------------- ### Execute the seed command Source: https://docs.xen-orchestra.com/incremental_replication Run the utility with the collected UUIDs and XAPI credentials to link the initial seed to the backup job. ```bash $ xo-cr-seed https://root:password@xen1.company.tld 4a21c1cd-e8bd-4466-910a-f7524ecc07b1 https://root:password@xen2.company.tld 5aaf86ca-ae06-4a4e-b6e1-d04f0609e64d 90d11a94-a88f-4a84-b7c1-ed207d3de2f9 369a26f0-da77-41ab-a998-fa6b02c69b9a ``` -------------------------------- ### Authenticate REST API Requests Source: https://docs.xen-orchestra.com/restapi Examples of using authentication tokens via cookies or Basic Auth headers for API requests. ```HTTP GET /rest/v0/vms HTTP/1.1 Cookie: authenticationToken=TN2YBOMYtXB_hHtf4wTzm9p5tTuqq2i15yeuhcz2xXM ``` ```HTTP GET /rest/v0/vms HTTP/1.1 Authorization: Basic YWRtaW5AYWRtaW4ubmV0OmFkbWlu ``` -------------------------------- ### Handle SSL Protocol Errors Source: https://docs.xen-orchestra.com/xoa Example of a curl error encountered on older XCP-ng/XenServer versions due to outdated SSL protocols. ```text curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version ``` -------------------------------- ### Check Hardware Virtualization Support Source: https://docs.xen-orchestra.com/troubleshooting Verify if your physical host supports hardware-assisted virtualization (HVM) by checking for 'vmx' in `/proc/cpuinfo`. XOA requires HVM support to function. ```bash grep --color vmx /proc/cpuinfo ``` -------------------------------- ### Specific LDAP Group Filter Example Source: https://docs.xen-orchestra.com/users This filter synchronizes only a specific group ('group1'). To sync all groups, remove the '(cn=group1)' condition. ```ldap (&(objectclass=posixGroup)(cn=group1)) ``` -------------------------------- ### REST API - Get Object Source: https://docs.xen-orchestra.com/architecture Retrieves a specific object from the REST API. Can wait for task completion and save output to a file. ```APIDOC ## GET /rest/{object} ### Description Show an object from the REST API. Can wait for task completion and save output to a file. ### Method GET ### Endpoint /rest/{object} ### Parameters #### Path Parameters - **object** (string) - Required - Full path of the object to show (e.g., `vms/`, `tasks//actions`). #### Query Parameters - **output** (string) - Optional - If specified, the response will be saved in `` instead of being parsed. If `` ends with `/`, it will be considered as the directory in which to save the response, and the filename will be the last part of the `` path. - **wait** (boolean) - Optional - If the object is a task, waits for it to be updated before returning. - **wait=result** (boolean) - Optional - If the object is a task, waits for it to be finished before returning. ### Request Example ```bash $ xo-cli rest get vms/ $ xo-cli rest get tasks//actions wait=result $ xo-cli rest get vms/ --output /tmp/vm_details.json ``` ### Response #### Success Response (200) - **object_details** (object) - Details of the requested object. #### Response Example ```json { "id": "vm_xyz", "name_label": "Test VM", "power_state": "Running" } ``` ``` -------------------------------- ### Register XO Instance Source: https://docs.xen-orchestra.com/architecture Authenticate the CLI with a specific Xen Orchestra server instance. ```bash $ xo-cli register http://xo.my-company.net admin@admin.net admin Successfully logged with admin@admin.net ``` -------------------------------- ### Configuring Network Interfaces Source: https://docs.xen-orchestra.com/xoa Commands to switch between static IP and DHCP configurations for network interfaces. ```bash $ xoa network static ? Static IP for this machine 192.168.100.120/24 ? Gateway 192.168.100.254 ? IP of the DNS server 192.168.100.254 ``` ```bash $ xoa network static enX1 ? Static IP for this machine 192.168.100.120 ? Network mask (eg 255.255.255.0) 255.255.255.0 $ xoa network dhcp enX1 ``` ```bash $ xoa network static --add ? Static IP for this machine 192.168.200.120/24 ``` -------------------------------- ### Querying Collections via REST API Source: https://docs.xen-orchestra.com/restapi Examples of retrieving object collections with various query parameters like fields and NDJSON formatting. ```http GET /rest/v0/vms HTTP/1.1 Cookie: authenticationToken=TN2YBOMYtXB_hHtf4wTzm9p5tTuqq2i15yeuhcz2xXM HTTP/1.1 200 OK Content-Type: application/json [ "/rest/v0/vms/770aa52a-fd42-8faf-f167-8c5c4a237cac", "/rest/v0/vms/5019156b-f40d-bc57-835b-4a259b177be1" ] ``` ```http GET /rest/v0/vms?fields=name_label,power_state HTTP/1.1 Cookie: authenticationToken=TN2YBOMYtXB_hHtf4wTzm9p5tTuqq2i15yeuhcz2xXM HTTP/1.1 200 OK Content-Type: application/json [ { "name_label": "Debian 10 Cloudinit", "power_state": "Running", "url": "/rest/v0/vms/770aa52a-fd42-8faf-f167-8c5c4a237cac" }, { "name_label": "Debian 10 Cloudinit self-service", "power_state": "Halted", "url": "/rest/v0/vms/5019156b-f40d-bc57-835b-4a259b177be1" } ] ``` ```bash $ curl \ -b authenticationToken=0OQIKwb1WjeHtch25Ls \ http://xoa.example.com/rest/v0/vms?fields=name_label,power_state [ { "name_label": "FreeNAS", "power_state": "Running", "href": "/rest/v0/vms/0fc14abc-ae7a-4209-79c4-d20ca1f0e567" }, { "name_label": "Ubuntu 20.04 test", "power_state": "Halted", "href": "/rest/v0/vms/d505eb99-164e-5516-27e1-43837a01be45" }, { "name_label": "Rocky Linux 8", "power_state": "Halted", "href": "/rest/v0/vms/38f423b7-1498-ee8c-ca8d-d3bb8fcffcf2" }, { "name_label": "XOA 🎷", "power_state": "Running", "href": "/rest/v0/vms/857e34e5-c61a-f3f1-65e6-a7a9306b347b" } ] ``` ```http GET /rest/v0/vms?fields=name_label,power_state&ndjson=true HTTP/1.1 Cookie: authenticationToken=TN2YBOMYtXB_hHtf4wTzm9p5tTuqq2i15yeuhcz2xXM HTTP/1.1 200 OK Content-Type: application/x-ndjson {"name_label":"Debian 10 Cloudinit","power_state":"Running","url":"/rest/v0/vms/770aa52a-fd42-8faf-f167-8c5c4a237cac"} {"name_label":"Debian 10 Cloudinit self-service","power_state":"Halted","url":"/rest/v0/vms/5019156b-f40d-bc57-835b-4a259b177be1"} ``` -------------------------------- ### Download XOA deployment script Source: https://docs.xen-orchestra.com/airgap Retrieve the deployment script from the official source on a machine with internet access. ```bash wget --no-verbose -O deploy.sh https://xoa.io/deploy ``` -------------------------------- ### Common LDAP Filter Patterns Source: https://docs.xen-orchestra.com/users Examples of LDAP filter strings used to match users in Open LDAP or Active Directory environments. ```text '(uid={{name}})' ``` ```text '(cn={{name}})' ``` ```text '(sAMAccountName={{name}})' ``` ```text '(sAMAccountName={{name}}@)' ``` ```text '(userPrincipalName={{name}})' ``` -------------------------------- ### Access VM via SSH Source: https://docs.xen-orchestra.com/vm-templates Connect to the newly created VM using the configured SSH key. ```bash $ ssh centos@192.168.100.226 [centos@tmp-app1 ~]$ ```