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).
Here is my configuration:
ICG-PLUS stands for ICG and Fileserver on one machine
My SETUP:
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
4 GB RAM
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 igelupdates.company.org igelupdates.company.org 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)
or
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 {_
_default.rsyncssh,_
_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/
–> COMPLETE <–
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!