Host/Group replication between FOG Servers
-
@Wayne-Workman I shut off any other instances of FOG last night. there are currently only 2 instances running, The main server which is across town, and the storage instance located here at my shop. the 10.103 address is the main server, and the 10.106 address is the storage location at my location. both were setup exactly the same. Only difference is the DCHP server address, gateway, and local IP of the fog servers themselves. both runnin Ubuntu 14.04, FOG 7713. I was making them side by side last night to hopefully keep them the same version and they are. I download the install using this:
sudo svn co http://svn.code.sf.net/p/freeghost/code/trunk I left the mysql password blank when setting up the Main as well. -
Here is what the permissions look like on the Main:
and here is the storage only:
-
it looks like firewall is disbaled, I was able to send a file from the remote server to the main server manually. this is what i get for the remote location still:
Error communicating with the database. Error: SQLSTATE[HY000] [1045] Access denied for user ‘fogstorage’@‘localhost’ (using password: YES)
-
@adukes40 make sure the fog storage password is correct on the storage node. If it’s not, change it in /opt/fog/.fogsettings and rerun the installer on the storage node.
You can test MySQL credentials from the node to the main by connecting to it via something like this:
MySQL -u fogstorage -h x.x.x.x -p
Not sure if that syntax is right but its close. you can Google examples.
-
Also to clarify, for the ftp test, you should have been on the main server testing ftp ccredentials to the node. Testing from the node to the main doesn’t tell you if the nodes ftp credentials are good because you weren’t testing them.
And, the MySQL test should be run from the node.
You can use SSH to be “in” whatever server you need to run the tests.
-
@adukes40 I gave you the long explanation because you seem detail oriented but I’ll put it more plainly.
In a multi-server setup with one main tied to one or many nodes, all registrations are stored in one place. On the main. Everything is managed from one place, on the main. Everything is contained in one spot, on the main. If a host is registered anywhere, it’s registered everywhere. Because the main holds everything and is the controller for everything, and the communication point for everything everywhere.
The point of nodes is to increase imaging capacity, decrease load over the WAN, and to overcome broadcast domain related issues.
-
when the storage node installed it gave me that long password, is that the password to use, or do i need to change it to the long password the Main uses? right now they are different.
-
Ok, i just conducted ftp from the main to the node. i created a test.txt on the node, then on the main i used ftp to view the file directory, then delete the file, the dir again to verify it is gone.:
techinstall@MSDCATS09:/$ ftp
ftp> open 10.106.2.149
Connected to 10.106.2.149.
220 (vsFTPd 3.0.2)
Name (10.106.2.149:techinstall): fog
331 Please specify the password.
Password: <long password from setting up node>
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /images
250 Directory successfully changed.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 0 0 4096 May 19 02:34 dev
drwxrwxrwx 2 0 0 4096 May 19 02:34 postdownloadscripts
-rw-rw-r-- 1 1000 1000 7 May 19 19:58 test.txt
226 Directory send OK.
ftp> del test.txt
250 Delete operation successful.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 0 0 4096 May 19 02:34 dev
drwxrwxrwx 2 0 0 4096 May 19 02:34 postdownloadscripts
226 Directory send OK.
ftp> exit
221 Goodbye.
techinstall@MSDCATS09:/$ -
now i get this for the storage node
Error communicating with the database. Error: SQLSTATE[HY000] [2002] Connection refused
I think i will update the Main, and do another fresh install of the node and see what happens.
-
Just rebuilt it, looking like it is connecting now as well. I will keep updating.
-
Here is what I am getting now:
-
@adukes40 the last url in the photo, visit it via browser but add this in the end of it.
?mac=b8:ac:6f:3d:6e:a4
-
@Wayne-Workman said in Host/Group replication between FOG Servers:
?mac=b8:ac:6f:3d:6e:a4
telling me line:
1179 response_rc = -EIO_5XX;
not sure what that is telling me though.
-
Actually I think this is what you were requesting:
#!ipxe
set fog-ip
set fog-webroot
set boot-url http://${fog-ip}/${fog-webroot}Here is SS
-
@adukes40 What version of FOG are you running? I’m pretty sure this is a trunk version, but the one you’re currently on is older. I have since fixed this particular (and a few more) issue I want to say since Monday.
-
@Tom-Elliott I just upgraded the Main and reinstalled the storage node yesterday afternoon
-
@adukes40 You found the right page in that second post. The page should have a lot more. For instance, it should tell if the host is registered or not, and give a lot more information…
Now, swap the IP with the main server’s IP and try the URL again. There should be a lot more displayed.
Also, I think this issue is being caused by mysql credentials somehow being bad.
I have an idea… try to manually re-set the fogstorage mysql password using this:
'fogstorage'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Then ensure remote access is enabled for the fogstorage account with this:
GRANT ALL PRIVILEGES ON fog.* TO 'fogstorage'@'%' IDENTIFIED WITH mysql_native_password BY '' WITH GRANT OPTION;
Then, set the mysql password in the node’s
/opt/fog/.fogsettings
file to just blank, like empty quotes or whatever the wrapper is. Then re-run the installer you have on the node again, and see what happens - also re-try manually connecting to the DB on the main server FROM the storage node, using a blank password.Of course, this is temporary - you may set a password later. I just want to get it working for troubleshooting purposes.
-
When i do the Main server I get this: I will try the other things in a bit. Do I simply just copy and paste those commands in putty and which server do I do this on?
#!ipxe
set fog-ip 10.103.72.49
set fog-webroot fog
set boot-url http://${fog-ip}/${fog-webroot}
cpuid --ext 29 && set arch x86_64 || set arch i386
goto get_console
:console_set
colour --rgb 0x00567a 1 ||
colour --rgb 0x00567a 2 ||
colour --rgb 0x00567a 4 ||
cpair --foreground 7 --background 2 2 ||
goto MENU
:alt_console
cpair --background 0 1 ||
cpair --background 1 2 ||
goto MENU
:get_console
console --picture http://10.103.72.49/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
:MENU
menu
colour --rgb 0xff0000 0 ||
cpair --foreground 1 1 ||
cpair --foreground 0 3 ||
cpair --foreground 4 4 ||
item --gap Host is NOT registered!
item --gap – -------------------------------------
item fog.local Boot from hard disk
item fog.memtest Run Memtest86+
item fog.reginput Perform Full Host Registration and Inventory
item fog.reg Quick Registration and Inventory
item fog.quickimage Quick Image
item fog.multijoin Join Multicast Session
item fog.sysinfo Client System Information (Compatibility)
choose --default fog.local --timeout 3000 target && goto ${target}
:fog.local
sanboot --no-describe --drive 0x80 || goto MENU
:fog.memtest
kernel memdisk iso raw
initrd memtest.bin
boot || goto MENU
:fog.reginput
kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=10.103.72.49/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg
imgfetch init_32.xz
boot || goto MENU
:fog.reg
kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=10.103.72.49/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg
imgfetch init_32.xz
boot || goto MENU
:fog.quickimage
login
params
param mac0 ${net0/mac}
param arch ${arch}
param username ${username}
param password ${password}
param qihost 1
isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
:fog.multijoin
login
params
param mac0 ${net0/mac}
param arch ${arch}
param username ${username}
param password ${password}
param sessionJoin 1
isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
:fog.sysinfo
kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=10.103.72.49/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo
imgfetch init_32.xz
boot || goto MENU
:bootme
chain -ar http://10.103.72.49/fog/service/ipxe/boot.php##params ||
goto MENU
autoboot -
@adukes40 The script from the main server looks good - that’s how it should look from the node.
Run them on the node. Yes, just copy paste.
-
@Wayne-Workman this is what i get:
Sorry, I am new with Linux, so it is all a learning curve for me.