Host/Group replication between FOG Servers
-
@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.
-
@adukes40 Try it with a simple password. It goes between the empty quotes.
-
All I get is invalid syntax. No clue what I am doing wrong.
-
@adukes40 I sent you a message. Top right talk bubble.
-
I remoted in to help.
bind address 127.0.0.1 was set in my.cnf, I commented that and then we were able to connect to mysql from the remote node using the
fogstorage
username and password.However, when visiting the storage node’s boot.php file with a registered MAC address appended like this:
http://10.106.2.149/fog/service/ipxe/boot.php?mac=b8:ac:6f:3d:6e:a4It spits just this out:
set fog-ip set fog-webroot set boot-url http://${fog-ip}/${fog-webroot}
also, an apache2 error pops up in the node’s logs:
[Tue May 24 16:05:32.244071 2016] [:error] [pid 20780] [client 10.106.10.5:12079] PHP Fatal error: Call to a member function lastInsertId() on null in /var/www/html/fog/lib/db/pdodb.class.php on line 124
FOG version 7829
Both main and node is Ubuntu 14.04 LTS. -
I just spoke briefly with the @Senior-Developers and they said that the storage node installation actually communicates with the main server’s DB to do certain things.
What this means is because of the bind address previously, those things the installer needed to do didn’t get done.
So, now that we’ve sorted out the connectivity issues, all you should need to do is re-run the installer on the storage node (no rebuild is required at all!), and then things should be working for you.