Re: [RFR] templates://chef/{chef.templates,chef-solr.templates,chef-server-web ui.templates}
Christian PERRIER wrote:
> Your review should be sent as an answer to this mail.
Okay...
> Rationale:
> --- chef.old/debian/chef-server-webui.templates 2010-05-31 07:23:00.433645236 +0200
> +++ chef/debian/chef-server-webui.templates 2010-06-06 19:06:12.511128988 +0200
> @@ -1,16 +1,15 @@
> Template: chef-server-webui/admin_password
> Type: password
> +_Description: Temporary 'admin' user password for the Chef server web interface:
A password for a temporary user? A password for the interface? How
about (leaving some information out):
_Description: Temporary password for the Chef server user "admin":
The name goes at the end because we're introducing it. I'm also
standardising on doublequotes.
> + Please choose a temporary first-use password to log into the Chef
> + server through its web interface. This first-time login will be made
> + with the 'admin' account. Once logged in, the password should
> + be changed immediately.
There are subtle problems with the grammatical plumbing here (the
password doesn't log in). Also, surely all subsequent admin logins
will also be made with that same account name! How about:
Please choose a temporary password for the first time the "admin"
user logs into the Chef server web interface. It should be changed
immediately after being used.
> + .
> + This password must have 6 characters or more. Otherwise, the web
> + interface will not start properly. It will be recorded in
> + /etc/chef/webui.rb as 'web_ui_admin_default_password'.
> + .
> + If you leave this empty, the default password for 'admin' in the web
> + interface will be used. It is displayed on the web interface home
> + page.
In the first paragraph, the vaguely ominous "otherwise" seems
pointless; shouldn't it be "otherwise the validation will catch it
as usual and you'll be asked again", which doesn't need to be
mentioned? (Or is there a bug here?) Also, "It will be recorded"
means the password, not the web interface. Then in the second
paragraph "if you leave this empty" is going back to talking about
the password, not the file just mentioned. (And besides... isn't
zero less than six?)
So rearrange it as:
This password must be at least six characters long. If no password
is entered, a default value will be used which is displayed on the
Chef server web interface home page.
.
The password will be stored in /etc/chef/webui.rb as the value of
"web_ui_admin_default_password".
> The rest of the templates was wrongly using double spaces, making it
> hard-formatted.
>
> Reformat it properly. I also reorded things and unjargonized them
> (webui, again).
That is:
> Template: chef/chef_server_url
> Type: string
> Description: URL of Chef Server (e.g., http://chef.example.com:4000):
> This is the full URI that clients will use to connect to the
> server.
> .
> This will be used in /etc/chef/client.rb as 'chef_server_url'.
Still too indenty.
Description: Chef server URL:
Please specify the full URL that clients will use to connect to the
Chef server (for instance "http://chef.example.com:4000").
.
This value will be stored in /etc/chef/client.rb as "chef_server_url".
> Template: chef-solr/amqp_password
> Type: password
> _Description: New password for the 'chef' AMQP user in the RabbitMQ vhost "/chef":
_Description: Password for the AMQP user "chef" in the RabbitMQ vhost "/chef":
> Set the password for the chef user in the AMQP server queue. Use
> RabbitMQ's rabbitmqctl program to set this password. The default user
> and vhost are assumed (chef and /chef, respectively).
What do you mean, the default user is assumed? Isn't this
specifically setting the password for "chef"?
> .
> RabbitMQ does not have the capability to read the password from a file, and
> this will be passed via "" on the command-line. As such, do not use shell
> meta-characters that could cause errors such as !.
> .
> This will be used in /etc/chef/solr.rb and /etc/chef/server.rb as 'amqp_pass'.
If this works properly I won't need to "use RabbitMQ's rabbitmqctl
program to set this password". Is it telling me about that utility
just so that I know what's to blame for the bad password handling?
Please choose a password for the default user (named "chef") in the AMQP
server queue, under the default RabbitMQ vhost (also "/chef").
.
RabbitMQ's rabbitmqctl program, which will be used to set this password,
cannot read input from a file. Instead it will be passed as a command-line
argument, so the password should not include any shell meta-characters
that could cause errors, such as "!".
.
This value will be stored in /etc/chef/solr.rb and /etc/chef/server.rb as
"amqp_pass".
(Alas, my tweaks have eliminated what was for once a good idiomatic
use of "respectively".)
In the control file:
> -Description: System integration framework written in Ruby
> +Description: system integration framework - client and solo binaries
>
> Being written in Ruby is pointless for users. Particularly in the
> synopsis.
And "system integration framework" isn't great as a way of
distinguishing chef from, say, D-Bus (or Debian, or the latest
business process management fad). But never mind, it's the tagline
upstream choose to use... In fact I can't significantly improve on
these package descriptions; the only thing I've changed is:
> + Chef can be run as a client (chef-client) to a server, or run as a standalone
> + tool (chef-solo). Configuration recipes are written in a pure Ruby DSL.
Elide a repeated verb and expand an ambiguous abbreviation:
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
--
JBR with qualifications in linguistics, experience as a Debian
sysadmin, and probably no clue about this particular package
diff -ru old/chef-server-webui.templates new/chef-server-webui.templates
--- old/chef-server-webui.templates 2010-05-31 07:14:40.000000000 +0100
+++ new/chef-server-webui.templates 2010-06-06 23:20:33.000000000 +0100
@@ -1,16 +1,13 @@
Template: chef-server-webui/admin_password
Type: password
-_Description: New password for the 'admin' user in the Chef Server WebUI:
- This sets a temporary first-use password to log into the Chef Server WebUI
- as the 'admin' user for the first time. Once logged in, the password should
- be changed immediately.
- .
- Once the chef-server-webui process is running, login using the username
- 'admin' using the password set here.
- .
- If a password is not entered, the webui default password for 'admin' will
- be used, which is displayed on the webui home page. The password must be
- at least 6 characters or the webui will not start properly.
- .
- This will be used in /etc/chef/webui.rb as 'web_ui_admin_default_password'.
- .
+_Description: Temporary password for the Chef server user "admin":
+ Please choose a temporary password for the first time the "admin"
+ user logs into the Chef server web interface. It should be changed
+ immediately after being used.
+ .
+ This password must be at least six characters long. If no password
+ is entered, a default value will be used which is displayed on the
+ Chef server web interface home page.
+ .
+ The password will be stored in /etc/chef/webui.rb as the value of
+ "web_ui_admin_default_password".
diff -ru old/chef-solr.templates new/chef-solr.templates
--- old/chef-solr.templates 2010-05-31 07:14:37.000000000 +0100
+++ new/chef-solr.templates 2010-06-06 23:22:37.000000000 +0100
@@ -1,12 +1,13 @@
Template: chef-solr/amqp_password
Type: password
-_Description: New password for the 'chef' AMQP user in the RabbitMQ vhost "/chef":
- Set the password for the chef user in the AMQP server queue. Use
- RabbitMQ's rabbitmqctl program to set this password. The default user
- and vhost are assumed (chef and /chef, respectively).
- .
- RabbitMQ does not have the capability to read the password from a file, and
- this will be passed via "" on the command-line. As such, do not use shell
- meta-characters that could cause errors such as !.
- .
- This will be used in /etc/chef/solr.rb and /etc/chef/server.rb as 'amqp_pass'.
+_Description: Password for the AMQP user "chef" in the RabbitMQ vhost "/chef":
+ Please choose a password for the default user (named "chef") in the AMQP
+ server queue, under the default RabbitMQ vhost (also "/chef").
+ .
+ RabbitMQ's rabbitmqctl program, which will be used to set this password,
+ cannot read input from a file. Instead it will be passed as a command-line
+ argument, so the password should not include any shell meta-characters
+ that could cause errors, such as "!".
+ .
+ This value will be stored in /etc/chef/solr.rb and /etc/chef/server.rb as
+ "amqp_pass".
diff -ru old/chef.templates new/chef.templates
--- old/chef.templates 2010-05-31 07:14:35.000000000 +0100
+++ new/chef.templates 2010-06-06 23:23:30.000000000 +0100
@@ -1,7 +1,7 @@
Template: chef/chef_server_url
Type: string
-Description: URL of Chef Server (e.g., http://chef.example.com:4000):
- This is the full URI that clients will use to connect to the
- server.
- .
- This will be used in /etc/chef/client.rb as 'chef_server_url'.
+Description: Chef server URL:
+ Please specify the full URL that clients will use to connect to the
+ Chef server (for instance "http://chef.example.com:4000").
+ .
+ This value will be stored in /etc/chef/client.rb as "chef_server_url".
diff -ru old/control new/control
--- old/control 2010-05-31 07:14:42.000000000 +0100
+++ new/control 2010-06-06 23:26:14.000000000 +0100
@@ -12,13 +12,14 @@
Architecture: all
Depends: ${misc:Depends}, ruby1.8, liberubis-ruby1.8, libjson-ruby1.8, libextlib-ruby1.8 (>= 0.9.13), ohai (>= 0.4.0), libchef-ruby1.8 (= ${source:Version}), libopenssl-ruby1.8, libmixlib-authentication-ruby1.8 (>= 1.1.0), ucf
Recommends: irb1.8
-Description: System integration framework written in Ruby
+Description: system integration framework - client and solo binaries
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
- Chef can be run as a client (chef-client) to a server, or run as a standalone
- tool (chef-solo). Configuration recipes are written in a pure Ruby DSL.
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
.
This package contains the chef-client and chef-solo binaries and associated
files.
@@ -29,7 +30,15 @@
Suggests: chef (= ${source:Version})
Replaces: chef-indexer
Conflicts: chef-indexer
-Description: Manages search indexes of Chef node attributes using SOLR
+Description: system integration framework - search indexes management
+ Chef is a systems integration framework and configuration management library
+ written in Ruby. Chef provides a Ruby library and API that can be used to
+ bring the benefits of configuration management to an entire infrastructure.
+ .
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
+ .
The chef indexer listens to a message queue via AMQP for changes to search
indexes. It then either creates or deletes entries in the index according
to the information it is passed.
@@ -43,11 +52,15 @@
Depends: ${misc:Depends}, ruby, merb-slices, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, chef-server-api (= ${source:Version}), chef-solr (= ${source:Version}), thin, libjson-ruby, libchef-ruby (= ${source:Version}), libuuidtools-ruby1.8, adduser, libjs-jquery (>= 1.3.2), ucf
Recommends: chef (= ${source:Version})
Suggests: nginx, apache2, rake, chef-server-webui (=${source:Version})
-Description: Merb application providing centralized management for Chef
- Chef is a systems integration framework and configuration management system
+Description: system integration framework - centralized server
+ Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
+ .
The Chef Server is a Merb application that provides centralized storage and
distribution for recipes stored in "cookbooks," management and authentication
of client nodes and node data, and search indexes for that data.
@@ -63,11 +76,15 @@
Recommends: chef (= ${source:Version})
Replaces: chef-server-slice
Conflicts: chef-server-slice
-Description: Merb slice providing REST API for Chef client access
+Description: system integration framework - server API for clients
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
+ .
The Chef Server is a Merb application that provides centralized storage and
distribution for recipes stored in "cookbooks," management and authentication
of client nodes and node data, and search indexes for that data.
@@ -82,11 +99,15 @@
Depends: ${misc:Depends}, ruby, merb-slices, libmerb-param-protection-ruby, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, thin, libopenid-ruby, libjson-ruby, libchef-ruby (= ${source:Version}), libcoderay-ruby, chef-server (= ${source:Version}), adduser, libjs-jquery-ui (>= 1.7.1), ucf
Suggests: chef (= ${source:Version}), apache2, nginx
Conflicts: chef-server-slice
-Description: Merb app slice providing Web interface to API server for Chef
+Description: system integration framework - web interface
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
+ .
The Chef Server WebUI is a Merb application that accesses the Chef Server API
directly to provide an easy to use interface for managing Chef clients and
Chef server data.
@@ -96,11 +117,15 @@
Package: libchef-ruby
Architecture: all
Depends: ${misc:Depends}, ruby, libchef-ruby1.8 (= ${source:Version})
-Description: Ruby libraries for Chef system integration framework
+Description: system integration framework - Ruby libraries
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
+ .
As a library, Chef allows administrators to easily tie various infrastructure
components together.
.
@@ -113,11 +138,15 @@
Depends: ${misc:Depends}, ruby1.8, libopenssl-ruby1.8, libmixlib-authentication-ruby1.8 (>= 1.1.0), libmixlib-cli-ruby1.8 (>= 1.1.0), libmixlib-config-ruby1.8 (>= 1.1.0), libmixlib-log-ruby1.8 (>= 1.1.0), libohai-ruby1.8 (>= 0.4.0), libmoneta-ruby1.8, libbunny-ruby1.8
Recommends: ohai (>= 0.4.0), chef (= ${source:Version}), rubygems1.8
Suggests: rake, libshadow-ruby1.8
-Description: Ruby 1.8 libraries for Chef system integration framework
+Description: system integration framework - Ruby 1.8 libraries
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
+ Chef can be run as a client (chef-client) to a server, or as a standalone
+ tool (chef-solo). Configuration recipes are written in a pure Ruby
+ domain-specific language.
+ .
As a library, Chef allows administrators to easily tie various infrastructure
components together.
.
Template: chef-server-webui/admin_password
Type: password
_Description: Temporary password for the Chef server user "admin":
Please choose a temporary password for the first time the "admin"
user logs into the Chef server web interface. It should be changed
immediately after being used.
.
This password must be at least six characters long. If no password
is entered, a default value will be used which is displayed on the
Chef server web interface home page.
.
The password will be stored in /etc/chef/webui.rb as the value of
"web_ui_admin_default_password".
Template: chef-solr/amqp_password
Type: password
_Description: Password for the AMQP user "chef" in the RabbitMQ vhost "/chef":
Please choose a password for the default user (named "chef") in the AMQP
server queue, under the default RabbitMQ vhost (also "/chef").
.
RabbitMQ's rabbitmqctl program, which will be used to set this password,
cannot read input from a file. Instead it will be passed as a command-line
argument, so the password should not include any shell meta-characters
that could cause errors, such as "!".
.
This value will be stored in /etc/chef/solr.rb and /etc/chef/server.rb as
"amqp_pass".
Template: chef/chef_server_url
Type: string
Description: Chef server URL:
Please specify the full URL that clients will use to connect to the
Chef server (for instance "http://chef.example.com:4000").
.
This value will be stored in /etc/chef/client.rb as "chef_server_url".
Source: chef
Section: ruby
Priority: extra
Maintainer: Joshua Timberman <joshua@opscode.com>
Uploaders: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
Build-Depends: cdbs, debhelper (>= 7), ruby-pkg-tools (>= 0.14), quilt, po-debconf, libjavascript-minifier-xs-perl
Build-Depends-Indep: ruby, rake
Standards-Version: 3.8.4
Homepage: http://wiki.opscode.com/display/chef/Home
Package: chef
Architecture: all
Depends: ${misc:Depends}, ruby1.8, liberubis-ruby1.8, libjson-ruby1.8, libextlib-ruby1.8 (>= 0.9.13), ohai (>= 0.4.0), libchef-ruby1.8 (= ${source:Version}), libopenssl-ruby1.8, libmixlib-authentication-ruby1.8 (>= 1.1.0), ucf
Recommends: irb1.8
Description: system integration framework - client and solo binaries
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
This package contains the chef-client and chef-solo binaries and associated
files.
Package: chef-solr
Architecture: all
Depends: ${misc:Depends}, ruby1.8, rabbitmq-server (>= 1.6), default-jre-headless | java6-runtime-headless, libjson-ruby1.8, libchef-ruby1.8 (= ${source:Version}), solr-jetty (>=1.4.0), libxml-ruby1.8, adduser, ucf
Suggests: chef (= ${source:Version})
Replaces: chef-indexer
Conflicts: chef-indexer
Description: system integration framework - search indexes management
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
The chef indexer listens to a message queue via AMQP for changes to search
indexes. It then either creates or deletes entries in the index according
to the information it is passed.
.
This package provides the chef-solr search engine which runs as a solr-jetty
server, and chef-solr-indexer that talks to the AMQP message queue, by
default rabbitmq-server.
Package: chef-server
Architecture: all
Depends: ${misc:Depends}, ruby, merb-slices, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, chef-server-api (= ${source:Version}), chef-solr (= ${source:Version}), thin, libjson-ruby, libchef-ruby (= ${source:Version}), libuuidtools-ruby1.8, adduser, libjs-jquery (>= 1.3.2), ucf
Recommends: chef (= ${source:Version})
Suggests: nginx, apache2, rake, chef-server-webui (=${source:Version})
Description: system integration framework - centralized server
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
The Chef Server is a Merb application that provides centralized storage and
distribution for recipes stored in "cookbooks," management and authentication
of client nodes and node data, and search indexes for that data.
.
The chef-server package provides a merb binary wrapper that loads up the
chef-server-api application.
.
This package contains the chef-server Merb application and associated files.
Package: chef-server-api
Architecture: all
Depends: ${misc:Depends}, ruby, merb-slices, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, rabbitmq-server (>= 1.6), couchdb (>= 0.9.1), thin, libjson-ruby, libchef-ruby (= ${source:Version})
Recommends: chef (= ${source:Version})
Replaces: chef-server-slice
Conflicts: chef-server-slice
Description: system integration framework - server API for clients
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
The Chef Server is a Merb application that provides centralized storage and
distribution for recipes stored in "cookbooks," management and authentication
of client nodes and node data, and search indexes for that data.
.
The chef-server-api package provides the API for the Chef Server so
clients can connect and is started with the chef-server program.
.
This package contains the Merb slice for the chef-server-api.
Package: chef-server-webui
Architecture: all
Depends: ${misc:Depends}, ruby, merb-slices, libmerb-param-protection-ruby, libmerb-assets-ruby, libmerb-haml-ruby, libmerb-helpers-ruby, thin, libopenid-ruby, libjson-ruby, libchef-ruby (= ${source:Version}), libcoderay-ruby, chef-server (= ${source:Version}), adduser, libjs-jquery-ui (>= 1.7.1), ucf
Suggests: chef (= ${source:Version}), apache2, nginx
Conflicts: chef-server-slice
Description: system integration framework - web interface
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
The Chef Server WebUI is a Merb application that accesses the Chef Server API
directly to provide an easy to use interface for managing Chef clients and
Chef server data.
.
This package contains the Merb slice and assets for the chef-server-webui.
Package: libchef-ruby
Architecture: all
Depends: ${misc:Depends}, ruby, libchef-ruby1.8 (= ${source:Version})
Description: system integration framework - Ruby libraries
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
As a library, Chef allows administrators to easily tie various infrastructure
components together.
.
This package is a dependency package, which depends on the package
containing actual chef libraries for the default Ruby version
(currently 1.8).
Package: libchef-ruby1.8
Architecture: all
Depends: ${misc:Depends}, ruby1.8, libopenssl-ruby1.8, libmixlib-authentication-ruby1.8 (>= 1.1.0), libmixlib-cli-ruby1.8 (>= 1.1.0), libmixlib-config-ruby1.8 (>= 1.1.0), libmixlib-log-ruby1.8 (>= 1.1.0), libohai-ruby1.8 (>= 0.4.0), libmoneta-ruby1.8, libbunny-ruby1.8
Recommends: ohai (>= 0.4.0), chef (= ${source:Version}), rubygems1.8
Suggests: rake, libshadow-ruby1.8
Description: system integration framework - Ruby 1.8 libraries
Chef is a systems integration framework and configuration management library
written in Ruby. Chef provides a Ruby library and API that can be used to
bring the benefits of configuration management to an entire infrastructure.
.
Chef can be run as a client (chef-client) to a server, or as a standalone
tool (chef-solo). Configuration recipes are written in a pure Ruby
domain-specific language.
.
As a library, Chef allows administrators to easily tie various infrastructure
components together.
.
This package contains chef libraries for Ruby 1.8.
Reply to: