Skip to content

Instantly share code, notes, and snippets.

What would you like to do?


Install Proxmox, RancherOS, in a VM with Rancher 2.0 and Portainer

Setup Proxmox

  1. Install Proxmox 5.3
  2. Console/SSH into Proxmox
  3. nano /etc/apt/sources.list
  4. edit the file to look like this
deb stretch main contrib

# PVE pve-no-subscription repository provided by,
# NOT recommended for production use
deb stretch pve-no-subscription

# security updates
deb stretch/updates main contrib
  1. apt update && apt dist-upgrade -y
  2. reboot system

Install RancherOS

  1. Download RancherOS ISO
  2. Upload the iso to (local)pve
  3. Setup a VM with RancherOS ISO as CD. Give it at least 3gb ram to start. Rancher Server failed with low ram
  4. Boot
  5. From Console change password
  • sudo bash
  • passwd rancher
  1. SSH to rancher@
  2. prepare your ssh keys with putty gen
  • vi cloud-config.yml
  1. past the cloud config edited with your settings, make sure the pasted data is pated correctly, add your key in a single line
  2. press exit exit :wq to save

rancher: rancheros
        mtu: 1500
        dhcp: false

  - ssh-rsa <YOUR KEY>  
  • sudo ros config validate -i cloud-config.yml
  • sudo ros install -c cloud-config.yml -d /dev/sda
  1. Remove CD Image from VM, and then reboot.
  2. SSH back into RancherOS (rancher@) using your new ssh private key

Intsall Rancher

  • sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

log in to ranhcer thorugh the web browser Add Cluster. Choose Custom. Enter a Cluster Name. Click Next. From Node Role, select all the roles: etcd, Control, and Worker. Copy the command displayed on screen to your clipboard. Log in to your Rancher host with PuTTy. Run the command copied to your clipboard. When you finish running the command on your Linux host, click Done. Wait for your cluster to finish provisioning Reboot to make sure everything is working right

Creating your first container

  1. In your cluster drop down tab select default then deploy
  2. give it a name and add the ports and env needed

Install Portainer with NFS share

sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart always --name portainer -v /mnt/appsNFS/portainer:/data portainer/portainer

select local

when adding volumes select bind and use the path /mnt/appsNFS/whateveryouwanthere

NFS Shares on FreeNAS

create a unix dataset called appsNFS with root and wheel as the user, set a quota for 50gb create a nfs share to the dtatset you created, select all dirs, mapall user:group to root:wheel enable nfs sharing and select nfsv4, allow non-root, nfsv3 owner ship reboot freenas

Add NFS mnt to rancherOS

sudo ros config set mounts '[["", "/home/rancher/appsNFS", "nfs4",""]]'

Add macvlan so containers are given an IP and mac from your LAN

click add network select macvlan enter in your lan network select enable manual connection when creating a container select the network you just added and give it an availble static IP


sudo vi /var/lib/rancher/conf/cloud-config.yml


This comment has been minimized.

Copy link

commented Jun 15, 2019

Very Nice!
I have done it in another setup.
Proxmox -> KVM VM -> RancherOS
But RancherOS is started via iPXE boot.
So I have a VM with an NFS Server and a TFTP Server and the DHCP distribute the next server and bootloader file. in the iPXE config I directly integrate the cloud-config.yml file. So I can create a new KVM VM add this VM to an fixed DHCP lease and start. After 5minute or so the VM is ready. :-)

Kind regards


This comment has been minimized.

Copy link

commented Jul 31, 2019

Can I install nginx on my "PVE", and if so would that allow me to create a 4 node Rancher HA Cluster with 4 separate vm's? Would I also be able to issue an LE Cert via Rancher/Ingress for the "PVE Web UI? This article ( made me think it might be possible but I am pretty new to proxmox and rancher. I currently have Proxmox 5.4 - 11 installed. My main goal is to use Rancher to replace Plesk for managing my web apps/projects. I also have a friend with a server with same specs, I bought the one I have in hopes to combine our resources as we develop a lot together. Thanks in advance for any help/suggestions.


This comment has been minimized.

Copy link

commented Aug 1, 2019

You can do it. But I do not recommend it to you.
You have different possiblities.

  1. Do it on the root system without any virtualization
  2. Install an HA Proxy in a VM (or PFsense like I'm) and route via IPtables all traffic from the server to this VM.
    EXCEPT: your SSH port :-)

I have in one VM a PFsense installed an all traffic will be redirected to this VM. This VM is the gateway between my VMs and LXCs and the Internet. :-)

  • One place for ACME certs
  • One place for new websites
  • One Place for firewall rules
  • ...

This comment has been minimized.

Copy link

commented Aug 1, 2019

So basically using PFsense as a load balancer? Any articles on this you can share? I am googling myself but if you know of any good ones dealing with proxmox also I would appreciate it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.