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.networksettings 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 therancheruser. - If there are no host SSH keys, it generates host SSH keys and saves them under
rancher.ssh.keysin cloud-config. - Runs
cloud-init -execute, which does the following:- Updates
.ssh/authorized_keysin/home/rancherand/home/dockerfrom cloud-config and metadata. - Writes files specified by the
write_filescloud-config setting. - Resizes the device specified by the
rancher.resize_devicecloud-config setting. - Mount devices specified in the
mountscloud-config setting. - Set sysctl parameters specified in the
rancher.sysctlcloud-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-scriptduring cloud-init and then executed. Any errors are ignored. - Runs
/opt/rancher/bin/start.shif it exists and is executable. Any errors are ignored. - Runs
/etc/rc.localif 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).