RancherOS是由RancherLabs开发的一款专为Docker设计的轻量级Linux发行版,提供了一个全面的Docker运行环境。其引导镜像仅20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在ESXi虚拟化平台上安装和配置RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。
RancherOS是由Rancher labs出品的一个专为Docker而生的精简版Linux,提供了一个完整的Docker运行环境。引导镜像仅有20MB大小,将其安装到ESXi虚拟机上导出之后,ova文件仅为300MB,比其他Linux发行版小的多。在我的工作环境中,需要将其安装至ESXi server,并向其他人分发。如果你有同样的需求,这篇文章也许可以或多或少帮助到你。英文文章,语法错误在所难免,欢迎批评指正。
To install RancherOS on your ESXi server, first of all, download rancheros ISO image from its website here
1. Create new Virtual Machine for RancherOS
On ESXi, create a new Virtual Machine with at least 1GB memory. After you created appliance, upload rancheros.iso to your ESXi datastore and set CD/DVD rom to use it.
2. Start rancheros
Once you clicked start button, the OS will boot up rapidly and prompt for login. Now rancheros is running in your RAM, you can login with credential rancher/rancher. Anything you change now will not be saved after you reboot. What we need is a docker ready OS so we need to install Rancher OS to our disk.
3. Prepare your cloud-config.yml
Before we install rancheros to our hard disk, you need to setup cloud-config first.
You also need to generate a new SSH key for cloud-config.yml
file by following this article
Add your public key to cloud-config.yml
file like following:
#cloud-config
ssh_authorized_keys:
- ssh-rsa #AB3NzaC1yc2E....Drinkey@JunkaitekiMacBook-Pro.local
This is for rancher os first boot configuration after installation, you can use your private key to connect this host.
Next, we are going to configure network before installation. Following is an example, you need to configure DNS, IP address of interface and default gateway.
rancher:
network:
dns:
nameservers:
- 172.23.0.5
- 119.6.6.6
interfaces:
eth*:
dhcp: false
eth0:
address: 10.138.103.63/24
gateway: 10.138.103.254
mtu: 1500
Make sure you only have one ethernet interface, current rancher os installer has problem when configuring multiple NICs.
Following is a complete example of cloud-config.yml
.
#cloud-config
ssh_authorized_keys:
- ssh-rsa #AB3NzaC1yc2E....Drinkey@JunkaitekiMacBook-Pro.local
hostname: rancheros-cd01
rancher:
network:
dns:
nameservers:
- 119.6.6.6
interfaces:
eth*:
dhcp: false
eth0:
address: 10.138.103.63/24
gateway: 10.138.103.254
mtu: 1500
At last, you need to put your cloud-config.yml
to rancher os. After you login, configure a accessible temporary IP address and default gateway on eth0, then scp
your cloud-config.yml
to it.
Following is an example
On RancherOS, configure IP and default gateway
$ sudo ip addr add 10.138.103.63/24 dev eth0
$ sudo route add default gw 10.138.103.254
On your local machine, copy your cloud-config.yml
to RancherOS via SCP or other method.
4. Install
You should be all set if you done everything right in previous steps. Now we can call installer to initiate installation.
$ sudo rancheros-install -c cloud-config.yml -d /dev/sda
Installer will download rancher/os to your system and format /dev/sda
. It could be some errors during installation, due to China GFW, keep retrying and you will success eventually.
At last, installer will prompt for reboot, after manual reboot you can configure own rancher os now.
5. Configuration
When rancher os came back, login interface would prompt several interface ip addresses. Now the old login credential rancher/rancher
is not valid anymore, you can only use ssh with your private key to login
$ ssh -i wgid_rsa rancher@10.138.103.63
SSH will log you in directly without prompting for password. The private key should stay in your machine if this key-pair is not only for RancherOS connection. You can genenrate another key pair only for RancherOS first connection and you should distribute private key to other users. To enable multiple login, you need to enable ubuntu-console
and configure password for user rancher
[rancher@rancheros-cd01 ~]$ sudo ros service list
disabled debian-console
disabled ubuntu-console
[rancher@rancheros-cd01 ~]$ sudo ros service enable ubuntu-console
[rancher@rancheros-cd01 ~]$ sudo ros service list
disabled debian-console
enabled ubuntu-console
[rancher@rancheros-cd01 ~]$ sudo reboot
After reboot, setup new password for user rancher
, then you should be able to login from anywhere if you have correct username and password.
Now a lightweight docker ready system is deployed on your ESXi machine.
You can login with account rancher/password
. If it didn’t work, you can share the newly generated ssh key pair to your users, it will cause no security issue, because the key pair is only for connecting exported RancherOS. After first login, user can replace his/her own public SSH key in RancherOS authorized_keys
file.
Rancher OS also privoded configuration and upgrade approaches and will be described in another document.