Reference

This page lists the ros commands and the keys which can be used in cloud-config files and with ros config set. ros <command> -h prints the help of every command.

ros Commands

Commands / OptionsDescriptionExample
  --version / -vprint the versionros -v
  --help / -hshow helpros -h
osoperating system upgrade/downgradesee below
configconfigure settingssee below
consolemanage which console container is usedsee below
installinstall BurmillaOS to disksee below
enginemanage which Docker engine is usedsee below
servicemanage system servicessee below
tlssetup tls configurationsee below

ros os Sub-Commands

Commands / OptionsDescriptionExample
versionshow the currently installed versionros os version
listlist the current available versionsros os list
  --update / -uupdate engine cacheros os list --update
upgradeupgrade to the latest versionros os upgrade
  --image / -iupgrade to a certain imageros os upgrade --image value
  --stage / -sonly stage the new upgrade, don’t apply itros os upgrade --stage
  --force / -fdo not prompt for inputros os upgrade --force
  --kexec / -kreboot using kexecros os upgrade --kexec
  --no-rebootdo not reboot after updateros os upgrade --no-reboot
  --appendappend additional kernel parametersros os upgrade --append value
  --upgrade-consoleupgrade console even if persistentros os upgrade --upgrade-console
  --debugrun installer with debug outputros os upgrade --debug

ros config Sub-Commands

Commands / OptionsDescriptionExample
getget valueros config get value
setset a valueros config set value
imageslist Docker images for a configuration from a fileros config images
  --input / -ifile from which to read configros config images --input value
generategenerate a configuration file from a templateros config generate
mergemerge configuration from stdinros config merge
  --input / -ifile from which to readros config merge --input value
exportexport configurationros config export
  --output / -ofile to which to saveros config export --output value
  --private / -pinclude the generated private keysros config export --private
  --full / -fexport full configuration, including internal and default settingsros config export --full
validatevalidate configuration form stdinros config validate
  --input / -ifile from which to readros config validate --input value
syslinuxedit Syslinux boot global.cfgros config syslinux

ros console Sub-Commands

Commands / OptionsDescriptionExample
listlist available consolesros console list
  --update / -uupdate engine cacheros console list --update
enableset console to be switched on next bootros console enable default
switchswitch console without a rebootros console switch default
  --force / -fdo not prompt for inputros console switch --force default
  --no-pulldon’t pull console imageros console switch --no-pull default
sshd statusprint whether sshd is enabled or disabledros console sshd status
sshd disablestop sshd until enabled again or rebootros console sshd disable
  --if-idleonly when no SSH connection is establishedros console sshd disable --if-idle
sshd enablestart sshd againros console sshd enable

Available Consoles

ConsoleBurmillaOSBase imageDescription
defaultv3.0.xdebian:trixie-slimDebian 13 “Trixie”
defaultv2.0.xdebian:bullseye-slimDebian 11 “Bullseye”

default is the only officially supported console. Other consoles (Ubuntu, Alpine, Fedora, …) are available as unofficial custom console images.

ros install Sub-Command

Command / OptionsDescriptionExample
installInstall BurmillaOS to diskros install
  --cloud-config / -ccloud-config yml file - needed for SSH authorized keysros install --cloud-config value
  --device / -dstorage deviceros install --device value
  --image / -iinstall from a certain imageros install --image value
  --save / -ssave services and images for next bootingros install --save
  --install-type / -tgeneric (default; BIOS or UEFI layout is selected automatically on v3), amazon-ebs-hvm, googlecompute, noformat, raidros install --install-type value
  --force / -f[DANGEROUS! Data loss can happen] partition/format without promptingros install --force
  --partition / -ppartition to install toros install --partition value
  --append / -aappend additional kernel parametersros install --append value
  --debugrun installer with debug outputros install --debug
  --statedir valueinstall to rancher.state.directoryros install --statedir value
  --kexec / -kreboot using kexecros install --kexec
  --no-rebootdo not reboot after installros install --no-reboot
  --rollback / -rrollback versionros install --rollback

ros engine Sub-Commands

Commands / OptionsDescriptionExample
listlist available Docker engines (include the DinD engines)ros engine list
  --update / -uupdate engine cacheros engine list --update
switchswitch user Docker engine without rebootros engine switch current
  --force / -fdo not prompt for inputros engine switch --force current
  --no-pulldon’t pull engine imageros engine switch --no-pull current
enableset user Docker engine to be switched on next bootros engine enable current
createcreate DinD engine without a rebootros engine create my_name
  --version / -vset version for the engineros engine create --version value my_name
  --networkset the network for the engineros engine create --network value my_name
  --fixed-ipset the fixed ip for the engineros engine create --fixed-ip value my_name
  --ssh-portset the ssh port for the engineros engine create --ssh-port value my_name
  --authorized-keysset the authorized_keys absolute path for the engineros engine create --authorized-keys my_name
rmremove DinD engine without a rebootros engine rm my_name
  --force / -fdo not prompt for inputros engine rm --force my_name
  --timeout / -tspecify a shutdown timeout in seconds (default: 10)ros engine rm --timout 10 my_name

ros service Sub-Commands

Commands / OptionsDescriptionExample
listlist services and stateros service list
  --update / -uupdate service cacheros service list --update
  --all / -alist all services and stateros service list --all
upcreate and start containersros service up
  --foregroundrun in foreground and logros service up --foreground
  --no-builddon’t build an image, even if it’s missingros service up --no-build
  --no-recreateif containers already exists, don’t recreate them.
Incompatible with --force-recreate
ros service up --no-recreate
  --force-recreaterecreate containers even if their configuration and imager haven’t changed.
Incompatible with no-recreate
ros service up --force-recreate
downstop and remove containers, networks, images, and volumesros service down
  --volumes / -vremove data volumeros service down --volumes
  --rmiremove images, type may be one of:
‘all’ to remove all images, or
’local’ to remove only images that don’t have an custom name set by the image field
ros service down --rmi value
  --remove-orphansremove containers for services not defined in the Compose fileros service down --remove orphans
enableturn on a serviceros service enable
disableturn off a serviceros service disable
rmdelete servicesros service rm
  --force / -fallow deletion of all servicesros service rm --force
  -vremove volumes associated with containersros service rm -v
deletedelete a serviceros service delete
logsview output from containersros service logs
  --linesnumber of lines to tail (default: 100)ros service logs --lines
  --follow / -ffollow log outputros service logs --follow
buildbuild or rebuild servicesros service build
  --no-cachedo not use cache when building the imageros service build --no cache
  --force-rmalways remove intermediate containersros service build --force-rm
  --pullalwys attempt to pull a newer version of the imageros service build --pull
createcreate servicesros service create
  --no-recreateif containers already exist, don’t recreate them.
Incompatible with --force-recreate
ros service create --no-recreate
  --force-recreaterecreate containers even if their configuration and images haven’t changed.
Incompatible with --no-recreate
ros service create --force-recreate
  --no-builddon’t build an image, even if it is missingros service create --no-build
startstart servicesros service start
  --foregroundrun in foreground and logros service start --foreground
restartrestart servicesros service restart
  --timeout / -tspecify a shutdown timeout in seconds (default: 10)ros service restart --timeout 10
stopstop servicesros service stop
  --timeout / -tspecify a shutdown timeout in seconds (default: 10)ros service stop --timeout 10
killkill containersros service kill
  --signal / -sSIGAL to send to the container (default: “SiGKILL”)ros service kill --signal value
pullpulls service imagesros service pull
  --ignore-pull-failurespull what it can and ignores images with pull failuresros service pull ----ignore-pull-failures
pslist containersros service ps
  -qonly display IDsros service ps -q

ros tls Sub-Command

Command / OptionsDescriptionExample
generate / gengenerates new set of TLS configurations certsros tls gen
  --hostname / -Hthe hostname for which you want to generate the certificate (default: localhost)ros tls gen --hostname localhost
  --server / -sgenerate the server keys instead of client keysros tls gen --server
  --dir / -dthe directory to save/read certs from/toros tls gen --dir value

Cloud-Config and ros config Keys

The same keys are used in the cloud-config file given at installation or first boot and with ros config set <key> <value> / ros config merge later on, see Configuration. The defaults come from the os-config.tpl.yml template of the BurmillaOS version you run. sudo ros config export --full prints the complete effective configuration of your installation including all defaults, which is the quickest way to see the current value and the exact spelling of a key.

Top-Level Keys

KeyTypeDescription
hostnamestringHostname of the system
ssh_authorized_keyslist of stringsPublic keys added to the rancher user, see SSH keys
write_fileslist of filesFiles to write on boot (path, content, permissions, owner, encoding), see Writing files
runcmdlist of commandsCommands run in the console on boot, before Docker starts, see Running commands
bootcmdlist of commandsCommands run early in the boot process, before the console starts
mountslist of [device, path, fstype, options]Additional mounts
ranchermapBurmillaOS specific settings, see below

Other cloud-init directives such as users are not supported, see Users.

rancher Keys

KeyTypeDescription
rancher.consolestringConsole to use, see Switching consoles
rancher.dockermapUser Docker settings, see below
rancher.system_dockermapSystem Docker settings, same keys as rancher.docker
rancher.bootstrap_dockermapSettings of the Docker used during the bootstrap phase of the boot, same keys as rancher.docker
rancher.environmentmapEnvironment variables passed to system services, e.g. HTTP_PROXY, see Environment and Proxy settings
rancher.servicesmapCustom system services and overrides for built-in services, in Docker Compose v1 format
rancher.services_includemap of booleansOptional system services from the service repository to enable, e.g. open-vm-tools: true
rancher.bootstrapmapServices run during the bootstrap phase (before the state partition is mounted)
rancher.cloud_init_servicesmapServices run while cloud-init fetches the configuration
rancher.cloud_init.datasourceslist of stringsWhere to fetch user data and metadata from, e.g. configdrive:/media/config-2, ec2, gce, digitalocean, vmware, azure, proxmox, url:<URL>, file:<path>, see Cloud init
rancher.networkmapInterfaces, DNS, proxy and other networking settings
rancher.ssh.keysmapHost keys of the sshd in the console (generated on first boot, exported with ros config export --private)
rancher.ssh.daemonbooleanRun sshd in the console (default true)
rancher.ssh.portintegerPort sshd listens on
rancher.ssh.listen_addressstringAddress sshd listens on
rancher.statemapState partition settings: dev, fstype, directory, wait, required, autoformat, mdadm_scan, lvm_scan, cryptsetup, rngd, script, oem_dev, oem_fstype, boot_dev, boot_fstype
rancher.upgrade.urlstringURL of the releases.yml used by ros os list / ros os upgrade, see Upgrading
rancher.upgrade.imagestringImage used for upgrades (default burmilla/os)
rancher.repositoriesmapService repositories (core is the BurmillaOS os-services repository), see Air gap configuration
rancher.registry_authsmapCredentials for private registries used by System Docker
rancher.moduleslist of stringsExtra kernel modules to load on boot, see Loading kernel modules
rancher.sysctlmapKernel parameters, see Sysctl settings
rancher.resize_devicestringDevice whose first partition is grown to the full disk on boot, see Resizing a device partition
rancher.disablelist of stringsConsole features to disable: password (password login) and autologin (automatic login on the local ttys), see Disabling access
rancher.restart_serviceslist of stringsSystem services to restart after cloud-init has applied the configuration
rancher.hypervisor_servicebooleanAutomatically enable the open-vm-tools or hyperv-vm-tools service when the matching hypervisor is detected (default true)
rancher.shutdown_timeoutintegerSeconds to wait for containers to stop on shutdown
rancher.http_load_retriesintegerRetries when fetching the cloud-config or service definitions over HTTP
rancher.preload_waitbooleanWait for image preloading to finish before starting Docker
rancher.force_console_rebuildbooleanRecreate the (persistent) console container on boot
rancher.debugbooleanEnable debug logging of ros
rancher.logbooleanStream the output of system services to the console log while they start, see Logging
rancher.recoverybooleanBoot the recovery console
rancher.defaultsmapDefaults for hostname, docker, network and system_docker_logs, meant for OEM configuration

Keys such as rancher.rm_usr and rancher.no_sharedroot exist for compatibility with RancherOS and should not be changed.

rancher.docker Keys

These keys configure the user Docker engine. The same keys exist under rancher.system_docker and rancher.bootstrap_docker. See Docker configuration for examples.

KeyTypeDescription
rancher.docker.enginestringDocker engine to run, e.g. docker-29.2.1 or latest, see Switching Docker versions
rancher.docker.extra_argslist of stringsAdditional dockerd command line arguments, e.g. ["--default-ulimit", "nofile=65536:65536"]
rancher.docker.environmentlist of stringsEnvironment variables for the Docker daemon, e.g. ["HTTP_PROXY=http://proxy:3128"]
rancher.docker.tlsbooleanEnable TLS on the Docker API, see Setting up Docker TLS
rancher.docker.tls_argslist of stringsdockerd arguments used when tls is enabled
rancher.docker.server_cert, server_key, ca_cert, ca_keystringTLS certificates and keys (set by ros tls generate)
rancher.docker.hostlist of stringsSockets / addresses the daemon listens on (-H)
rancher.docker.groupstringGroup owning the Docker socket (default docker)
rancher.docker.storage_driverstringStorage driver, e.g. overlay2
rancher.docker.data_rootstringData directory of the daemon (default /var/lib/docker)
rancher.docker.exec_rootstringExec root directory of the daemon
rancher.docker.pid_filestringPID file of the daemon
rancher.docker.config_filestringdaemon.json to load
rancher.docker.log_driverstringDefault container log driver
rancher.docker.log_optsmapDefault container log options, e.g. max-size: 25m
rancher.docker.insecure_registrylist of stringsRegistries to allow over plain HTTP
rancher.docker.registry_mirrorstringRegistry mirror URL
rancher.docker.bridge, bipstringBridge name and IP range of the default bridge network
rancher.docker.live_restorebooleanKeep containers running while the daemon restarts
rancher.docker.userland_proxybooleanUse the userland proxy for port forwarding
rancher.docker.debugbooleanDaemon debug logging

Boolean and list values are given to ros config set in YAML syntax, e.g. sudo ros config set rancher.docker.extra_args "['--default-ulimit','nofile=65536:65536']". A reboot (or sudo system-docker restart docker for rancher.docker keys) is needed before changed values are applied.