To launch RancherOS, we have built-in system services. They are defined in the Docker Compose format, and can be found in the default system config file, /usr/share/ros/os-config.yml
. You can add your own system services or override services in the cloud-config.
preload-user-images
Read more about image preloading.
network
During this service, networking is set up, e.g. hostname, interfaces, and DNS.
It is configured by hostname
and rancher.network
settings in cloud-config.
ntp
Runs ntpd
in a System Docker container.
console
This service provides the RancherOS user interface by running sshd
and getty
. It completes the RancherOS configuration on start up:
- If the
rancher.password=<password>
kernel parameter exists, it sets<password>
as the password for therancher
user. - If there are no host SSH keys, it generates host SSH keys and saves them under
rancher.ssh.keys
in cloud-config. - Runs
cloud-init -execute
, which does the following:- Updates
.ssh/authorized_keys
in/home/rancher
and/home/docker
from cloud-config and metadata. - Writes files specified by the
write_files
cloud-config setting. - Resizes the device specified by the
rancher.resize_device
cloud-config setting. - Mount devices specified in the
mounts
cloud-config setting. - Set sysctl parameters specified in the
rancher.sysctl
cloud-config setting.
- Updates
- If user-data contained a file that started with
#!
, then a file would be saved at/var/lib/rancher/conf/cloud-config-script
during cloud-init and then executed. Any errors are ignored. - Runs
/opt/rancher/bin/start.sh
if it exists and is executable. Any errors are ignored. - Runs
/etc/rc.local
if it exists and is executable. Any errors are ignored.
docker
This system service runs the user docker daemon. Normally it runs inside the console system container by running docker-init
script which, in turn, looks for docker binaries in /opt/bin
, /usr/local/bin
and /usr/bin
, adds the first found directory with docker binaries to PATH and runs dockerlaunch docker daemon
appending the passed arguments.
Docker daemon args are read from rancher.docker.args
cloud-config property (followed by rancher.docker.extra_args
).