Slashdot Mirror


How Do You Create Config Files Automatically?

An anonymous reader writes "When deploying new server/servergroup/cluster to your IT infrastructure, deployment (simplified) consist of following steps: OS installation: to do it over network, boot server must be configured for this new server/servergroup/cluster; configuration/package management: configuration server has to be aware of the newcomer(s); monitoring and alerting: monitoring software must be reconfigured; and performance metrics: a tool for collecting data must be reconfigured. There are many excellent software solutions for those particular jobs, say configuration management (Puppet, Chef, cfengine, bcfg2), monitoring hosts and services (Nagios, Zabbix, OpenNMS, Zenoss, etc) and performance metrics (Ganglia, etc.). But each of these tools has to be configured independently or at least configuration has to be generated. What tools do you use to achieve this? For example, when you have to deploy a new server, how do you create configs for, let's say, PXE boot server, Puppet, Nagios and Ganglia, at once?"

113 comments

  1. Emacs or vi... by Anonymous Coward · · Score: 1, Insightful

    And I type the stuff I need.

    (And I start a war on /. )

  2. A Database w/ Config File Generators by Anonymous Coward · · Score: 5, Interesting

    At my institution, we run a MySQL database which we use to store information (such as their IP address, SNMP community) about network devices, linux servers, etc. We then have config file generators that query the database and generate the appropriate configs for Nagios and our other tools, and will restart them if needed. The idea is once you seed the initial information in the database, the config generators will pick them up and do their work so we won't have to remember to add the new hosts everywhere.

    1. Re:A Database w/ Config File Generators by BostjanSkufca · · Score: 1

      Do you use server-push or client-pull method?

    2. Re:A Database w/ Config File Generators by Anonymous Coward · · Score: 1, Interesting

      We do something similar with maintenance scripts (written in Perl) which generate configuration files (amongst other functions) based on the contents of a central management database (we're using PostgreSQL).

      By default, we do client-pull. A cron-job fires periodically and re-runs all of the maintenance scripts configured for that time interval. (Some scripts run every 15 minutes, some only run overnight.)

      In the event that a change needs to be pushed out rapidly, then we make the change the same way as before, then use a mass-trigger utility to trigger the scripts immediately by firing up parallel SSH connections to the subset of machines concerned.

      You may also be interested in Bootstrapping an Infrastructure.

    3. Re:A Database w/ Config File Generators by TooMuchToDo · · Score: 1

      Have you thought about using Rocks or Redhat's Spacewalk to manage the server configs/kickstarts/etc and then kick that info over to Nagios?

    4. Re:A Database w/ Config File Generators by Anonymous Coward · · Score: 0

      That is an excellent idea! I wonder why original poster didn't think about automating the whole process!

    5. Re:A Database w/ Config File Generators by muckracer · · Score: 1

      > Have you thought about using Rocks or Redhat's Spacewalk to manage the server
      > configs/kickstarts/etc and then kick that info over to Nagios?

      Can you do the 'kicking' part scripted via API? Got any tips where to look for additional info on that?

      Currently debating whether to use Nagios or Zabbix for monitoring...any idea if Servers in Spacewalk/RHNSS can be automatically added to Zabbix too?

    6. Re:A Database w/ Config File Generators by TooMuchToDo · · Score: 1

      Can you do the 'kicking' part scripted via API? Got any tips where to look for additional info on that?

      When you mean the "kicking" part, can you be more specific? Rebooting the system to get it to the netinstall stage? Generation of the kickstart file?

      Currently debating whether to use Nagios or Zabbix for monitoring...any idea if Servers in Spacewalk/RHNSS can be automatically added to Zabbix too?

      We went with Zabbix because of it's SQL backend. Yes, you could programmatically add servers from Spacewalk into Zabbix during the provisioning phase.

    7. Re:A Database w/ Config File Generators by muckracer · · Score: 1

      > When you mean the "kicking" part, can you be more specific?

      I meant adding it during provisioning to the monitoring solution. You answered that with the second part of your reply. Are you guys doing that....provisioning servers via Satellite/Spacewalk and adding it to Zabbix at the same time? If so, how do you go about it in rough terms?

  3. How about Debian and aptitude? by G3ckoG33k · · Score: 1

    How about Debian, which automatically includes dpkg, aptitude and synaptic?

    From my experience it would take care of most aything.

    And with a good admin, even more.

    .

  4. Re:Here, let me google that for you by Anonymous Coward · · Score: 0

    That wasn't very helpful.

  5. Dear Slashdot.. by Anonymous Coward · · Score: 1

    How do I automate away a sysadmin position?

    Love,

    Industry

    --

    Heh, the Captcha word is "unions"

    1. Re:Dear Slashdot.. by BostjanSkufca · · Score: 1

      I am a sysadmin and all I would like is to spare some time by eliminating unnecessary typing/programming/scripting and rather spend it on evaluating, testing, heck, even thinking.

    2. Re:Dear Slashdot.. by maharb · · Score: 1

      That's how the smart sys admins do it. Then their brains melt away because they have too much time to make first posts on various web forums and only the dumb ones are left.

  6. Generate config files by atomic-penguin · · Score: 4, Interesting

    That is what configuration management is supposed to do, as far as I know puppet and cfengine do this already. I believe puppet compiles configuration changes and sends its hosts their configuration automatically, every 30 minutes.

    Don't know what Unix or Linux vendor you're using puppet with. Whenever you do your network install, assuming you have some unattended install process, there should be some way to run post installation scripts. Create a post install script that will join your newly installed hosts to your puppet server. Run this post install script with kickstart, preseed, etc. at the end of the install process. Once newly installed hosts are joined to your central puppet server, then puppet can manage the rest of the configurations.

    --
    /^([Ss]ame [Bb]at (time, |channel.)){2}$/
    1. Re:Generate config files by mindstrm · · Score: 1

      Puppet actually pulls - the clients pull from the master (where the config tree lives) by default every 30 minutes - but this also can be configured to whatever granularity you want.
      This makes it trivial to have multiple masters and things like that - as far as I can tell, the master doesn't keep track of any state or anything like that, it only provides relevant configuration information to authorized clients.

  7. a bit of a special case by ILongForDarkness · · Score: 1

    but at my work we use PXE boot and cfengine on one of our centos clusters. The nodes PXE boot off of the disk array of the cluster, after the install the next stage of the PXE/kickstart script installs and runs cfengine which gives the node all its NFS mounts, etc. I don't see why you couldn't do a similar thing for nagios configuration and ganglia. In fact for clusters I think that Rocks which uses centos, PXE, and Sun Grid Engine just like our cluster has the option of having ganglia for monitoring too so you probably can steal their setup and see how they automated it.

  8. OpenNMS by Anonymous Coward · · Score: 0

    OpenNMS runs a scan every 10 hours on my network. You tell it what your network ranges are and it finds hosts and brings them into the configuration by itself without having to generate config files. If you partition your network correctly and only use certain IP ranges for production hosts you can bring a system into monitoring quickly. Depending on the size of the netblocks you could also set OpenNMS to scan more frequently. Lets say you assign a window of 8 hours for a host to be in production. Just have openNMS scan every 8 hours and you won't be bugged by the NOC paging you about the new server you keep rebooting.

    1. Re:OpenNMS by BostjanSkufca · · Score: 1

      "Brings them in configuration..."

      For monitoring? Or for other things also, like configuration management?

    2. Re:OpenNMS by Sadsfae · · Score: 1

      With a properly setup configuration management system you can have it all.

      One button, dummy-mode provisioning - os install, configuration files, daemons, monitoring and metrics, authentication and external NAS/SAN storage in one swoop.

      I would recommend checking out cobbler/puppet/koan or a tuned cfengine/pxe+kickstart setup.

      --
      Have a squat over at the hobo house.
  9. Re:Here, let me google that for you by sopssa · · Score: 2, Insightful

    Eh, has Linux server administration really come into this? Hire knowledgeable admins that can script stuff. Linux is perfect for scripting such configuring and set up. You just need to do those scripts once and you're ready to deploy them on all systems after minimum installation.

    If you're a large company, just develop your own solutions, its far better than using someones elses. Just look at google or any other succesfull company.

  10. XCAT and post scripts by clutch110 · · Score: 2, Informative

    We have XCAT and post scripts setup to do the majority of our work. Images the machine (PXE generation, DHCP config), installs files based on group, sets the ganglia config. I don't have any monitoring setup on compute nodes as I have ganglia open daily to watch for cluster node failures. Zenoss is done afterwards as I have yet to find a good way to automate that.

  11. xorg by FudRucker · · Score: 1

    #!/bin/sh X -configure \ cp /root/xorg.conf.new /etc/X11/xorg.conf

    --
    Politics is Treachery, Religion is Brainwashing
    1. Re:xorg by FudRucker · · Score: 1

      #!/bin/sh X -configure \
      cp /root/xorg.conf.new /etc/X11/xorg.conf

      fixed it

      --
      Politics is Treachery, Religion is Brainwashing
  12. Templates by Bogtha · · Score: 2, Interesting

    I've had good results with some home-grown scripts that grab the project-specific details from a database and then generate the relevant config files using a templating system like Genshi. Run it periodically against the database, check in changes and email diffs to the admin.

    --
    Bogtha Bogtha Bogtha
    1. Re:Templates by johnlcallaway · · Score: 4, Interesting
      We did something even simplier on our Sun servers. We used a master server with directories that held the different app and web servers we had. Everything that needed a configuration file that had server specific items, like Apache, had a server-specific script to generate environment variables. A configuration script was created using the template:

      . servEnv.sh
      cat <<EOD >realConfigFile
      ## put config file here replacing any server specific items
      ## with $envVariable from the servEnv.sh script
      EOD

      We could redeploy a server in 10 minutes from an empty hard drive. Creating a new one took about 10 more minutes to create the servEnv.sh file.

      This also gave us the ability to take scripts from dev to qc to production without having to change anything. Part of the servEnv.sh script set things like home directories and such. We could even have multiple environments on one machine.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    2. Re:Templates by vrmlguy · · Score: 1

      I've had good results with some home-grown scripts that grab the project-specific details from a database and then generate the relevant config files using a templating system like Genshi. Run it periodically against the database, check in changes and email diffs to the admin.

      I've always used cpp as my template engine, but then again, I've been doing this since the '80's.

      --
      Nothing for 6-digit uids?
  13. standard VM image? by Anonymous Coward · · Score: 0

    have a standard virtual machine image, copy it and voila

    1. Re:standard VM image? by BostjanSkufca · · Score: 1

      And if the servers are of more heterogenic nature and/or distributed across multiple datacenters?

    2. Re:standard VM image? by Decker-Mage · · Score: 4, Informative

      Actually this is one of the goals VMWare is proposing to meet with their vSphere. vCenter, ad nauseum initiatives. [full disclosure I've beta'ed VMWare software since v1]. This also presupposes full P2V, V2P cross machine conversions if required. The goal here is be anywhere, and run anywhere.

      Now if I had the money, I'd toss full de-dup into the storage array mix as well, so much of the image file size essentially disappears unless there is simply no duplication anywhere. And if you are in that situation, take my advice. Quit, or just shoot yourself and get it over with.

      It's been a long time since I played at that level (six mainframes, eighteen mini's, 575 desktops, and I never got an accurate count of the 100+ laptops) but at some point you have to ask yourself, when does the customization end? Standardization was the only thing that kept myself and my team of four !relatively! sane.

      If you seriously need customization of that level, then you aren't doing things right. Reduce each VM to a single app (Apache, MySQL, IIS, network appliance, whatever) and use virtual switches to create a topology as required. Think of each VM as a particular Lego block, or IC: Systems Componentization as it were. And this is where de-dupe will also shine.

      Which explains why a certain storage company bought VMWare, and a certain switching company has created a virtual switch. Now if you don't have the big bucks, you have a slight problem. However you can create this kind of topology if each box has more than one physical network adapter AND you get creative. Now that job I also wouldn't mind trying here. Time to resuscitate some old boxes and see what I can come up with. Been a while since I setup an enterprise class simulation :-).

      It's high time that we all realize that the lines between the various (computer) engineering disciplines are now blurred. Sure, be a subject matter expert but know How the other people think and work.

      Anyone know of a F/OSS de-dupe?!

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    3. Re:standard VM image? by Anonymous Coward · · Score: 0

      Anyone know of a F/OSS de-dupe?!

      Yes. It's called ZFS. And the OS that has the most up to date version of it is called Solaris.

    4. Re:standard VM image? by Decker-Mage · · Score: 1

      Well, Duh!!! I haven't thought of Solaris in years although I recall it's a BSD derivative of some sort. That'll work since I still have the Daemon book and experience running it on mi Amiga back in the 80's.

      Thanks!

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    5. Re:standard VM image? by paulius_g · · Score: 1

      ZFS has de-dupe and it's free and open source. There are some companies making (some even open source and free) storage appliances using ZFS with all it's amazing capabilities. Then, you can connect to it via iSCSI for virtualization or FTP, SMB, etc for the rest.

    6. Re:standard VM image? by Anonymous Coward · · Score: 0

      ZFS does *not* have de-dupe yet.

    7. Re:standard VM image? by Rob+Riggs · · Score: 1
      SunOS was BSD. Solaris is full-on SysV. And as others have already noted, de-dupe is on the wish list, not implemented. People don't read through Sun's marketing literature very well in these parts. Just yell "ZFS! ZFS! OMG!! ZFS!" and you'll get along fine here.

      Don't get me wrong, ZFS is a nice, modern file system. But the hype around it is just bizarro. I don't think most folks really get what it can do today and what Sun *says* it will do at some undefined point in the future. It is certainly better than anything previously available as part of the core Solaris OS. People shelled out megabucks to Veritas to deal with the lack LVM and a decent file system in older versions of Solaris.

      --
      the growth in cynicism and rebellion has not been without cause
    8. Re:standard VM image? by Decker-Mage · · Score: 1

      {Snort} Got it. SysV would be just fine as I have a ton of sysadmin and other documentation for it as well and I've met kin in the past and dealt with it with no training or documentation for that matter at the time. ZFS does seem to sound a bit like what some 'softie zealots shout about the fabled sql-based FS we'll get Real Soon Now.

      I'll evaluate my options when I have some more hardware to play with back online. Even bare metal hypervisors don't give a true picture of reality, although I wish they did. Sometimes the HV can mask real-world issues, or create contention (I/O for instance) of their own.

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    9. Re:standard VM image? by Anonymous Coward · · Score: 0

      It has partial de-dupe with cloning. If you clone one zfs to another, you will only expend storage on deltas from that point. If you have 10 clones and only change a couple configs on each, you're going to be saving a ton of space versus direct copy. However, if you clone it 10 times then later drop a 5 gig file into each, it will store a copy on each, so you'll be using 50gig rather than 5gig as I would think real de-dupe should do...

  14. FAI - Fully Automatic Installation by Clark+Rawlins · · Score: 1

    I have successfully used FAI to install Debian servers in the past. For what I needed it worked great. It is supposed to support other distributions and automatic updates as well but I haven't tried it for either of those uses.

  15. LDAP by FranTaylor · · Score: 2, Interesting

    Keep all your config information in LDAP.

    Configure your servers to get their information from LDAP wherever possible. Then the config files are all fixed, they basically just point to your LDAP server.

    If you have servers apps that cannot get their configuration from LDAP, write a Perl script that generates the config file by looking up the information in LDAP.

    If you are tricky you can replace the config file with a socket. Use a perl script to generate the contents of the config file on the fly as the the app asks for it, and make sure the the app does not call seek() on the config file.

    1. Re:LDAP by BostjanSkufca · · Score: 1

      I find LDAP more useful for storing data about "end-user" of our systems, like usernames, email accouts, quota data and such, and not that much useful for storing the actual server configurations. But there could be something to it...

    2. Re:LDAP by ckaminski · · Score: 1

      Have you done this or are you just talking out of your ass? j/k :) Make sure your app doesn't "seek()"? How'd this work with apache??

    3. Re:LDAP by mindstrm · · Score: 1

      I'd like to know that too.... while plausible - this sounds like something that's more overhead than it's worth... it's adding several layers of abstraction and complexity for what gain?

    4. Re:LDAP by LordKazan · · Score: 1

      add to that - live CDs or PXE booting liveCD images.

      one of my previous employers had a server architecture that looked like this [after their upgrade/redesign of their cluster].

      2 redirector nodes - primary and backup
      4 app nodes - load sharing
      2 mysql nodes - primary and backup
      2 storage nodes. - primary and backup

      only machines in this cluster with harddrives - the storage nodes. (the mysql nodes had massive ram - they could buffer most of the tables in RAM for quick access while they were writing the updates to disk on the storaeg nodes).

      A machines role was determined by what liveCD was put into it. need another app node? slap in a liveCD and 30 seconds after boot it's sharing the load. box get owned? reboot it and it's back to clean state while you roll a liveCD with the security updates.

      a simple extension to this would have everything PXE booting with the default image being the app node image - adding extra capacity to the other machines would take just adding their MAC address to a list for the other image types. (not even sure there is an PXE software that supports doing that .. but you can always alter it)

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
  16. Pick and Choose the best by Anonymous Coward · · Score: 0

    Just go with whatever works best for your environment.

    OpenNMS for example uses discovery tools to automatically find new hosts, which works well unless you have a couple of hosts that have specific 1-off monitoring requirements. That makes it a heck of a lot easier to use compared to Nagios, which is a pain to install and manage.

    1. Re:Pick and Choose the best by BostjanSkufca · · Score: 1

      Do you know I one can add a new host for monitoring to openNMS via some sort of API?

    2. Re:Pick and Choose the best by BostjanSkufca · · Score: 1

      I = if

    3. Re:Pick and Choose the best by Ranger+Rick · · Score: 1

      The unstable version (what will be come stable 1.8) does have a RESTful API for adding nodes. Additionally, 1.6.x and higher have an API for specifying your nodes manually, which can be called from external tools. This feature has been enhanced in what will be 1.8 to still scan interfaces on the nodes you specified, and such.

      --

      WWJD? JWRTFM!!!

  17. M4 baby, M4 by cerberusss · · Score: 4, Interesting

    Everyone seems to have forgotten about M4, an extremely handy standard Unix tool when you need a text file with some parts changed on a regular basis. I'm a developer and I used M4 in my projects.

    In a build process for example you often have text files which are the input for some specialized tool. These could be text files in XML for your object-relational mapping tool. These probably won't support some kind of variable input and this is where M4 comes in handy.

    Create a file with the extension ".m4" containing macro's like these (mind the quotes, M4 is kind of picky on that):

        define(`PREFIX', `jackv')

    Then let M4 replace all instances of PREFIX:

        $ m4 mymacros.m4 orm-tool.xml

    By default, m4 prints to the screen (standard output). Use the shell to redirect to a new file:

        $ m4 mymacros.m4 orm-tool.xml > personalized-orm-tool.xml

    Sometimes, it's nice to define a macro based on an environment variable. That's possible too. The following command would suit your needs:

        [jackv@testbox1]$ m4 -DPREFIX="$USERNAME" mymacros.m4 orm-tool.xml
    The shell will expand the variable $USERNAME and the -D option tells M4 that the macro PREFIX is defined as jackv.

    --
    8 of 13 people found this answer helpful. Did you?
    1. Re:M4 baby, M4 by Anonymous Coward · · Score: 1, Interesting

      These could be text files in XML for your object-relational mapping tool.

      That, mate, represent much of what is broken in the current state of this industry.

      The fact that so many developers waste most of their time dealing with the object/relational impedance mismatch is one the biggest mistery of our IT time.

      I *think* it's because said developers need the guarantees made by top notch SQL DBs.

      But why live and do plumbing between OO and RDB ? Either use an OO DB, or don't use an OO languages.

      I picked one of these two solutions, and I'm laughing all my way to the bank. Also laughing very hard when I read sentences like:

      These could be text files in XML for your object-relational mapping tool.

      XML and OO/RDB impedance mismatch in one supposedly serious sentence. yeah, right.

      Happy plumbing.

    2. Re:M4 baby, M4 by Bazer · · Score: 1

      You'd get a cookie if I had my mod points. I would be twice as productive if I knew all the tool sets that come with a standard Unix installation. Problem is, most of those tools are older then me and getting to know them takes a lot of time.

    3. Re:M4 baby, M4 by cerberusss · · Score: 1

      Problem is, most of those tools are older then me and getting to know them takes a lot of time.

      Very true. I try to get to know them at the bare minimum level and then be done with it. Also, when digging up treasures like M4 it's not to say that your colleagues appreciate it. In the case of M4, some saw it as violating graves instead :-)

      --
      8 of 13 people found this answer helpful. Did you?
    4. Re:M4 baby, M4 by illumin8 · · Score: 1

      Everyone seems to have forgotten about M4, an extremely handy standard Unix tool when you need a text file with some parts changed on a regular basis. I'm a developer and I used M4 in my projects.

      Excuse me, but I'd rather gouge my eyeballs out of their sockets with a rusty spoon than try to read someone else's M4 macros. M4 fails at being readable, unlike other config generating tools like Cfengine, which has code that tells even a non-programmer exactly what it does. Have you ever tried to read sendmail.mc? If you have you'll know what I'm talking about.

      --
      "When the president does it, that means it's not illegal." - Richard M. Nixon
    5. Re:M4 baby, M4 by arth1 · · Score: 1

      And this is easier than creating a batch script HOW, exactly?

      I had a discussion with a sysadmin-wannabe who wanted to use abstractions on absolutely everything. His idea was to use substitutions like you subscribe, thinking it was easier that way. I told him I could do the same with a single sed line. He then said "A-ha, but what if you need a second replacements -- all *I* have to do is add two lines to my m4 source file and regenerate it!!!" (yes, he would speak with multiple exclamation points). Whereupon I pointed out that all I had to do was add /one/ more line to the sed... And that in all likelihood, when a new and incompatible version of the config file comes out with the next version of the software, the .m4 will have to be rewritten, while the simple sed script likely will keep on working.

      There /is no/ substitute for understanding. Any attempts of introducing automation without understanding will invariably introduce more points of failure, and make it harder to upgrade, migrate, or troubleshoot. And if you understand, why then you don't /need/ abstractions. They get in the way of quicker and less fragile methods.

      Old school sysadmin: Spends 7 hours on understanding something, then 5 minutes on writing a script, and 25 minutes rewriting it to be self-documenting and take into account any possible contingencies or race conditions. Management thinks he's slacking, because he is only doing productive work for an hour a day.

      New school sysadmin: Spends 5 minutes not understanding something, 5 minutes on Google, then two full days on obtaining and installing OTS software to do magic for him, then applies for a training course to use that software. Management thinks he's the bee's knees, cause not only does he do productive work much more of the time, but he also proactively seeks out training! And the software ends up running with horrible default configurations, because he never got that training BEFORE he had to use the software the first time.

    6. Re:M4 baby, M4 by cerberusss · · Score: 1

      And this is easier than creating a batch script HOW, exactly? [...] could do the same with a single sed line.

      Both ways are fine, actually. But using M4 just got me a +4 interesting :D In all seriousness, it's easier to whip up a quick script with sed or Perl. But aside from the old-fashioned syntax, M4 can do the same hob. Point is that someone else has to work with it as well. And sed and Perl are a lot better known than M4.

      --
      8 of 13 people found this answer helpful. Did you?
    7. Re:M4 baby, M4 by elnyka · · Score: 1

      These could be text files in XML for your object-relational mapping tool.

      That, mate, represent much of what is broken in the current state of this industry.

      The fact that so many developers waste most of their time dealing with the object/relational impedance mismatch is one the biggest mistery of our IT time.

      I *think* it's because said developers need the guarantees made by top notch SQL DBs.

      But why live and do plumbing between OO and RDB ? Either use an OO DB, or don't use an OO languages.

      That doesn't make any sense. When it comes to modeling systems, it isn't a black-n-white thing. Some things are better represented as objects, others as procedures and others (specially data) as relations.

      The greatest problem with people trying to tackle the object/relational impedance mismatch is that they don't fully understand object modeling or relational database theory at best... or as is very common, they don't understand either at all!!!

      Some applications and the data they operate with lend themselves to be modeled as objects (or !gasp! procedures) operating on data rows; ergo no OO/relational mapping is needed. Batch systems and high-volume financial/manufacturing transactions come to mind.

      In others, you are better off using a OR mapper; a composition/inheritance hierarchy of entities best model the system under construction, with a database being a way to persist them while providing a mean to analysis on the data itself. Monitoring systems are an example of this. Financial/manufacturing subsystems that interact with batch and high volume transaction systems, but that themselves are not part of, are also examples of this.

      Other systems don't even need a relational database system, and are better off using a key/store or document-oriented database instead.

      Now, to the meat of your question:

      But why live and do plumbing between OO and RDB ? Either use an OO DB, or don't use an OO languages

      Uhhhh, why live and do the plumbing? Well, you are at a company with large numbers of relational database systems, containing gazillionbytes of data, some 4, 7, 10 years old (depending on their business/legal obligations to retain that data.) Then, either by careful design, or pure wanton randomness, maybe you have also have a bunch of store procedures running high-volume transactions on some sort of db batch system. In essence, that data is the business' heartbeat and pulse.

      Then you are set to use a OO language as a standard for in-house development... and assuming you know how to code well (as opposed to be a junior code monkey), you reap the benefits of using a OO language to tackle ever-changing business problems. You use it to rewrite and improve existing systems. You use it to add new functionality, and if you are lucky, you use it to build new subsystems that are vital to the business functioning.

      It's also very likely, that the enterprise system is heterogeneous, with high running maintenance costs. Thus, adding yet another component, say, a OO database is not the way to go. Are you gonna migrate all that mass of data to it? Are you going to regression test it? Any roll-back plans in case of fubar? How will it integrate with all the other database systems? Will it be fed by one application or many? Will it be fed by relational databases in place (and viceversa)? If so, how? What's the ROI on this?

      Not use a OO language because you have a relational database? Excuse for pointing out the multitude of development shops that have actually pull this out, OR mapping or not. So let's everybody throw all the existing development investment using a OO language and let's go back procedural. Oh, but we still need to maintain the existing OO systems. No problem, rewrite them procedurally. Who's gonna pay for that? The men in suits, that's who! ROI? We don't need no ROI!

      That people fail at OR mapping is not an indictment of OR mapping or working to solve imp

    8. Re:M4 baby, M4 by Anonymous Coward · · Score: 0

      I use M4 and rdist driven by make, The whole deal is available at http://ftp.npcguild.org/pub/2008/.

      Each file on the target hosts is represented by a directory under /usr/msrc/path/to/target/, in that
      directory I use marked-up (m4) files to build the correct instance for each target machine, a make
      recipe file to drive that creation process, and another make recipe file to drive the installation and
      upkeep on the target host. For details see http://msrc.npcguild.org/local/sbin/msrc/msrc.html.

      This tactic also depends on a list of your hosts with some annoatations (m4 macro defines) to
      specify some details about which hosts need which special details. I've used this for years and
      never found a file I couldn't master with make+m4+make.

      I have quite a few tools up on the above ftp server that create RPMs for distribution, as most of
      those are not customer per-host. But they use the same "msrc" tactic to build because it is
      so powerful. -- kevin.braunsdorf@gmail.com

  18. too variable to automate by bzipitidoo · · Score: 1

    In the small shops where I have worked, I find the uses and specific hardware a little too variable to easily automate configurations. One machine is a database server, another is part of a file server cluster, another is a web server, and yet another is a firewall and spam filter. One will have a single large hard drive, another will use software RAID, the others will have hardware RAID. Some have multiple network connections. A large organization that sets up many identical servers every day might find automatic configuration useful. But in that case, why not just use imaging? Much faster than installing an OS over and over.

    If that isn't enough, things change so quickly. New versions of OSes come out a few times a year. Specific hardware might be available only in a 6 month window. Expect any automatic configuration to take lots of maintenance or quickly rot.

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    1. Re:too variable to automate by mysidia · · Score: 1

      Software RAID is the devil, don't use that, except for testing, it's definitely not suitable for live use, and is not all that reliable (esp in RAID5 configurations). Oh yeah, and "fakeraid"/"hostraid" RAID "controllers" count as software RAID, not hardware RAID, those are even worse.

      Use virtual machines (Xen or KVM) for application load scale-outs, instead of lots of physical servers. I suggest setting up a base 'virtual machine' image preconfigured with everything except hostnames and IP addresses, and virtual NICS configured to load in a quarantine/test network.

      When you are setting up a new server, you clone the gold master, and then adjust its configuration as needed.

      E.g. for a large file server, you add a second virtual drive.

      For a large DB server, you manually add the second drive, and reconfigure the DB so its tablespaces live on drive 2.

      Making the small tweaks to the master to suit the needs of the app is simple; system boot drives should have a standard layout and be separate from the application data files, anyways.

    2. Re:too variable to automate by mindstrm · · Score: 1

      "We don't need configuration management because our configuration is an unmanaged mess and managing it would just be more overhead we don't have time for"... ?

      Puppet, for one, is very generic. Even if you only use it to push out basic packages and standard configs, even if you don't use any of the templating and fancy hooks and stuff - you are saving yourself work down the road, whether it's moving to virtualizing, switching from linux to bsd, or requiring test/qa/production systems, or maybe even a backup solution. It's got very little to do with rolling out systems every day, and everything to do with consistency and policy enforcement.

      Yes, it will require maintenance as your requirements change - but without it, so does the ragtag set of systems you are running.... and unless you are really picky with your documentation and procedures, most of the important details are probably in your head. If you force yourself to define them in puppet (or something similar) then you can focus your efforts better.

       

    3. Re:too variable to automate by Sadsfae · · Score: 1

      Software RAID is the devil, don't use that, except for testing, it's definitely not suitable for live use

      Linux mdadm and FreeBSD's gmirror are both very stable, mature implementations of software RAID - both a viable solution in a production environment.

      Especially so if you have servers without dedicated asics HW controllers.

      --
      Have a squat over at the hobo house.
    4. Re:too variable to automate by mysidia · · Score: 1

      You can forego having a real UPS on your live servers too, but that doesn't mean it's a good idea.

      mdadm/gmirror may be stable but both still suffer from the basic problems of software-based RAID. There are serious failure modes with software RAID implementations, the disk IO performance and system performance is poor. These characteristics make it unsuitable for live servers, no matter how mature the code gets.

      And there are also hard drive failure modes that a hardware RAID controller will detect, but software RAID tools such as mdadm will not detect, for instance, abnormal write latencies, and failures that are normally detected by RAID controller periodic scrubbing (or 'surface scan') and metadata detections.

      RAID5 write hole due to system crash (or power loss) between data and parity updates. Resulting in loss of redundancy and eventual data corruption.

      Your mdadm or gmirror lives on top of a general purpose HDD driver, instead of a controller that presents just one volume. So, there is no means of mounting the array until the OS RAID drivers are loaded, hence, a method of loading boot code before the RAID driver has initialized is required: if your boot drive fails in a manner that allows access to bootsector but blocks access to the kernel image on Drive0, the system will not boot.

      Drive hot swap is complicated by the additional requirements of running mdadm commands, this massively increases the possibility of human error which is unacceptable for a production environment.

      Array health monitoring does not display red lights on failed drives, as it does on an integrated RAID controller. In an Enterprise environment: hot swap must be extremely simple, so a datacenter tech can be assigned to do it, there must be visible indications of drive failure, and replacement must not require OS commands.

      Integrated RAID devices typically integrate with system monitoring software and can send proper alerts to admins via SNMP and e-mail, in a manner that integrates with common production grade monitoring solutions. On a system running mdadm, there is no method of doing so, short of cobbling together an ad-hoc script, that would be error prone.

    5. Re:too variable to automate by Nevyn · · Score: 1

      You can forego having a real UPS on your live servers too, but that doesn't mean it's a good idea.

      You can have all your production servers be z10 mainframes too, doesn't mean it's a good (or cheap) idea.

      RAID5 write hole due to system crash (or power loss) between data and parity updates. Resulting in loss of redundancy and eventual data corruption.

      It's easy to have pairs of RAID1 drives in a RAID0, no RAID5 no RAID5 write hole.

      if your boot drive fails in a manner that allows access to bootsector but blocks access to the kernel image on Drive0, the system will not boo

      Why would /boot not contain the kernel you need to boot? This is an automatic default setup if you choose SW RAID in Eg. RHEL.

      Array health monitoring does not display red lights on failed drives, as it does on an integrated RAID controller.

      Bullshit. In fact it's not too hard to setup soft. RAID setups where when you issue commands to drop a drive the red led above the drive starts flashing, until the tech. replaces it. It's also possible to have hot swap.

      Integrated RAID devices typically integrate with system monitoring software and can send proper alerts to admins via SNMP and e-mail, in a manner that integrates with common production grade monitoring solutions. On a system running mdadm, there is no method of doing so, short of cobbling together an ad-hoc script, that would be error prone.

      Riiight, madm etc. doesn't integrate with SNMP.

      Of course the "HW" RAID is much more expensive, operates like a black box sometimes leaving you totally screwed if the HW dies (esp. any of the cheaper solutions, which I don't think you were advocating but is what people tend to use instead of SW RAID when seeing rants like yours).

      I'm not saying it should always be used, sometimes the cost really is worth it, just as it is with PostgreSQL vs. Oracle ... but to dismiss it out of hand like you do is insane, IMNSHO.

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
    6. Re:too variable to automate by mysidia · · Score: 1

      Linux's implementation of Software RAID is complicated, just look at the man page for mdadm, it's well over 50 pages.

      All redundancy mechanisms come with a serious drawback: their own existence, the more complex they are, the more likely they are to have bugs.

      Every administrative 'knob' is a place where an admin can make a devastating error. Honestly, I think the most popular RAID controllers get a lot more testing than the Linux kernel does. Maybe 20% of the server market is Linux. The rest are using Windows, and testing (in real life) the very same HW RAID controllers; so when your RAID software is in hardware, you have the benefit of a much larger community having tested the software.

      I've had enough bad experiences with Linux software RAID, that weren't even the result of human error, to dismiss it outright.

      Doing pairs of RAID1 is fine, but you're screwed if two drives in the same pair fail. Compare to RAID5 where you can scale up capacity by having 5 or 6 drives, plus a global hot spare.

      RAID'ing /boot doesn't help you, when /boot on the first drive is broken. It's not like the BIOS will magically re-try that read on the other drive. Until the kernel has loaded, there's no RAID config.

      Bullshit. In fact it's not too hard to setup soft. RAID setups where when you issue commands to drop a drive the red led above the drive starts flashing, until the tech. replaces it. It's also possible to have hot swap.

      Let me know when that feature comes with a stock Linux install and has been fully tested, so as to ensure it doesn't do something bad like light up the wrong LED.

      Of course the "HW" RAID is much more expensive, operates like a black box sometimes leaving you totally screwed if the HW dies

      That's what backups are for. SW RAID does that too.

      Half the time software RAID won't even detect the drive failure, because it's still doing everything right, the latency is just out-of-whack.

  19. Create a single boot image by Colin+Smith · · Score: 1

    Boot to ramdisk... Depending on how big your image is and how much ram you've got.

    The problem with puppet, debian/apt etc is the inevitable gradual divergence of systems as time passes; scripts fail, packages don't get installed etc. It's exactly the same problem that life faces, you'll notice that all large multicellular organisms go through a stage where there is initially only a single cell. That's because mutations creep in otherwise and the cells diverge from one another over time. Eventually you're left with a random slime which is widely divergent in code.

    Apply all your updates to a single image, boot the image on all the machines you want to run it on, they are now all running identical code. Guaranteed. Arrange your clusters such that any one machine can be offline. Plus, if you have an image you're booting, you can roll back to older versions trivially.
     

    --
    Deleted
    1. Re:Create a single boot image by BostjanSkufca · · Score: 2, Informative

      Can't boot to same image, servers are collocated at different providers. For configuration management I find puppet working quite reliably and it does notify me about failed scripts/installations. And I prefer restarting only services, not whole servers, unless really necessary. When I get to deploy a new server, the workflow I would like to achieve goes like this: 1. I input all the relevant data (MAC/IP/mounts/purpose/misc) into some sort of application, via browser (or API for larger installs) 2. This application then creates necessary config files for: - PXE boot server (which does initial install of the bare OS with functional puppet), - puppetmaster (which completes the installation and creates a fully functional server by compiling packages) or whatever configuration management SW, - Nagios (or whatever monitoring software) - Ganglia (or whatever performance metrics software) 3. I just power up the machine and all the work gets done automatically, The sysadmin's job should not primarily consist of repeating items from step #2 mentioned above, and those unnecessary steps are what I am trying to avoid. I still have to create templates for all the above stuff, but that is the fun part anyway.

    2. Re:Create a single boot image by SanityInAnarchy · · Score: 1

      Boot to ramdisk... Depending on how big your image is and how much ram you've got.

      In what way is that better than booting to ramfs? Then, if you have a local disk, map it as swap. Done.

      --
      Don't thank God, thank a doctor!
    3. Re:Create a single boot image by Colin+Smith · · Score: 1

      Can't boot to same image, servers are collocated at different providers.

      We have servers all over the world, at multiple different providers, you just need a pxe, tftp server at each site.

      And I prefer restarting only services, not whole servers, unless really necessary.

      Servers provide services. Without a service, the server is useless. You only need to reboot the server when the binaries are updated. i.e. you are performing an upgrade. Anyway. with an OS image, the workflow is:

      Add mac address to dhcp server.
      Confg bios to pxe boot.
      Power it on.

      Image boots and is immediately functional. No additional installation, no performing upgrade steps. No work needing to be done.

      --
      Deleted
  20. Re:Here, let me google that for you by BostjanSkufca · · Score: 1

    Eh, has Linux server administration really come into this?

    Nope, it hasn't. But I did ask the question in the first place to check if I was missing something. Scripting is fun, love it, but doing everything from scratch (althought I am fan of it, as it gives me the knowledge and total control) is a bit time-consuming. So, if there is a simple software with nice web and API interface for this, and with the ability to create custom scripts which do the actual work, I would like to know about it.

  21. Novell ZENwork Linux Management by Anonymous Coward · · Score: 0

    Novell's ZENworks Linux Management (ZLM) is great for deployment, patching, and configuration management. It works with SUSE Linux Enterprise and Redhat Linux Enterprise. Combine this with Autoyast and a network install point,and it should do everything you need and more.
    I use it to manage a large deployment of SUSE Linux Enterprise, with a small number of Redhat systems thrown in. It has a steep learning curve and is poorly documented, but once you have it up and running, it will make your life much easier.

  22. Gentoo Ebuilds, CVS by lannocc · · Score: 3, Interesting
    I run Gentoo on all my systems, and since the .ebuild file format was easy for me to understand (BASH scripts) I started creating Ebuilds for everything I deploy. These ebuilds are separated into services and machines, so emerging a machine will pull in the services (and configs) that machine uses.

    Here's an example:
    - lannocc-services/dhcp
    - lannocc-services/dns
    - lannocc-servers/foobar

    On machine "foobar" I will `emerge lannocc-servers/foobar`. This pulls in my dhcp and dns profiles.

    I use CVS to track changes I make to my portage overlay (the ebuilds and config files). I keep config files in a files/ subdirectory beneath the ebuild that then follows the root filesystem to place the file in the right spot. So lannocc-services/dhcp will have a files/etc/dhcp/dhcpd.conf file. I've been doing this for the last few years now and it's worked out great. I get to see the progression of changes I make to my configs, and since everything is deployed as a versioned ebuild I can roll it back if necessary.

    1. Re:Gentoo Ebuilds, CVS by BostjanSkufca · · Score: 1

      Do you log into the machine to emerge? Look at puppet for that...

    2. Re:Gentoo Ebuilds, CVS by lannocc · · Score: 1

      Thanks. Puppet is worth taking a look at, but one problem for me is it does not recognize USE-flag changes.

  23. Solution by Bluebottel · · Score: 1

    I found! Its already on slashdot! Heres the link. Oh, wait...

  24. RedHat Satellite Server by giminy · · Score: 3, Interesting

    RedHat's satellite server has some pretty options for this, if you dig deeply enough.

    RHSS lets you create configuration files to deploy to all of your machines. It lets you use macros in deployed configuration files, and you can use server-specific variables (they call them Keys iirc) inside of the configuration files to be deployed on remote servers. For example, you create a generic firewall configuration with a macro block that queries the variable SMBALLOWED. If the value is set, it includes an accept rule for the smb ports. Otherwise, those lines aren't included in the deployed config. Every server that you deploy that you expect to run an SMB server on, you set the local server variable SMBALLOWED=1. Satellite server can also be set up to push config files via XMPP (every server on your network stays connected to the satellite via xmpp, the satellite issues commands like 'update blah_config' to the managed server, and the managed server retrieves the latest version of the config file from the satellite server).

    Satellite is pretty darned fancy, but also was pretty buggy back when I used it. Good luck!

    Reid

    --
    The Right Reverend K. Reid Wightman,
    1. Re:RedHat Satellite Server by Swampcritter · · Score: 1

      And if you are using CentOS or Fedora, I recommend looking at Spacewalk (an Open-Source version of RHEL's Satellite w/o the expensive license).

      Spacewalk is an open source Linux and Solaris systems management solution. It allows you to:

              * Inventory your systems (hardware and software information)
              * Install and update software on your systems
              * Collect and distribute your custom software packages into manageable groups
              * Provision (Kickstart) your systems
              * Manage and deploy configuration files to your systems
              * Monitor your systems
              * Provision virtual guests
              * Start/stop/configure virtual guests

      Wiki/Documentation -- https://fedorahosted.org/spacewalk/

  25. Re:Sounds like an Ubuntu user by BostjanSkufca · · Score: 1

    Nope, a Slackware user, and on those servers I manage every software that interacts with external world (clients) is compiled from source as well as all the required libraries. But hey, I might be getting lazy just by not posting this from some Slackware shell telnet client, but from - you have guessed it - Ubuntu :)

  26. Re:Puppet cr@p... by BostjanSkufca · · Score: 1

    How can you steal a free software?

    Anyway, what are the pros of Cfengine compared to Puppet, in your opinion?

  27. Re:Here, let me google that for you by TooMuchToDo · · Score: 5, Informative
  28. Re:Here, let me google that for you by BostjanSkufca · · Score: 1

    Looks promising! Tnx!

  29. Re:Here, let me google that for you by TooMuchToDo · · Score: 1

    Good luck. It's still not 1.0 release grade, but we're using it with several thousand servers without many problems.

  30. Re:Here, let me google that for you by TooMuchToDo · · Score: 1

    Excellent point. We admin 2500+ linux servers, and while we use several open source toolkits to do a lot of the hefty lifting, they're all glued together with bash scripts and python code (and a SQL backend).

  31. Re:Here, let me google that for you by jvillain · · Score: 4, Interesting

    I put all my config stuff into a noarch RPM and install it when I kickstart the box. When the configs need to be updated I update the rpm and roll it out as an update. That way we know what version of every thing we have and you can use the RPM tools to check if any thing has been changed.

  32. Reminds me of a sysadmin koan... by ghostis · · Score: 3, Funny

    Reminds me of a sysadmin koan I once found...

    Junior admin: "How do I configure this server?"
    Master: "Turn it on"

    http://bashedupbits.wordpress.com/2008/07/09/systems-administration-koans/

    --


    Computer Science is all about trying to find the right wrench to bang in the right screw. -T.Cumbo?
  33. Look at SME Server for Inspiration by grcumb · · Score: 1

    If you want inspiration about automated configuration management done right, take a look at SME Server. It's got a template-based, event-driven configuration management system with a mature, well-documented API that could easily be appropriated for in-house use.

    The SME Server distro itself is a general-purpose small office server, so it's likely not appropriate for your shop, but their approach to configuration management is simple, well-designed and extremely well-implemented.

    Full disclosure: I worked for the company that developed SME Server for a couple of years, and I continue to deploy and support it widely.

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
  34. Your configuration management toolkit should.. by bol · · Score: 1

    Puppet can do all of that for you, including adding the host to nagios if you manage nagios's configuration with Puppet that is.

    For my installations I'm currently using Cobbler to deploy a base install, which handles installing the OS and its configuration (IP, hostname, etc.) Cobbler also installs a number of post-install scripts which then run on first boot to install things like vendor specific drivers/packages (eg the HP PSP) and does an initial run of puppet, which automatically registers with puppermaster. The node will pull down everything else it needs based on its standard configuration and any assigned classes. Cobbler can also control Puppet, via external files, to allow all of this to be configured via Cobbler on the command line when you add a host. If you control Nagios via Puppet, it can generate all of the nagios configurations for it as well.

    As far as I'm concerned generating configuration files lies solely with the configuration management system, eg Puppet or your own tools (stored in version control!) I use Puppet for everything possible and for things that I am too lazy to put together in Puppet I generate them via custom tools and have the output stored in svn (apache vhosts, etc.)

    It's also important to make things as generic as possible and try to use standard tools wherever possible, eg SNMP for monitoring.

  35. ticketmaster's by Anonymous Coward · · Score: 0

    http://code.ticketmaster.com/index.php?page=spine-overview

  36. Re:Sounds like an Ubuntu user by mysidia · · Score: 1

    So you're looking for enterprise capabilities like automated deployment and configuration management, and yet you chose a setup that doesn't have any vendor providing them, and requires you to build them yourself, why?

    Of course you can cobble something together by writing custom scripts, and setting up puppet, bcfg2, or cfengine.

    Which also involves some custom scripting. No matter how you slice it, there's going to be some initial manual programming work to get it working.

    There's really no end-to-end pre-made CM solution you will find for Linux, for free, that's not tied to an Enterprise Linux offering of some sort, and doesn't require you to do manual scripting at least, and some initial manual config writing on your own.

  37. Trade secret by Anonymous Coward · · Score: 0

    When did Slashdot become #techsupport for #india?

    Seriously, I've done the R&D to find out what works and doesn't. Why should I tell you, Mr. Anonymous? Why not hire someone instead of insulting them.

  38. Re:Puppet cr@p... by Anonymous Coward · · Score: 0

    he stole the source code, rebranded it, and didn't give credit. he stole his ideas and then still failed to see the "big picture". the pros of Cfengine are convergence - something neither Puppet is able to do or, for that matter, something very few people in general - even here - seem to get. anytime someone hypes Puppet here it's because they're schills. i'm 'flamebait'? people who steal open source code, rebrand it and then try to profit off of it - wait - aren't they the mortal enemies of /.? must be bizarro day here.

  39. Huh! by liquibyte · · Score: 1

    Do/you/speak/english and/or any/other/language? AYFKM!!!

  40. Re:Here, let me google that for you by Anonymous Coward · · Score: 0

    If by "come into this" you mean: people started to get a fucking clue, then yes it has.
    .
    Custom scripts are rank amateur stuff. Consider an environment where rapid integration and regression testing takes place - do that with scripts. Whats the lead up time ? 2 weeks ? 3 ? Months ? Now what happens when the application devs change something ... repeat that lead up time ?
    .
    What most administrators consider scripting is not automation either, its vim reduction. They do less direct text entry but they still are not automating things based on variables. Its usually some bastardized conditional "scp" tripe with very little error checking, prevention or verification.
    .
    Consider this - How about moving things from that test/dev environment into stage and ultimately production, whats your lead time, how long are your maintenance windows, how many outages from broken scripts etc.
    .
    Does your script automatically adjust based on hardware specs, network name, selinux being enabled, application load, content version etc ? Doubtful.
    .
    Now if your using a standard config management system across the board the lead time gets progressively lower the further along you get, the historical "how is this managed" problems die off along with personal eccentricities and poor planning.

  41. Mod parent up by Anonymous Coward · · Score: 0

    Seriously, I have a good friend who works on the filesystem backend for MySpace. (he once gave me some traffic/load numbers once, wish I could remember them, they were so crazy)

    While he couldn't tell me specifics or even say what they use or not, he told pointed out Spine and Provision from Ticketmaster, and more or less hinted that they are using it.

  42. config management by Sadsfae · · Score: 1

    We use a robust configuration management/provisioning system consisting of puppet, cobbler and koan.

    Puppet is easily scaleable for just about any sort of server need, cobbler and koan take care of the heavy lifting for provisioning. It's also fairly easy to write your own puppet types and modules for various tasks.

    With one command we are able to provision a server from bare metal (or vm) to a fully working server, complete with SAN/NAS storage, fully operational daemons and authentication.

    --
    Have a squat over at the hobo house.
  43. Re:Puppet cr@p... by Sadsfae · · Score: 1

    cfengine is great for what it does. It really just depends on your use case. The only downside is that I am not certain cfengine is still actively maintained.

    If you want to customize cfengine you are going to use perl, if you are going to customize puppet you are going to use ruby.

    Both are fine, you need to figure out your infrastructure and scalability needs - I have found puppet scales a bit better for large, complex stacks but cfengine is easier for more static, less changing environments.

    --
    Have a squat over at the hobo house.
  44. PECL by Anonymous Coward · · Score: 0

    .pl's and a PHP interface that calls them.

    1. Re:PECL by CarpetShark · · Score: 1

      Yeah, .pls and php.

      Also, anyone wanting to build a moonbase using an army of robots should start with a single robot arm, some materials, and a compiler. ;)

  45. Re:Sounds like an Ubuntu user by palegray.net · · Score: 1

    Right, because Debian isn't a mature operating system, and Ubuntu couldn't possibly be based on Debian...

    That aside, good luck with your pretty point-and-click crud on servers that don't have X installed (about 99% of deployed Linux servers, probably).

  46. IBM Tivoli Provisioning Manager ... if you have $$ by Anonymous Coward · · Score: 0

    TPM or TPM for OSD ...

  47. Re:Here, let me google that for you by SlashWombat · · Score: 1

    The very first thing that came to mind was "Isn't this what you lazy bastards were hired for?" Jeez, if you don't wan't to the the marginlly interesting stuff, I would hate to see your performance on the day in, day out tedium that can be IT.

  48. Re:Puppet cr@p... by runslothrun · · Score: 1

    not maintained? they just released a total rewrite as v3 and a commercially supported version as well. cfengine is designed for large, complex environments. mar burgess talks cfengine to google: http://www.youtube.com/watch?v=4CCXs4Om5pY

  49. If you have money ... Voyence by DougReed · · Score: 1

    At the risk of sounding like some sort of an advertisement for EMC, If you are working for a company with money... Voyence is a WAY cool product. It will do just about anything you could possibly want to network devices. It will even tell you if you screw up something.

  50. Reading it again by mindstrm · · Score: 1

    Reading the original post again - I'm a little unclear what the question is.

    If the question is "How can I manage all this stuff" - you can manage it through puppet.

    If the question is "Is there something that can automaticaly do EVERYTHING for me" then the answer is "No" - no matter how much you want to abstract things, at some point, you are going to have to plan and put the system together.

    You could roll something sweet with OpenQRM to make it all drag and drop - but you'd have to put in the wrench time to model it after the types of things your organisation has/needs, and you'd have to roll quite a bit of infrastructure out underneath it to make it work.

    What you are really asking, I think, is are you missing something in the big picture - and I don't think you are - it's just a matter of scale.

  51. Zenoss/Puppet by F.O.Dobbs · · Score: 1

    There's a Zenoss/Puppet integration here: http://github.com/mamba/puppet-zenoss/tree/master

  52. UniCluster by CE@UIC · · Score: 1

    There is an open source cluster management stack called UniCluster available at http://grid.org. (disclosure: I work for the company that makes UniCluster). Its intended for managing HPC clusters but it can do everything that you're looking for in one tool. It has support for ganglia, nagios, cacti already built in and adding new third party components is pretty simple. It has a tool to push config files around and will do bare metal provisioning (ie. setup PXE and kickstart for you).

    Tom

  53. Wrong direction by vlm · · Score: 1

    But each of these tools has to be configured independently or at least configuration has to be generated.

    You write that like its bad or something. Decentralized is always more reliable overall.

    The correct way is to work it thru in reverse. Automated tools should find things they can monitor, and then humans think about what to do.

    NMAP periodically dumps its results in a DB. Watch your CDP too. Maybe sample your ARP cache on your switches. And keep an eye on your RANCID router configs.

    One simple script analyzes the nagios config and emails a complaint to either one individual, a mailing list, or a gateway that autogenerates a ticket. The script sends one alert for each issue it finds, something like "WTF nmap found a device at 10.11.12.13 that is not configured or commented as ignore in Nagios". I haven't met a plain text config file yet, that doesn't allow comments, so if you desire not to monitor something you have a syntax in the config file "# ignore 10.11.12.14" and your script understands that.

    Nothing wrong with your script generating alerts that contain sample "cut-n-paste" info to add to your configs.

    Repeat for reverse DNS, munin monitoring system, MRTG polling of anything with an open SNMP port, etc.

    Also you need well backed up and replicated wiki with a page for every device your network monitoring tool detects.

    Finally don't forget that if something has been "red" in nagios for perhaps a week and/or its gone from the ARP table for a week, maybe it's time to formally delete it, also necessitating alert emails.

    Conveniently this scheme also "forces" people to explain what they think they are doing, to at least one other sentient being, which can be very educational for all concerned if the end users are doing something crazy.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  54. Re:Puppet cr@p... by BostjanSkufca · · Score: 1

    Thanks for the info.

  55. System Administrator as Developer by nick_urbanik · · Score: 1

    Eh, has Linux server administration really come into this? Hire knowledgeable admins that can script stuff. Linux is perfect for scripting such configuring and set up. You just need to do those scripts once and you're ready to deploy them on all systems after minimum installation.

    If you're a large company, just develop your own solutions, its far better than using someones elses. Just look at google or any other succesfull company.

    I agree.

    We have our own home-grown configuration management system; an open source version of it is available here.

    In large systems, a system administrator is a developer. You write software that integrates your configuration management with Nagios, with your kickstart system, with your auditing system, that writes your firewalls.

  56. Cobbler? by apresrasage · · Score: 1

    I use cobbler and cfengine to deploy and maintain a couple of clusters including Xen virtual machines and a
    few labs with workstations.
    Cobbler does a pretty good job at deployment ... cfengine a pretty good job at management ...


    Automatic configuration ... uh ... I guess cobbler takes the edge off of configuring dhcp/pxe/dns/yum servers
    for deployment and updates. Kickstart scripts can be obtained by building one machine, grabbing the anaconda
    script from the root directory and fudging it to taste.
    That's almost automatic ;-) (not really)
    On the downside, with cobbler, you get the overenthusiastic release sequences typical of Fedora related
    projects (if it compiles and runs, it is production ready; major features introduced within a minor release and
    all that good stuff), so updating is a bit of a adrenalin rush time.
    But, such is price of freedom (and free beer).

    Configuring machines using cfengine is a dog (and I learned to love the pup), but it is the best dog we have.
    That is all but automatic. I also have puppet deployed to compare ... well, It has its upsides, but it is not
    better than cfengine. Frankly, I do not benefit much from the main concepts and features behind cfengine
    and would probably be as well off with puppet, or even func and such.
    Having a company backing cfengine
    makes me feel a little better now. (I was a little nervous about Mark crossing the streets every day ... buses
    stop for no one).

    I don't think that in the current state of affairs automatic configuration is not even desirable as all of the
    components involved very rapidly reach configuration complexity that needs auditing.

    I have my working setup, but the next step in improving and upgrading it is a bit of a mystery to me
    given the options out there.


    Anyway ... that's my rant.