Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


postfix (51) Versions 1.0.0

Installs and configures postfix for client or outbound relayhost, or to do SASL auth

cookbook 'postfix', '= 1.0.0', :supermarket
cookbook 'postfix', '= 1.0.0'
knife supermarket install postfix
knife supermarket download postfix
Quality -%


Installs and configures postfix for client or outbound relayhost, or
to do SASL authentication.

On RHEL-family systems, sendmail will be replaced with postfix.



  • Ubuntu 10.04+
  • Debian 6.0+
  • RHEL/CentOS/Scientific 5.7+, 6.2+
  • Amazon Linux (as of 4/9/2012)


See attributes/default.rb for default values.

  • node['postfix']['mail_type'] - Sets the kind of mail configuration. master will set up a server (relayhost).
  • node['postfix']['myhostname'] - corresponds to the myhostname option in /etc/postfix/
  • node['postfix']['mydomain'] - corresponds to the mydomain option in /etc/postfix/
  • node['postfix']['myorigin'] - corresponds to the myorigin option in /etc/postfix/
  • node['postfix']['relayhost'] - corresponds to the relayhost option in /etc/postfix/
  • node['postfix']['mail_relay_networks'] - corresponds to the mynetworks option in /etc/postfix/
  • node['postfix']['smtpd_use_tls'] - set to "yes" to use TLS for SMTPD, which will use the snakeoil certs.
  • node['postfix']['smtp_sasl_auth_enable'] - set to "yes" to enable SASL authentication for SMTP.
  • node['postfix']['smtp_sasl_password_maps'] - corresponds to the smtp_sasl_password_maps option in /etc/postfix/
  • node['postfix']['smtp_sasl_security_options'] - corresponds to the smtp_sasl_security_options option in /etc/postfix/
  • node['postfix']['smtp_tls_cafile'] - corresponds to the smtp_tls_CAfile option in /etc/postfix/
  • node['postfix']['smtp_use_tls'] - corresponds to the smtp_use_tls option in /etc/postfix/
  • node['postfix']['smtp_sasl_user_name'] - mapped in the sasl_passwd file as the user to authenticate as.
  • node['postfix']['smtp_sasl_passwd'] - mapped in the sasl_passwd file as the password to use.
  • node['postfix']['aliases'] - hash of aliases to create with recipe[postfix::aliases], see below under Recipes for more information.



Installs the postfix package and manages the service and the main
configuration files (/etc/postfix/ and
/etc/postfix/ See Usage and Examples to see how
to affect behavior of this recipe through configuration.


Sets up the system to authenticate with a remote mail relay using SASL


Manage /etc/aliases with this recipe. Currently only Ubuntu 10.04
platform has a template for the aliases file. Add your aliases
template to the templates/default or to the appropriate
platform+version directory per the File Specificity rules for
templates. Then specify a hash of aliases for the
node['postfix']['aliases'] attribute.


On systems that should simply send mail directly to a relay, or out to
the internet, use recipe[postfix] and modify the
node['postfix']['relayhost'] attribute via a role.

On systems that should be the MX for a domain, set the attributes
accordingly and make sure the node['postfix']['mail_type'] attribute
is master.

If you need to use SASL authentication to send mail through your ISP
(such as on a home network), use recipe[postfix::sasl_auth] and set
the appropriate attributes.

For each of these implementations, see Examples for role usage.


The example roles below only have the relevant postfix usage. You may
have other contents depending on what you're configuring on your

The base role is applied to all nodes in the environment.

name "base"
  "postfix" => {
    "mail_type" => "client",
    "mydomain" => "",
    "myorigin" => "",
    "relayhost" => "[]",
    "smtp_use_tls" => "no"

The relayhost role is applied to the nodes that are relayhosts.
Often this is 2 systems using a CNAME of

name "relayhost"
  "postfix" => {
    "mail_relay_networks" => "",
    "mail_type" => "master",
    "mydomain" => "",
    "myorigin" => ""

The sasl_relayhost role is applied to the nodes that are relayhosts
and require authenticating with SASL. For example this might be on a
household network with an ISP that otherwise blocks direct internet
access to SMTP.

name "sasl_relayhost"
run_list("recipe[postfix], recipe[postfix::sasl_auth]")
  "postfix" => {
    "mail_relay_networks" => "",
    "mail_type" => "master",
    "mydomain" => "",
    "myorigin" => "",
    "relayhost" => "[]:587",
    "smtp_sasl_auth_enable" => "yes",
    "smtp_sasl_passwd" => "your_password",
    "smtp_sasl_user_name" => "your_username"

For an example of using encrypted data bags to encrypt the SASL
password, see the following blog post:

License and Author

Author:: Joshua Timberman

Copyright:: 2009-2011, Opscode, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

backuppc-server Applicable Versions
base_install Applicable Versions
cloudbees-cjp-ha Applicable Versions
cronapt Applicable Versions
mailcatcher-ng Applicable Versions
mw_server_base Applicable Versions
noosfero Applicable Versions
notifier Applicable Versions
owncloud Applicable Versions
paramount Applicable Versions
pennyworth Applicable Versions
platformstack Applicable Versions
postfix-dkim Applicable Versions
q2a Applicable Versions
rkhunter Applicable Versions
sanity Applicable Versions
ut_base Applicable Versions
zammad Applicable Versions
zarafa Applicable Versions
zeyple Applicable Versions

No quality metric results found