metalcloud-cli firmware-catalog create
Create a new firmware catalog from vendor sources
Synopsis
Section titled “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
Section titled “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 Catalogdescription: HP ProLiant Gen11 firmwarevendor: hpupdate_type: onlinevendor_url: https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.jsonvendor_local_catalog_path: ./fwrepo.jsonvendor_local_binaries_path: ./hp_downloadsserver_types_filter: - M.8.8.2.v5Options
Section titled “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 catalogOptions inherited from parent commands
Section titled “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
Section titled “SEE ALSO”- metalcloud-cli firmware-catalog - Manage firmware catalogs for server hardware updates