metalcloud-cli firmware-catalog create¶
Create a new firmware catalog from vendor sources
Synopsis¶
Create a new firmware catalog from vendor sources.
This command creates a firmware catalog by downloading and processing firmware information from vendor repositories. The catalog can be configured for online or offline updates.
Configuration Methods:
Command-line flags - Specify all options using individual flags
Configuration file - Use –config-source to load settings from JSON/YAML file
Required Flags (when not using –config-source): –name Name of the firmware catalog –vendor Vendor type: ‘dell’, ‘hp’, or ‘lenovo’ –update-type Update method: ‘online’ or ‘offline’
Source Configuration (mutually exclusive): –vendor-url URL of the online vendor catalog –vendor-local-catalog-path Path to a local catalog file
Optional Flags: –description Description of the firmware catalog –vendor-token Authentication token for vendor API access –server-types Comma-separated list of Metalsoft server types to filter –vendor-systems Comma-separated list of vendor system models to filter –vendor-local-binaries-path Local directory for downloaded firmware binaries –download-binaries Download firmware binaries locally –upload-binaries Upload binaries to offline repository
Offline Repository Configuration (required when –upload-binaries is used): –repo-base-url Base URL of the offline repository –repo-ssh-host SSH hostname:port for repository upload –repo-ssh-user SSH username for repository access –repo-ssh-path Target directory path on SSH server
SSH Configuration (mutually exclusive): –user-private-key-path Path to SSH private key (default: ~/.ssh/id_rsa) –known-hosts-path Path to SSH known hosts file (default: ~/.ssh/known_hosts) –ignore-host-key-check Skip SSH host key verification
metalcloud-cli firmware-catalog create [flags]
Examples¶
Dell example (online):
metalcloud-cli firmware-catalog create \
--name "Dell R640 Catalog" \
--description "Dell PowerEdge R640 firmware catalog" \
--vendor dell \
--vendor-url https://downloads.dell.com/FOLDER06417267M/1/ESXi_Catalog.xml.gz \
--vendor-systems "R640" \
--server-types "M.24.64.2,M.32.64.2" \
--update-type online
Dell example (offline with upload):
metalcloud-cli firmware-catalog create \
--name "Dell Offline Catalog" \
--vendor dell \
--vendor-url https://downloads.dell.com/catalog.xml.gz \
--download-binaries \
--vendor-local-binaries-path ./downloads \
--upload-binaries \
--repo-base-url http://repo.mycloud.com/dell \
--repo-ssh-host repo.mycloud.com:22 \
--repo-ssh-user admin \
--repo-ssh-path /var/www/html/dell \
--update-type offline
HP example:
metalcloud-cli firmware-catalog create \
--name "HP Gen11 Catalog" \
--vendor hp \
--vendor-url https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json \
--server-types "M.8.8.2.v5" \
--update-type online
Lenovo example using config file:
metalcloud-cli firmware-catalog create --config-source ./lenovo-config.json
Configuration file examples:
lenovo-config.json:
{
"name": "Lenovo Catalog",
"description": "Lenovo server firmware catalog",
"vendor": "lenovo",
"update_type": "offline",
"vendor_local_catalog_path": "./lenovo_catalogs",
"vendor_local_binaries_path": "./lenovo_downloads",
"server_types_filter": ["M.8.8.2.v5"],
"vendor_systems_filter": ["7Y51"],
"download_binaries": true
}
hp-config.yaml:
name: HP Gen11 Catalog
description: HP ProLiant Gen11 firmware
vendor: hp
update_type: online
vendor_url: https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json
vendor_local_catalog_path: ./fwrepo.json
vendor_local_binaries_path: ./hp_downloads
server_types_filter:
- M.8.8.2.v5
Options¶
--config-source string Source of the new firmware catalog configuration. Can be 'pipe' or path to a JSON file.
--description string Description of the firmware catalog
--download-binaries Download binaries from the vendor catalog
-h, --help help for create
--ignore-host-key-check Ignore host key check for SSH connections
--known-hosts-path string Path to the known hosts file for SSH connections (default "~/.ssh/known_hosts")
--name string Name of the firmware catalog
--repo-base-url string Base URL of the offline repository
--repo-ssh-host string SSH host with port of the offline repository
--repo-ssh-path string The path to the target folder in the SSH repository
--repo-ssh-user string SSH user for the offline repository
--server-types strings List of supported Metalsoft server types (comma-separated)
--update-type string Update type (e.g., 'online', 'offline')
--upload-binaries Upload binaries to the offline repository
--user-private-key-path string Path to the user's private SSH key (default "~/.ssh/id_rsa")
--vendor string Vendor type (e.g., 'dell', 'hp')
--vendor-local-binaries-path string Path to the local binaries directory
--vendor-local-catalog-path string Path to the local catalog file
--vendor-systems strings List of supported vendor systems (comma-separated)
--vendor-token string Token for accessing the online vendor catalog
--vendor-url string URL of the online vendor catalog
Options inherited from parent commands¶
-k, --api_key string MetalCloud API key
-c, --config string Config file path
-d, --debug Set to enable debug logging
-e, --endpoint string MetalCloud API endpoint
-f, --format string Output format. Supported values are 'text','csv','md','json','yaml'. (default "text")
-i, --insecure_skip_verify Set to allow insecure transport
-l, --log_file string Log file path
-v, --verbosity string Log level verbosity (default "INFO")
SEE ALSO¶
metalcloud-cli firmware-catalog - Manage firmware catalogs for server hardware updates