Tag Info

Hot answers tagged

91

Once upon a time I had an opportunity to decide on a naming scheme. So I went round and asked my developers, who after all were the people who had to work with these names on a day-to-day basis, whether they preferred functional names (that is, names which represent, in some encoded form, the purpose of the machine) or mnemonic names (that is, names drawn ...


87

This largely comes down to whether your servers are pets or livestock. Pets get individual names. They're distinct from each other, and we care about those differences. When one gets sick, we usually try to nurse it back to health. Traditionally, servers have been pets. Livestock get numbers. They're mostly identical, and what differences there are, we ...


82

I started using Puppet ahead of deploying a new infrastructure and simply bought a (well-regarded) book on the topic. I don't think most people actually obtain professional Puppet training. I worked on examples until I could mold the process to my environment. This was December 2011, so within a few weeks, I was able to understand the basics and get a ...


70

Answers to your questions. In this answer, "Chef" or "chef" refers to Chef the product, usually in a client form. "CHEF" refers to Chef Software, Inc. Opscode renamed to Chef Software, Inc in 2013. Not clear if it's better to setup roles in ruby DSL, JSON, or from the management console? Why are there multiple ways to do the same thing? There are multiple ...


60

To be honest, I think this comes down to simple viewpoint: Chef seems more of an imperative, programmatic solution, the usage of ruby as the language instantly makes me hope somebody ported it to python, as is the way of the world with all of ruby's ideas. That's not what you want for this sort of thing though. You want to speak to the void where the ...


47

A domain-specific language makes a big difference in the amount of code you write. For example, you could argue that there's not much difference between: chmod 640 /my/file and file { "/my/file": mode => 640, } but there's a great deal of difference between these: FILE=/my/file chmod 640 $FILE chown foo $FILE chgrp bar $FILE wget -O $FILE ...


31

(Author's Note: This answer refers to RHEL 6 and prior versions. RHEL 7 now has a fully supported upgrade path from RHEL 6, the details of which are at the end.) To start, I should note that there are two ways to do the in-place upgrade: Drop in the installation DVD (or use the DVD image via iLO/iDRAC), boot from it and choose Upgrade, e.g. linux ...


30

If it came in MSI format for easy installation to Windows workstations, and could be managed by GPO and Apple Open Directory then it would be perfect. It would also need to work well with things like Sharepoint, but I suspect that's an issue for the people designing sites in Sharepoint rather than Mozilla. I know there's currently a fork of firefox that is ...


26

I would recommend using a mixture of Debian pre-seeding, where you give the installer a text file that answers all the questions it would ask, and Puppet. THe reason for using the preseeding, rather than FAI is that you don't have to set up an image first and deal with keeping it up to date. You will end up with an install very similar to what you would ...


26

On a previous job, I was assigned the task of doing a pilot implementation of Puppet. Now, I have programming background, though not Ruby, so I don't have as much problem as others do. However, it's interesting to note that programmers without experience with non-traditional paradigms have problem with Puppet too, because Puppet is declarative, not ...


23

You can do it with puppet, you either do: ensure => latest, or ensure=> "1.0.2", to specify the latest/required version. i.e. package { apache2: ensure => "2.0.12-2" } package { apache2: ensure => latest } This does at least mean you can specify the same version across all systems, as well as preventing servers from (potentially ...


23

IMHO it's worth learning even if you're only managing a single server, Yes, there will be a learning curve. Yes, you will get frustrated. For those costs, though, you will be paid back in multiples through reliable, consistent, one-click deployments, version-controlled server configuration, ease of setting up test/dev environments, etc. In addition to the ...


22

You've answered your own question... Automation is becoming more scalable and formalized. Puppet and Chef are considered standards these days (check the job ads). Cobbled-together shell scripts have their place, but they're not scalable in the context of the DevOps movement. Readability is part of that.


21

• How does a sysadmin improve their shell scripting? Practice, mixed with drive. It sounds trite, but you have to want to get better, in addition to practice. If you don't truly enjoy scripting, you can be forced to do it for years when you have to and never really get good at it. If you don't want to get better, you could sit next to the best ...


21

it seems i've found something: file { "/etc/sshd_config": source => "....", notify => Service[sshd] } service { sshd: ensure => running } we'll see how that will work. anyway your thoughts on the subject are welcome.


20

An alternative to notify is subscribe: file { "/etc/sshd_config": source => "....", } service { sshd: ensure => running, subscribe => File["/etc/sshd_config"], } The difference being that the relationship is described from the other end. For example, you might make apache subscribe to /etc/apache/httpd.conf, but you'd make a vhost ...


19

I've written a detailed comparison of Chef vs Puppet here: Puppet vs Chef: 10 reasons why Puppet wins. Although it doesn't include use cases, I hope it provides some useful starting points for people wondering which tool to choose for their infrastructure automation.


17

General rule: If you're using configuration management, manage every aspect of the configuration that you can. The more you centralize the easier it will be to scale your environment out. Specific examples (cribbed from the question, all "This is why you want to manage it" narratives): IP Network configuration OK, sure, you configured an ...


17

This has been covered here before... My recommendation is a combination of functional names and mnemonic names... If you're writing an application and it needs to address ccts-logserver1, use that name throughout, but make that a CNAME or an alias. The real hostname can be whatever you want: a fruit or vegetable, greek mythology or Seinfeld character... ...


16

I think this is probably the wrong question. Certainly using configuration management tools like Puppet and Chef to maintain your infrastructure is a huge leap forward from trying to do it all manually. The issue of keeping your package versions up to date and in sync is not one that any of these tools solves directly. To automate this properly you need to ...


15

System Center Configuration Manager's (SCCM) Desired State Configuration is exactly what you're describing. If you have no budget for this (like your question makes it seem) you can leverage PowerShell DSC instead. System Center Operations Manager (SCOM) doesn't factor in here- it's a monitoring and alerting platform, not a configuration management one. ...


15

This will be an unpopular opinion, but configuration management systems are not necessarily better. Sometimes simple really is best. There is a definite learning curve and administrative overhead associated with the configuration system you choose. You are after all introducing a dependency. As with any automation you must also be careful that security ...


14

Sorry about the verbosity. Use the tool that makes it's easy to get your job done. That's the point of automation, right? History: I have used puppet in past gigs and last month I spent about a week trying to get used to chef to see if I would make the switch at my new gig. I didn't leap. Jargon: One unfortunate problem with both of these systems is the ...


14

I've got etckeeper on my personal workstation, but I've not had to do much with it yet (other than have it track all my changes). Seems like it does a reasonable job of making sure you at least know what's been fiddled with. I wouldn't write off Puppet as a solution -- as long as some of the services on the machine are your responsibility to maintain, then ...


13

It's annoying that I'm registered by can't comment until I reach a reputation of 50. Why do i need that to comment? Anyways, to p858snake: Firefox ADM is not real GPO management, it's cheating. It's cheating by: Inject some reg keys into registry Use a .vbs as logon script to read these registries, then modify prefs.js file accordingly As a result, ...


13

Not overkill at all. Start using puppet now, and it'll pay for itself in the long run. Seriously. I use puppet even if i'm only deploying one server, because I know at some point it'll probably have to be replaced, rebuilt, or another one added as a backup.


12

Both Puppet and Chef can do what you want just fine. Your best is going to be to start doing what you're trying to do and decide which tool you like the best. I think the big questions you have to have to ask is: Do you want a DSL? - Chef recipes are written in ruby, puppet has a DSL. Whether a DSL is good or a bad choice is one of the biggest differences ...


12

I'd probably use Ansible. It's a very simple configuration management / orchestration engine that's far simpler to get started with than Puppet (Puppet used to be my go-to choice for this, but not always now, having discovered Ansible). The benefit of Ansible here is that it communicates directly over SSH, so you'd be able to get started using just your ...


11

bundle agent test { vars: "my_result" string => execresult("/bin/ls /tmp/test/","noshell"); reports: ubuntu:: "Output is : $(my_result)"; } See https://cfengine.com/manuals/cf3-solutions#Execresult-example


11

Specific answer: Immediately speaking, you're calling sysctl::value, but value isn't declared in your sysctl class. See this example that uses a sysctl::conf declaration. Without the define value, there is no sysctl::value subclass for you to call. General answer and guidance: The Augeas construct (see also its type reference documentation) that is part ...



Only top voted, non community-wiki answers of a minimum length are eligible