How to create an easy setup for two IGEL ICG servers with integrated fileserver (full real time synchronized)

Hello community,

any weeks ago I have started some testing and development for the following idea: create an easy setup for 2 ICG server with integrated fileserver (full real time synchronized).

Learn more, read the entire thread inside the IGEL Community o Slack

Here is my configuration:

ICG-PLUS stands for ICG and Fileserver on one machine


ICG+ SRV1 and ICG+ SRV2 as ICG HA solution with Fileserver (synchronized in real time) (was tested on VMware ESXi and Microsoft Hyper-V)

System settings per server:

Ubuntu 20.04

2 vCPUs


30 GB disk for the ICG

20 GB disk for the file server

3 virtual ethernet ports

port1 external ICG

port2 internal ICG

port3 external file server

There is a directory /igelupdates on every server

which points to the port3 eth and use own disk partition and which will be synchronized with lsyncd

After the setup the customer can provide an DNS name like which points to srv1 and srv2 (based on round robin DNS LB)

That solves two problems:

1) The file server for the updates is fail-safe and you can use round-robin DNS load balancing

2) Only 2 of 4 servers are required.

Here is the How To of installing lsyncd:

[1] create a new partition

sudo fdisk -l

sudo fdisk /dev/sdb (if available)

sudo mkfs.ext4 /dev/sdb1 (for ext4)


sudo mfs.xfs /dev/sdb1 (for xfs)

[2] Create a name for the new partition:

sudo e2label /dev/sdb1 igelupdates

[3] Configure lsyncd:

apt-get update -y

apt-get upgrade -y

apt-get install lsyncd -y

mkdir /etc/lsyncd

[4] configure SSH:

ssh-keygen -t rsa

copy the key to the remote server:

ssh-copy-id root@remote-server-ip

enter the password and try the connection:

ssh root@remote-server-ip

[5] configure lsyncd:

nano /etc/lsyncd/lsyncd.conf.lua

add that lines to the file:

_settings {_

_logfile = “/var/log/lsyncd/lsyncd.log”,_

_statusFile = “/var/log/lsyncd/lsyncd.status”,_

_statusInterval = 20,_

_nodaemon = false_


_sync {_


_source = “/igelupdates/”,_

_host = “remote-server-ip”,_

_targetdir = “/igelupdates”_


close and save the file

[6] start the service:

systemctl start lsyncd

systemctl enable lsyncd

status check:

systemctl status lsyncd

check the content of the log file:

tail -f /var/log/lsyncd/lsyncd.log

check the content of the folder:

ls /igelupdates/


Any comments are very welcome.

Please keep in mind that this should not be deployed in production, and IGEL cannot provide support on configurations that install file repositories on an ICG server.

Its right, that this is not supported by IGEL currently, but its used at 2 customers (for their own risk) in production and it works very well.

Wouldn’t this expose your file repo to the world tho?

Continue reading and comment on the thread ‘How to create an easy setup for two IGEL ICG servers with integrated fileserver (full real time synchronized)’.  Not a member? Join Here!

Learn more, search the IGEL Knowledge Base

Ask a question or comment on the above message thread?

Join or log in to the IGEL Community to ask us anything and meet other IGEL customers, partners, and EUC enthusiasts.

Submit a question, or Join Today!

Popular Message Threads

Categories & Tags: