summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentation/faq.rst227
1 files changed, 0 insertions, 227 deletions
diff --git a/documentation/faq.rst b/documentation/faq.rst
deleted file mode 100644
index 18a8c2b29..000000000
--- a/documentation/faq.rst
+++ /dev/null
@@ -1,227 +0,0 @@
-What is Puppet?
-----------------
-Puppet is an open-source next-generation server automation tool. It is
-composed of a *declarative* language for expressing system configuration, a
-*client* and *server* for distributing it, and a *library* for realizing the
-configuration.
-
-The primary design goal of Puppet is that it have an expressive enough
-language backed by a powerful enough library that you can write your own
-server automation applications in just a few lines of code. With Puppet, you
-can express the configuration of your entire network in one program capable of
-realizing the configuration. The fact that Puppet has open source combined
-with how easily it can be extended means that you can add whatever
-functionality you think is missing and then contribute it back to the main
-project if you desire.
-
-You can learn more about Puppet by reading its Documentation_.
-
-What license is Puppet released under?
---------------------------------------
-Puppet is open source and is released under the `GNU Public License`_.
-
-Why does Puppet exist?
-----------------------
-Luke Kanies, who founded Reductive Labs, has been doing server automation for
-years, and Puppet is the result of his frustration with existing tools. After
-significant effort spent trying to enhance cfengine, plus a stint at a
-commercial server automation vendor, Luke concluded that the only way to get a
-great automation tool was to develop one.
-
-Puppet is actually the result of years of design and prototyping (called Blink
-during its prototype phases), but only in 2005 was a commercial company
-(Reductive Labs) built to be fully dedicated to its creation. If Puppet is
-not the most powerful and most flexible server automation platform available,
-then its goals are not being met.
-
-Why does Puppet have its own language?
---------------------------------------
-This actually is a frequently asked question, and people most often ask why I
-did not choose to use something like XML or YAML as the configuration
-format; otherwise people ask why I didn't just choose to just use Ruby as the
-input language.
-
-The input format for Puppet is not XML or YAML because these are data formats
-developed to be easy for computers to handle. They do not do conditionals
-(although, yes, they support data structures that could be considered
-conditionals), but mostly, they're just horrible human interfaces. While some
-people are comfortable reading and writing them, there's a reason why we use
-web browsers instead of just reading the HTML directly. Also, using XML or
-YAML would limit the ability to make sure the interface is declarative -- one
-process might treat an XML configuration differently from another.
-
-As to just using Ruby as the input format, that unnecessarily ties Puppet to
-Ruby, which is undesirable, and Ruby provides a bit too much functionality.
-For more detail, see the thread_ on the puppet-dev list.
-
-.. _thread: http://mail.madstop.com/pipermail/puppet-dev/2006-April/000393.html
-
-How does Puppet compare to cfengine?
-------------------------------------
-Puppet could be said to be the next-generation cfengine. The overall design
-is heavily influenced by cfengine, but the language is more powerful than
-cfengine's and the library is more flexible. In addition, Puppet's client and
-server use standard protocols like XMLRPC and are easy to enhance with new
-functionality, so they are well-positioned to become the platform for the
-network applications of the future, while cfengine's client and server rely
-entirely on cfengine-specific protocols and are quite difficult to enhance.
-
-See `How Puppet Compares to Cfengine`_ for more information.
-
-How does Puppet compare to available commercial products?
----------------------------------------------------------
-The primary commercial vendors are BladeLogic and OpsWare. While they both
-have useful product lines, Puppet surpasses them by reframing the entire
-server automation problem -- while the commercial vendors are writing GUI
-applications for you, Reductive Labs is providing a development platform with
-all the features of a great language, like library development, code sharing,
-and the ability to version control your configurations.
-
-Trying to express a complex network configuration entirely through a GUI is an
-exercise in frustration that no one should suffer, but expressing the
-abstraction necessary to share those GUI configurations goes beyond
-frustrating.
-
-Of course, another great difference between Puppet and the commercial products
-is that Puppet is open sourced under the `GNU Public License`_. You can
-download_ the product, try it out, peruse the source, and make whatever
-modifications you want. You have to have more than 100 servers just to get a
-demo from the commercial vendors, but Puppet is available for testing by any
-company that needs to reduce its server administration costs.
-
-Who would find Puppet useful?
------------------------------
-Any organization that would like to reduce the cost of maintaining its
-computers could benefit from using Puppet. However, because the return on
-investment is linked to multiple factors, like current administrative
-overhead, diversity among existing computers, and cost of downtime, it can be
-difficult for organizations to determine whether they should invest in any
-configuration management tools, much less Puppet. Reductive Labs can always
-be contacted directly at info at reductivelabs.com to help answer this question.
-
-Generally, however, an organization should be using server automation if any
-of the following are true:
-
-* It has high server administration costs
-* It pays a high price for downtime, either because of contracts or
- opportunity cost
-* It has many servers that are essentially either identical or nearly
- identical
-* Flexibility and agility in server configuration are essential
-
-Can Puppet manage workstations?
--------------------------------
-Yes, Puppet can manage any type of machine. We have found that most
-organizations are more concerned with server management than workstation
-management, and frankly, the term 'server' is slightly more aesthetically
-appealing than 'computer', but Puppet would be ideal for organizations with a
-large number of workstations.
-
-Does Puppet run on Windows?
----------------------------
-The short answer is 'not yet'. It will eventually, but Reductive Labs does
-not yet have the development bandwidth to make this work.
-
-What size organizations should use Puppet?
-------------------------------------------
-There is no minimum or maximum organization size that can benefit from Puppet,
-but there are sizes that are more likely to benefit. Organizations with fewer
-than 10-20 servers are unlikely to consider maintaining those servers to be a
-real problem, and thus they can avoid investment in tools even though those
-tools could likely provide savings.
-
-There is no real upper limit to who could benefit from using Puppet.
-Obviously as the server count increases the investment must increase somewhat,
-but with Puppet that increase is not linear.
-
-My servers are all unique; can Puppet still help?
--------------------------------------------------
-All servers are at least somewhat unique -- with different host names and
-different IP addresses -- but very few servers are entirely unique, since
-nearly every one runs a relatively standard operating system. Servers are
-also often very similar to other servers within a single organization -- all
-Solaris servers might have similar security settings, or all web servers might
-have roughly equivalent configurations -- even if they're very different from
-servers in other organizations. Finally, servers are often needlessly unique,
-in that they have been built and managed manually with no attempt at retaining
-appropriate consistency.
-
-Puppet can help both on the side of consistency and uniqueness. Puppet
-can be used to express the consistency that should exist, even if
-that consistency spans arbritrary sets of servers based on any type of data
-like operating system, data center, or physical location. Puppet can also be
-used to handle uniqueness, either by allowing special provision of what makes
-a given host unique or through specifying exceptions to otherwise standard
-classes.
-
-Who is Reductive Labs?
-----------------------
-Reductive Labs is a small, private company focused on reframing the server
-automation problem. Our primary focus is Puppet, but Reductive Labs also
-provides automation consulting, training, and custom development. For more
-information email info at reductivelabs.com.
-
-The Projects_ page lists our active projects.
-
-How Do I Install Puppet?
-------------------------
-
-The `Installation Guide`_ documents the fastest way to start using Puppet.
-
-What is a Manifest?
--------------------
-Because the word *script* implies a procedural one-step-after-another program,
-the word does not apply well to Puppet programs. Thus, we use the word
-*manifest* to describe declarative Puppet programs. Speaking of applying,
-Puppet *applies* a manifest to a server or a network, rather than *executing*
-it.
-
-How Do I Write Manifests?
--------------------------
-The best way is to download Puppet and just start writing. There are multiple
-sets of examples, including the examples_ used in `unit testing`_ and the
-`example manifests`_, and the reference_ will obviously be useful.
-
-How Do I Run Manifests?
------------------------
-Once you have Puppet installed according the the `Installation Guide`_,
-just run the ``puppet`` executable against your example::
-
- puppet -v example.pp
-
-How do I contribute?
---------------------
-First join the `Mailing List`_ -- there is currently only a development list,
-but as the community grows a user list will be created. You can also join the
-IRC channel ``#puppet`` on irc.freenode.net, where Puppet's developers will be
-hanging out most days (and nights).
-
-The most valuable contribution you can make, though, is to use Puppet and
-submit your feedback, either directly on IRC or through the mailing list, or
-via the `bug database`_. We're always looking for great ideas to incorporate
-into Puppet.
-
-When is the Next Release?
--------------------------
-There are regular feature and release updates on the `Mailing List`_,
-and you can always find the latest release in the download_ directory.
-
-I keep getting "certificates were not trusted". What's wrong?
---------------------------------------------------------------
-You can figure the problem out by manually verifying the certificate with
-openssl::
-
- sudo openssl verify -CAfile /etc/puppet/ssl/certs/ca.pem /etc/puppet/ssl/certs/myhostname.domain.com.pem
-
-.. _example manifests: /svn/manifests/
-.. _Mailing List: http://mail.madstop.com/mailman/listinfo/puppet-dev
-.. _Projects: /projects/
-.. _Documentation: /projects/puppet/documentation/
-.. _Installation Guide: /projects/puppet/documentation/installation
-.. _How Puppet Compares to Cfengine: /projects/puppet/documentation/notcfengine
-.. _GNU Public License: http://www.gnu.org/copyleft/gpl.html
-.. _examples: /cgi-bin/puppet.cgi/browser/trunk/examples/code/
-.. _unit testing: http://www.pragmaticprogrammer.com/starter_kit/ut/
-.. _bug database: /cgi-bin/puppet.cgi/report
-.. _reference: /projects/puppet/documentation/typedocs
-.. _download: /downloads