Location vs Hostname
-
[LIST=1]
[*][CENTER][URL=‘http://sourceforge.net/users/brycez/’][SIZE=13px][COLOR=#555555]brycez[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/brycez’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/77846d7ed0f7675ee6553ce27c377080.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-09-22 07:09:57 PDT[/RIGHT]
I almost put this in the new Developer forum, but I figured that since this is just an idea/question and not actual code or work at this point, it would fit here pretty nicely. My team works with about 1200 computers, most of which receive high user traffic, and it seems that some piece of hardware is always breaking; so we go and swap out the old computer with a new one, and on the first boot the machine names itself based on the Hostname listed in FOG. I went into the FOG database and made the hostName field unique to enforce a clean DB after a massive reimage found too many machines with duplicate names. The great part about this is that now duplicate names are rejected, the frustrating part is that to swap a computer you have to go in and change the original computers hostname before you can set the new computers hostname. And then on top of that somebody has to go through and rebuild groups to make sure they contain the appropriate computers. I wonder if there is enough justification for setting up a new section of the FOG console that is just Location. Something that could perhaps use Google Maps API or HTML5 canvas for uploading maps of locations; and instead of setting a name for a host you simply set the host to a location (which would have a name). Perhaps even a swap function that would let you easily swap out a dead computer from a location with a new one. And maybe add a host status, like ‘In Production’ or ‘Out for Repair’, that might make it easier to search for a replacement computer. I’m just talking (ok, typing) out loud here. So if what I’m saying seems like a complete waste of time, and would be more likely to complicate things than simplify them, well just say so. Or if you think this makes sense or want to extend upon the idea, please go ahead.
[*][CENTER][URL=‘http://sourceforge.net/users/catsrules/’][SIZE=13px][COLOR=#555555]catsrules[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/catsrules’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/6e0e43d1037d0274e46316931afc8ad5.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-09-25 23:55:22 PDT[/RIGHT]
So you are trying to make an automatic group maker? If so I agree Manually setting up groups is a pain, especially when you have a very big environment like what you are describing. I think we should be able to set come characteristics for a group and fog will build and maintain that group based on those characteristics we set, would be the way to go. Me personally I would use host name and maybe Ip addresses for the characteristics. IP address would only work if you have an ip range for each building or location. This way it would automatically change to a new group just by connecting it to the network, in a new location. I say use Host name because it will force the setup a naming standard, and keep it maintained. Having a naming standard is a very good way to keep track of computer also will eliminate duplicate names. Bad side is you will still need to change the name whenever you move computers around, but when you do change it, would remove it from the old group that no longer applies, and add it the group the applies. My old work had a good naming system that i liked. 000-0000-XXX00 That would give you the building it is in (000),-the room in the building (0000)-and the type of computer and what is it used for(XXX) and the number of that computer.(00) For this naming system we set a 3 digit number for each building. So for example if a computer was in building 123 in room 13 and it was a lab computer that was a windows laptop number 34 it would be 123-0013-LNB34 L stands for LAB computer NB stands for notebook This way you can easily sort the computers, based on location. Hopefully this thought was some where around what you where thinking
[*][CENTER][URL=‘http://sourceforge.net/users/brycez/’][SIZE=13px][COLOR=#555555]brycez[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/brycez’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/77846d7ed0f7675ee6553ce27c377080.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-10-05 12:18:59 PDT[/RIGHT]
I actually did hack together an automatic group maker at one point, click a button in the Group Edit page and it would rebuild the group based on host names that matched the group name, but that wasn’t exactly what I had in mind, though I do think some sort of automatic grouping would be a very useful feature. What I had in mind was more of another object set, like hosts or groups or images, possibly called locations. The location has a host name, and other characteristics (IP address, image, OS type, etc), while the host is scaled back to pretty much just a MAC address and inventory, without a host name. When you go to swap a machine you don’t have to rename anything, just go to the location page and select the new MAC address for that location. That would make groups much easier to maintain, as the groups could be built by location and are more static than the physical hardware sitting in that space. My team is currently moving toward MAC address reservations through DHCP, to keep our ranges cleaner and prevent unwanted access to our subnets from people unplugging computers and plugging in their own laptop. With locations we could set the IP address on the location and then update the DHCP reservation with the new MAC address when the swap occurs (would require that the FOG server is able to pass commands to the DHCP server, easier with linux but still doable with Windows), instead of having to connect to the DHCP server and manually change out a reservation. Another consideration for this would be the Storage Nodes/Groups. I deploy the same image to all of my client subnets, but the client subnets can’t talk to each other, and the server network can’t multicast to the client subnets (Network Security team is pretty strict, which is mostly a good thing), so I have storage nodes on each subnet, but to prevent a client from trying to pull the image from storage node on another subnet I had to setup a different storage group on each subnet that contained the storage nodes for that subnet, and then I had to create a separate image definition for each storage group; so to swap out a dead computer with a spare (that might have previously been on another subnet) can be a lengthy process due to all the changes that have to be made to make everything work. I know that not everybody has as convoluted-I mean “complex and sophisticated”-of a network infrastructure as I have to deal with, and that these changes may seem rather drastic for a lot of people who are well accustomed to the current scheme, but I think this would make FOG easier to scale for users with larger deployments.
[*][CENTER][URL=‘http://sourceforge.net/users/catsrules/’][SIZE=13px][COLOR=#555555]catsrules[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/catsrules’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/6e0e43d1037d0274e46316931afc8ad5.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-10-11 12:01:02 PDT[/RIGHT]
I am confused, how would I Identify a individual computer in this setup? It sounds like I would just have a big list of MAC addresses, when i look at a location. I would still need to call each individual computer something so it is easy to identify. Would it be easier to add that swap function you where talking about to the current version of fog, instead of locations? So When you replace a computer, you just need to pxe boot the new computer and run a replace command, then you would need to type in the old comptuer’s host name or mac address, and it will delete or rename the old computer from the system and add the new computer with the exact same characteristics as the old computer (including group membership) , then give you the option to image the new computer. But If your in a domain, fog would need tell the domain controller that the computer has been removed or needs its name updated. so the new computer can register with the domain, with its new name.
[*][CENTER][URL=‘http://sourceforge.net/users/brycez/’][SIZE=13px][COLOR=#555555]brycez[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/brycez’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/77846d7ed0f7675ee6553ce27c377080.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-10-17 12:38:53 PDT[/RIGHT]
I promise I haven’t forgotten this thread. I’ve just been a bit busy at work, and I haven’t made time to sit down and refine the idea in a way that is intelligible to people who can’t read my mind. I’ll try to put together an example of what I have in mind sometime tonight.
[/LIST] -
[LIST=1]
[*][CENTER][URL=‘http://sourceforge.net/users/catsrules/’][SIZE=13px][COLOR=#555555]catsrules[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/catsrules’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/6e0e43d1037d0274e46316931afc8ad5.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-10-17 21:33:50 PDT[/RIGHT]
No problem, time is hard to come by these days
[*][CENTER][URL=‘http://sourceforge.net/users/brycez/’][SIZE=13px][COLOR=#555555]brycez[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/brycez’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/77846d7ed0f7675ee6553ce27c377080.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-10-25 15:59:47 PDT[/RIGHT]
Sorry for the lengthy delay in replying to this thread, work is… time consuming, to put it lightly. As I mentioned, we have over 1200 computers floating around over 250 locations, and when one breaks down (generally a hard drive or RAM issue) it’s faster for us (and our customers “appreciate” the timeliness) to simply swap the machine with a spare and return the broken computer to the office for diagnosis/repair/RMA/etc. This can happen several times a day. In an attempt to keep things organized, swapping a computer requires a decent amount of administrative overhead; change the name of the broken computer to its serial number, change the new computer to the appropriate name for that location, confirm the new computer is set to the right image, modify DHCP records, rebuild groups in FOG; it may only take a few minutes, but it’s tedious work that [I][I]can[/I][/I] be streamlined, and by streamlining it in this way prevent some user mistakes. So because FOG cares more about the MAC address than the hostname, I thought it might make more sense to setup Locations with the configurable settings instead of leaving it all to the Hosts. Example 1: | Location | Location Hostname | Location Image | Location IP Address | Location MAC Address | | Building 3 | b3-room4-pc5 | b3-room4_2011-09-01.img | 10.3.4.5 | 00:00:aa:aa:bb:bb | | Building 3 | b3-room4-pc6 | b3-room4_2011-09-01.img | 10.3.4.6 | 00:00:aa:aa:cc:cc | | Building 3 | b3-room4-pc7 | b3-room4_2011-09-01.img | 10.3.4.7 | 00:00:aa:aa:dd:dd | | Inventory ID | Status | MAC Address | | 01234567 | In Production | 00:00:aa:aa:bb:bb | | 01234568 | In Production | 00:00:aa:aa:cc:cc | | 01234569 | In Production | 00:00:aa:aa:dd:dd | | 04859213 | Ready For Swap | 00:77:77:ff:ff:55 | When Location Hostname b3-room4-pc6 dies you would go to the Locations section and select swap, mark it as Out For Repair, and select a computer from the Ready For Swap list. Example 2: | Location | Location Hostname | Location Image | Location IP Address | Location MAC Address | | Building 3 | b3-room4-pc5 | b3-room4_2011-09-01.img | 10.3.4.5 | 00:00:aa:aa:bb:bb | | Building 3 | b3-room4-pc6 | b3-room4_2011-09-01.img | 10.3.4.6 | 00:77:77:ff:ff:55 | | Building 3 | b3-room4-pc7 | b3-room4_2011-09-01.img | 10.3.4.7 | 00:00:aa:aa:dd:dd | | Inventory ID | Status | MAC Address | | 01234567 | In Production | 00:00:aa:aa:bb:bb | | 01234568 | Out For Repair | 00:00:aa:aa:cc:cc | | 01234569 | In Production | 00:00:aa:aa:dd:dd | | 04859213 | In Production | 00:77:77:ff:ff:55 | If I was better at Gimp/Photoshop I’d go ahead and put together a mock-up, just because I have an easier time understanding things when I can see them, but that’s not going to happen any time soon. A computer in Building 3 Room 4 is going to use the Room 4 image, but a computer in Building 3 Room 5 might use a different image. Instead of going through and changing settings on the individual hosts, setting things like name and image to a location seems (at least to me) more logical, because the image applied to Room 4 (and the naming scheme in the room) is going to change less frequently than the computers in the room. The thing about the maps was probably a bit further down the line. I’m currently attempting to roll up a Nagios/Icinga/Zenoss/something-that-works server to give us advanced warning about computers going down, and I’ve had monitoring on the brain for the past few weeks. Although I have been daydreaming about FOG having more advanced monitoring built into it; something that would show my techs a map of our locations… maybe little orange flashing light when the hard drive in b999-room9001-pc42 starts failing… an admin can dream can’t he? Anyway, I know that I don’t have time to work on anything that would change the core of FOG this much, or at least not right now, but I was just throwing the idea out there to see if it was something that made sense and could be part of a roadmap for where FOG might be in a few years time. Again, if anyone has any questions or comments, please feel free to share.
[/LIST] -
[LIST=1]
[*][CENTER][URL=‘http://sourceforge.net/users/?user_id=3194454’][SIZE=13px][COLOR=#555555]Jackb[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-11-28 01:59:17 PST[/RIGHT]
I think the best solution would be to add in an option to make regular expressions as a group generator then allow us to apply them to specific fields that we have for each host. You don’t have to worry about anyone’s naming schemes then. That’s the quickest way to give everyone any functionality they want and would then leave the door open to someone to come in later to put a front end on creating the regular expressions any way they wanted. Sysadmins then have to write in a setting their scheme. For the example above; This regex is more of an example, it probably won’t work I’d have to go look up how to write them when it came to doing it properly. [FONT=monospace] add filter to: hostname filter: ^/([.])-([.])-([.])/$ //Values represent $building = %1 $room = %2 $computer = %3 Give property: Image image name: $building-$room- //“date.img” //create group [/FONT] Follow something like that. Then you can add another layer on top of that for writing the regex for people. You could add a properties record to each host in the DB and save this info as JSON or whatever’s best, I’ve not looked at fogs code. Maybe store a properties table then as long as you have this table you could rebuild FOGs organisational structure. What about; MACaddress | Properties 00:00:aa:aa:bb:bb | { “filter”:{ “hostname”:REGEX, } “giveProperty”:{ “imageID”:“hostname”} } Thoughts?
[*][CENTER][URL=‘http://sourceforge.net/users/blackout48/’][SIZE=13px][COLOR=#555555]blackout48[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/blackout48’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/2707a107d74393360d75969a887c914d.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-11-28 14:47:39 PST[/RIGHT]
Great discussion guys. I’ve been keeping up to date
[*][CENTER][URL=‘http://sourceforge.net/users/brycez/’][SIZE=13px][COLOR=#555555]brycez[/COLOR][/SIZE][/URL][URL=‘http://sourceforge.net/users/brycez’][SIZE=13px][COLOR=#0077aa][IMG]http://www.gravatar.com/avatar/77846d7ed0f7675ee6553ce27c377080.png?s=48&r=pg&d=http%3A%2F%2Fa.fsdn.com%2Fsf%2Fimages%2Fdevelop%2Fsf-profile-blank.gif[/IMG][/COLOR][/SIZE][/URL][/CENTER]
[RIGHT]2011-12-02 07:52:51 PST[/RIGHT]
I really like the regex idea, but I think it could be bigger… let’s take a look at the task creation: Currently, the only way to create a task for multiple hosts is to either have them all in the same group, or manually create each task for each host. I know I have encountered many situations where I have a bunch of computers with a specific combination of hardware that need to be reimaged, but they don’t all exist in the same location so they don’t share a common group. A regex task creator that could parse the hardware inventory could provide a simple method of creating that task, without having to create a group first. But it could be more than just imaging tasks. Snapins don’t always get deployed in a single geographic area. Sometimes snapins are deployed based on a software patch that only applies to certain images. A regex that could parse all hosts and look for ones that use image-xx-yy-zz and snapin-00-11-22, and then create a new deploy single snapin task, could be very useful. Now these scenarios [I][I]could[/I][/I] use SQL statements instead of regex, so I’m not really sure what the benefit of one over the other would necessarily be. But I really like the idea of dynamically creating “temporary groups” for a single task. I think this would definitely increase the appeal of FOG over other systems. And the distinction between a temporary group and a permanent one could be negligible (since there is no such thing as a temporary group); simply create the group, create the task, then delete the group. As for using regex instead of Locations; I don’t think the two are mutually exclusive. My intention with the Locations was to change the way people approach FOG, and image deployment in general. While the current method might make sense in a small IT shop that just reimages before sending a host back to the client; in a place where imaging is just a part of the overall infrastructure management, like a corporation of educational institution, an individual host is generally indistinguishable from the rest of that PO batch. But a location doesn’t change very frequently. Perhaps Locations would be better suited as a plugin to FOG (although I don’t think the plugin aspect of FOG is really built for that much modification), that way those who have an interest in it could move forward without interrupting everyone else. And if at some point later on it makes sense, then someone could start the discussion of migrating Locations into the base. It sounds like the new hook system in .33 would make it easier to implement something like this, without having to rewrite large portions of functions and classes. Seriously though, I’m just rambling here. So please go ahead and rip those arguments apart, otherwise I might never learn.
[/LIST] -
Would AD/LDAP integration be of help with this problem? If you are an organization that uses AD, and already have your machines grouped by OU it might be useful to be able to populate fog groups from OUs.
Something for the post .33 world?
-
[FONT=Tahoma][COLOR=#141414]My apologies to anyone trying to read this thread without having seen it first on the [URL=‘http://sourceforge.net/projects/freeghost/forums/forum/716418/topic/4719993’][COLOR=#555555]sourceforge forum[/COLOR][/URL], I was not aware how much the formatting was messed up.[/COLOR][/FONT]
[FONT=Tahoma][COLOR=#141414] [/COLOR][/FONT]
[FONT=Tahoma][COLOR=#141414]My first thought was something like “Great! Deeper AD integration will remove the hassle of setting everything up the first time, and might even be able to maintain things in an orderly fashion!” but I have a hard time believing anything like that would be easy to implement or work as smoothly as I would like.[/COLOR][/FONT]
[FONT=Tahoma][COLOR=#141414] [/COLOR][/FONT]
[FONT=Tahoma][COLOR=#141414]Some initial questions for this approach:[/COLOR][/FONT]
[LIST]
[]Would FOG do a scheduled pull from AD or would a manual import be simpler to maintain?
[]Would these groups be locked down in some way, or would users be able to add or remove hosts from a group built by AD?
[*]How would this play out in a host swap scenario since the new host wouldn’t be in the correct OU until it’s finished imaging?
[/LIST]