cookbook 'postfixadmin', '~> 3.0.0'
postfixadmin (16) Versions 3.0.0 Follow2
Installs and configures PostfixAdmin, a web based interface used to manage mailboxes, virtual domains and aliases.
cookbook 'postfixadmin', '~> 3.0.0', :supermarket
knife supermarket install postfixadmin
knife supermarket download postfixadmin
PostfixAdmin Cookbook
Installs and configures PostfixAdmin, a web based interface used to manage mailboxes, virtual domains and aliases.
Also creates the required MySQL or PostgreSQL database and tables.
Table of Contents
- Requirements
- Generated Passwords
- Attributes
- Recipes
- Resources
- Usage Example
- PostgreSQL Support
- Deploy with Docker
- Testing
- Contributing
- TODO
- License and Author
Requirements
Please, if you want to upgrade the postfixadmin
cookbook version from the 1.x
branch, see the CHANGELOG.
Supported Platforms
This cookbook has been tested on the following platforms:
- Amazon Linux
- CentOS
- Debian
- Fedora
- Ubuntu
Please, let us know if you use it successfully on any other platform.
Required Cookbooks
- apache2
- ark
- database
- encrypted_attributes
- mysql
- chef_nginx
- compat_resource
- openssl
- php
- php-fpm
- postgresql
- ssl_certificate
- yum-epel
Required Applications
- Chef
12.5
or higher. - Ruby
2.2
or higher.
Only Postfix Admin version 3
or higher is supported by this cookbook. For older versions, use cookbook versions < 3
.
Other Requirements
On RedHat based platforms, you need to disable or configure SELinux correctly to work with mysql
cookbook. You can use the selinux::disabled
recipe for that.
Generated Passwords
The first time it runs, automatically generates some passwords if not specified. Generated passwords are:
From the PostfixAdmin Default Recipe
postfixadmin/setup_password
postfixadmin/setup_password_salt
postfixadmin/setup_password_encrypted
postfixadmin/database/password
When MySQL Is Used
postfixadmin/mysql/server_root_password
When PostgreSQL Is Used
postgresql/password/postgres
Attributes
Attribute | Default | Description |
---|---|---|
node['postfixadmin']['version'] |
'3.0.2' |
PostfixAdmin version |
node['postfixadmin']['url'] |
calculated | PostfixAdmin download URL |
node['postfixadmin']['checksum'] |
calculated | PostfixAdmin download file checksum |
node['postfixadmin']['port'] |
calculated | PostfixAdmin listen port |
node['postfixadmin']['server_name'] |
calculated | PostfixAdmin server name |
node['postfixadmin']['server_aliases'] |
[] |
PostfixAdmin server aliases |
node['postfixadmin']['headers'] |
{} |
PostfixAdmin HTTP headers to set as hash |
node['postfixadmin']['ssl'] |
false |
enables HTTPS (with SSL) |
node['postfixadmin']['encrypt_attributes'] |
false |
Whether to encrypt PostfixAdmin attributes containing credential secrets. |
node['postfixadmin']['setup_password'] |
calculated | PostfixAdmin Setup Password (required for chef-solo) |
node['postfixadmin']['setup_password_salt'] |
calculated | PostfixAdmin password salt (required for chef-solo) |
node['postfixadmin']['web_server'] |
'apache' |
Web server to use: 'apache' , 'nginx' or false
|
node['postfixadmin']['setup_password_encrypted'] |
calculated | PostfixAdmin encrypted Password |
node['postfixadmin']['database']['manage'] |
calculated | Whether to manage database creation. |
node['postfixadmin']['database']['type'] |
'mysql' |
PostfixAdmin database type. Possible values are: 'mysql' , 'postgresql' (Please, see [below](#postgresql-support)<a></a>)
|
node['postfixadmin']['database']['name'] |
'postfix' |
PostfixAdmin database name |
node['postfixadmin']['database']['host'] |
'127.0.0.1' |
PostfixAdmin database hostname or IP address |
node['postfixadmin']['database']['user'] |
'postfix' |
PostfixAdmin database login username |
node['postfixadmin']['database']['password'] |
calculated | PostfixAdmin database login password (requried for chef-solo) |
node['postfixadmin']['mysql']['instance'] |
'default' |
PostfixAdmin MySQL instance name to run by the mysql_service LWRP from the mysql cookbook |
node['postfixadmin']['mysql']['data_dir'] |
calculated | PostfixAdmin MySQL data files path |
node['postfixadmin']['mysql']['port'] |
'3306' |
PostfixAdmin MySQL port |
node['postfixadmin']['mysql']['run_group'] |
calculated | PostfixAdmin MySQL system group |
node['postfixadmin']['mysql']['run_user'] |
calculated | PostfixAdmin MySQL system user |
node['postfixadmin']['mysql']['version'] |
calculated | PostfixAdmin database MySQL version to install |
node['postfixadmin']['conf']['encrypt'] |
'md5crypt' |
The way do you want the passwords to be crypted |
node['postfixadmin']['conf']['domain_path'] |
'YES' |
Whether you want to store the mailboxes per domain |
node['postfixadmin']['conf']['domain_in_mailbox'] |
'NO' |
Whether you want to have the domain in your mailbox |
node['postfixadmin']['conf']['fetchmail'] |
'NO' |
Whether you want fetchmail tab |
node['postfixadmin']['packages']['requirements'] |
calculated | PostfixAdmin required packages array |
node['postfixadmin']['packages']['mysql'] |
calculated | PostfixAdmin required packages array for MySQL support |
node['postfixadmin']['packages']['postgresql'] |
calculated | PostfixAdmin required packages array for PostgreSQL support |
node['boxbilling']['mysql']['server_root_password'] |
calculated | PostfixAdmin MySQL root password. |
node['postfixadmin']['map_files']['path'] |
'/etc/postfix/tables' |
Path to generate map-files into |
node['postfixadmin']['map_files']['mode'] |
00640 |
Map-files file-mode bits |
node['postfixadmin']['map_files']['owner'] |
'root' |
Map-files files owner |
node['postfixadmin']['map_files']['group'] |
'postfix' |
Map-files files group |
node['postfixadmin']['map_files']['list'] |
calculated | An array with map file names to generate |
node['postfixadmin']['php-fpm']['pool'] |
'postfixadmin' |
PHP-FPM pool name to use with PostfixAdmin. |
The HTTPS Certificate
This cookbook uses the ssl_certificate
cookbook to create the HTTPS certificate. The namespace used is node['postfixadmin']
. For example:
node.default['postfixadmin']['common_name'] = 'postfixadmin.example.com' include_recipe 'postfixadmin'
See the ssl_certificate
namespace documentation for more information.
Encrypted Attributes
This cookbook can use the encrypted_attributes cookbook to encrypt the secrets generated during the Chef Run. This feature is disabled by default, but can be enabled setting the node['postfixadmin']['encrypt_attributes']
attribute to true
. For example:
include_recipe 'encrypted_attributes::users_data_bag' node.default['postfixadmin']['encrypt_attributes'] = true inclure_recipe 'postfixadmin'
This will create the following encrypted attributes:
-
node['postfixadmin']['setup_password']
: PostfixAdmin setup.php setup password. -
node['postfixadmin']['setup_password_encrypted']
: PostfixAdmin setup.php setup password encrypted with a salt. -
node['postfixadmin']['mysql']['server_root_password']
: MySQL root user password. -
node['postfixadmin']['database']['password']
: MySQL PostfixAdmin user password.
Read the chef-encrypted-attributes
gem documentation to learn how to read them.
Warning: When PostgreSQL is used, the database root password will still remain unencrypted in the node['postgresql']['password']['postgres']
attribute due to limitations of the postgresql cookbook.
Recipes
postfixadmin::default
Installs and configures PostfixAdmin.
postfixadmin::map_files
Installs PostfixAdmin SQL map files to be used by Postfix.
postfixadmin::mysql
Installs MySQL server for PostfixAdmin.
postfixadmin::postgresql
Installs PostgreSQL server for PostfixAdmin.
Resources
postfixadmin_admin[user]
Create or delete a PostfixAdmin admin user.
This kind of user is used to create the domains and mailboxes, and must be used before any other resource from this cookbook.
postfixadmin_admin Actions
-
create
: Create a PostfixAdmin admin user (default). -
delete
: Remove a PostfixAdmin admin user.
postfixadmin_admin Properties
Property | Default | Description |
---|---|---|
user | name attribute | Username |
password | required | Password |
setup_password | calculated | PostfixAdmin Setup Password |
superadmin | true |
Whether it has access to all domains |
domains | [] |
List of domains it has access to |
active | true |
Active status |
login_username | optional | Admin user to use for its creation |
login_password | optional | Admin password to use for its creation |
ssl | node['postfixadmin']['ssl'] |
Whether to use SSL on HTTP requests |
If you don't provide login_username
, it will use the setup.php to create the admin. Usually this is used only to create the first administrator.
postfixadmin_admin Example
postfixadmin_admin 'admin@admindomain.com' do password 'sup3r-s3cr3t-p4ss' action :create end postfixadmin_admin 'secondadmin@admindomain.com' do password '4n0th3r-p4ss' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end
postfixadmin_domain[domain]
Create or delete a domain.
postfixadmin_domain Actions
create
delete
postfixadmin_domain Properties
Property | Default | Description |
---|---|---|
domain | name attribute | Domain name |
description | '' |
Domain description |
aliases | 10 |
Maximum number of aliases |
mailboxes | 10 |
Maximum number of mailboxes |
active | true |
Active status |
default_aliases | false |
Whether to include default aliases |
login_username | required | Admin user to use |
login_password | required | Admin password |
ssl | node['postfixadmin']['ssl'] |
Whether to use SSL on HTTP requests |
postfixadmin_domain Example
# admin user copied from the previous example postfixadmin_domain 'foobar.com' do login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end
postfixadmin_mailbox[mailbox]
Create or delete a mailbox.
postfixadmin_mailbox Actions
create
delete
postfixadmin_mailbox Properties
Property | Default | Description |
---|---|---|
mailbox | name attribute | Mailbox address to create |
password | required | Mailbox password |
name | '' |
The name of the mailbox owner |
active | true |
Active status |
false |
Whether to send a welcome email | |
login_username | required | Admin user to use |
login_password | required | Admin password |
ssl | node['postfixadmin']['ssl'] |
Whether to use SSL on HTTP requests |
postfixadmin_mailbox Example
# admin user copied from the previous example postfixadmin_mailbox 'bob@foobar.com' do password 'alice' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end
postfixadmin_alias[address]
Create or delete a mailbox alias.
postfixadmin_alias Actions
create
delete
postfixadmin_alias Properties
Property | Default | Description |
---|---|---|
address | name attribute | Alias address |
goto | required | Destination mailbox address |
active | true |
Active status |
login_username | required | Admin user to use |
login_password | required | Admin password |
ssl | node['postfixadmin']['ssl'] |
Whether to use SSL on HTTP requests |
postfixadmin_alias Example
# admin user copied from the previous example postfixadmin_alias 'billing@foobar.com' do goto 'bob@foobar.com' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end
postfixadmin_alias_domain[address]
Create or remote a domain alias.
The domain name used as alias_domain
must already exist: in other words, it needs to be created previously with postfixadmin_domain
resource.
postfixadmin_alias_domain Actions
create
delete
postfixadmin_alias_domain Properties
Property | Default | Description |
---|---|---|
alias_domain | name attribute | Alias domain |
target_domain | required | Target domain |
active | true |
Active status |
login_username | required | Admin user to use |
login_password | required | Admin password |
ssl | node['postfixadmin']['ssl'] |
Whether to use SSL on HTTP requests |
postfixadmin_alias_domain Example
# admin user copied from the previous example postfixadmin_alias_domain 'aliasdomain.com' do target_domain 'foobar.com' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end
Usage Example
Including in a Cookbook Recipe
A complete example:
include_recipe 'postfixadmin::default' include_recipe 'postfixadmin::map_files' # or include them in your run-list postfixadmin_admin 'admin@admindomain.com' do password 'sup3r-s3cr3t-p4ss' action :create end postfixadmin_domain 'foobar.com' do login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end postfixadmin_mailbox 'bob@foobar.com' do password 'alice' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end postfixadmin_alias 'billing@foobar.com' do goto 'bob@foobar.com' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end postfixadmin_domain 'aliasdomain.com' do login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end postfixadmin_alias_domain 'aliasdomain.com' do target_domain 'foobar.com' login_username 'admin@admindomain.com' login_password 'sup3r-s3cr3t-p4ss' end
Don't forget to include the postfixadmin
cookbook as a dependency in the metadata.
# metadata.rb # [...] depends 'postfixadmin'
Including in the Run List
Another alternative is to include the recipes in your Run List.
{ "name": "mail.example.com", "[...]": "[...]" "run_list": [ "[...]": "[...]", "recipe[postfixadmin]", "recipe[postfixadmin::map_files]" ] }
PostgreSQL Support
PostfixAdmin with PostgreSQL may not work properly on some platforms: See for example postgresql
cookbook issue #249. Any feedback you can provide regarding the PostgreSQL support will be greatly appreciated.
PostgreSQL Versions < 9.3
If you are using PostgreSQL version < 9.3
, you may need to adjust the shmmax
and shmall
kernel parameters to configure the shared memory. You can see the example used for the integration tests.
Deploy with Docker
You can use the Dockerfile included in the cookbook source code to run the cookbook inside a container:
$ docker build -t chef-postfixadmin .
$ docker run -d -p 8080:80 chef-postfixadmin
The sample Dockerfile:
FROM zuazo/chef-local:debian-7 COPY . /tmp/postfixadmin RUN berks vendor -b /tmp/postfixadmin/Berksfile $COOKBOOK_PATH RUN chef-client -r "recipe[apt],recipe[postfixadmin]" CMD ["apache2", "-D", "FOREGROUND"]
See the chef-local container documentation for more examples.
Testing
See TESTING.md.
ChefSpec Matchers
postfixadmin_admin(user)
Helper method for locating a postfixadmin_admin
resource in the collection.
resource = chef_run.postfixadmin_admin(user) expect(resource).to notify('service[apache2]').to(:reload)
create_postfixadmin_admin(user)
Assert that the Chef Run creates a PostfixAdmin admin user.
expect(chef_run).to create_postfixadmin_admin(user)
delete_postfixadmin_admin(path)
Assert that the Chef Run deletes a PostfixAdmin admin user.
expect(chef_run).to delete_postfixadmin_admin(user)
postfixadmin_alias(address)
Helper method for locating a postfixadmin_alias
resource in the collection.
resource = chef_run.postfixadmin_alias(address) expect(resource).to notify('service[apache2]').to(:reload)
create_postfixadmin_alias(address)
Assert that the Chef Run creates a PostfixAdmin alias.
expect(chef_run).to create_postfixadmin_alias(address)
delete_postfixadmin_alias(address)
Assert that the Chef Run deletes a PostfixAdmin alias.
expect(chef_run).to delete_postfixadmin_alias(address)
postfixadmin_alias_domain(alias_domain)
Helper method for locating a postfixadmin_alias_domain
resource in the collection.
resource = chef_run.postfixadmin_alias_domain(alias_domain) expect(resource).to notify('service[apache2]').to(:reload)
create_postfixadmin_alias_domain(alias_domain)
Assert that the Chef Run creates a PostfixAdmin alias domain.
expect(chef_run).to create_postfixadmin_alias_domain(alias_domain)
delete_postfixadmin_alias_domain(alias_domain)
Assert that the Chef Run deletes a PostfixAdmin alias domain.
expect(chef_run).to delete_postfixadmin_alias_domain(alias_domain)
postfixadmin_domain(domain)
Helper method for locating a postfixadmin_domain
resource in the collection.
resource = chef_run.postfixadmin_domain(domain) expect(resource).to notify('service[apache2]').to(:reload)
create_postfixadmin_domain(domain)
Assert that the Chef Run creates a PostfixAdmin domain.
expect(chef_run).to create_postfixadmin_domain(domain)
delete_postfixadmin_domain(domain)
Assert that the Chef Run deletes a PostfixAdmin domain.
expect(chef_run).to delete_postfixadmin_domain(domain)
postfixadmin_mailbox(mailbox)
Helper method for locating a postfixadmin_mailbox
resource in the collection.
resource = chef_run.postfixadmin_domain(mailbox) expect(resource).to notify('service[apache2]').to(:reload)
create_postfixadmin_mailbox(mailbox)
Assert that the Chef Run creates a PostfixAdmin mailbox.
expect(chef_run).to create_postfixadmin_mailbox(mailbox)
delete_postfixadmin_mailbox(domain)
Assert that the Chef Run deletes a PostfixAdmin mailbox.
expect(chef_run).to delete_postfixadmin_mailbox(mailbox)
Contributing
Please do not hesitate to open an issue with any questions or problems.
See CONTRIBUTING.md.
TODO
See TODO.md.
License and Author
Author: | Xabier de Zuazo (xabier@zuazo.org) |
Contributor: | chrludwig |
Contributor: | MATSUI Shinsuke (poppen) |
Contributor: | Brian Racer |
Contributor: | Bernhard Weisshuhn (a.k.a. bernhorst) |
Copyright: | Copyright (c) 2015, Xabier de Zuazo |
Copyright: | Copyright (c) 2014-2015, Onddo Labs, SL. |
License: | Apache License, Version 2.0 |
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
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dependent cookbooks
Contingent cookbooks
Change Log
All notable changes to the postfixadmin
cookbook will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
3.0.0 - 2017-03-11
Added
- Add
:active
and:default_aliases
properties to domain resource. - Add
:delete
action to resources. - metadata: Add
chef_version
. - Mark credentials as sensitive.
Changed
- Update to install PostfixAdmin
3
. - Use
chef_nginx
cookbook instead of the oldnginx
. - Update some cookbook versions:
-
mysql
from6
to8
. -
ark
from0.9
to2.2
. -
database
from4
to6
. -
php
from1.5
to2
. -
postgresql
from3.4
to6
. -
ssl_certificate
from1.1
to2
.
-
- Some LWRPs simplified: avoid making a DB connection.
- Use
Integer
instead ofFixnum
. - Fix all RuboCop and foodcritic offenses.
- Replace old LWRPs with Custom Resources.
- Update
openssl
cookbook password generation logic. - Remove DB library completely, only use HTTP connections in the resources.
- Move libraries to
PostfixadminCookbook
namespace. - CHANGELOG: Follow "Keep a CHANGELOG".
Removed
- Drop Ruby
< 2.2
support. - Drop Chef
< 12.5
support. - Drop PostfixAdmin
2
installation support. - Remove old
nginx
cookbook usage. - Metadata: Remove grouping (RFC-85).
- README: Remove documentation about locale (old).
Fixed
- Always restart apache: improve Debian/Ubuntu support.
- Fix
postgresql_database_user[postfixadmin]
resource duplication. - Fix Ubuntu
16.04
support. - Fix
apache2
cookbook version3.2
compatibility (issues #9 and #10, thanks Mauro Destro and Eric Blevins for reporting). - Fix Chef
13
deprecation warnings. - CHANGELOG: Fix capitals.
2.1.0 - 2015-08-21
Added
- Add
node['postfixadmin']['database']['manage']
attribute. - metadata: Add
source_url
andissues_url
. - Generate URL dynamically using the version value.
- Add Debian
8
and Ubuntu15.04
support.
Fixed
- Fix session_start error on CentOS.
- Fix
postfixadmin_admin#password
: it is not an encrypted attribute (issue #6, thanks Eric Blevins for reporting).
Changed
- Update RuboCop to
0.33.0
. - Update chef links to use chef.io domain.
- Update contact information and links after migration.
- README:
- Use markdown tables.
- Put the cookbook name in the title.
2.0.0 - 2015-05-09
Changed
- Update the cookbook and the dependencies (breaking change):
- Update
mysql
cookbook to version6
. - Update
database
cookbook to version4
. - Update resources to use
mysql2
gem. - Improve nginx support:
- Restart nginx and php-fpm on first run for LWRP to work properly.
- Fix php-fpm support on Ubuntu
10
.
- Update RuboCop to
0.30.1
.
Upgrading from a 1.x.y
Cookbook Release
- Note:* Please do this with caution. Make a full backup before upgrading.
If you want to upgrade the cookbook [ersion from a 1.x
release, you should change the MySQL data directory path to the old one] - or migrate the database by hand:
node.default['postfixadmin']['mysql']['data_dir'] = '/var/lib/mysql' # [...] include_recipe 'postfixadmin'
1.4.2 - 2015-05-07
Fixed
- Mailbox resource: Fix name attribute to be a string.
1.4.1 - 2015-05-06
Fixed
- Monkey patch the
MysqlClient#version
method missing error.
1.4.0 - 2015-02-13
- Fix disabling nginx default site.
- Remove
ssl_ca
param fromweb_app
template. - Include specific helpers instead of
"database::#{type}"
(issue #5, thanks Bernhard Weisshuhn (a.k.a. bernhorst)).- Fixes
database
cookbook version4
support.
- Fixes
- Run Unit tests against Chef
11
and12
. - Gemfile: Update RuboCop to
0.29.0
.
1.3.0 - 2015-01-05
- Add nginx support.
- Update
ssl_certificate
cookbook to1.1.0
, adds chained certificate support. - metadata: use pessimistic operator for cookbook versions, fixes database version bug.
- Bugfix: include OpenSSL functions in the
::postgresql
recipe. - Berksfile: Use ark stable version for tests.
- Unit Tests: Update to use
ChefSpec::ServerRunner
. - Fix Serverspec integration tests.
- travis.yml: Use the new build env.
- Gemfile:
- Use foodcritic and RuboCop fixed versions.
- Update to RuboCop
0.28.0
. - Update vagrant-wrapper to
2
.
- README:
- Move the test matchers documentation to the README.
- Add TOC.
- s/Attribute/Parameter/ for resources.
- TODO: add mysql cookbook update task.
1.2.0 - 2014-11-09
- ChefSpec matchers: added helper methods to locate LWRP resources.
-
PostfixAdmin::DB
: allowdb
instance attribute to be readable. - Fix providers and map files password decryption with encrypted attributes enabled.
- Fix new RuboCop offense.
- Tests integrated with
should_not
gem. - Update tests to work with Serverspec 2, includes Gemfile.
- Berksfile, Rakefile and Guarfile, generic templates copied.
- Enable ChefSpec coverage.
- TODO.md: Add some tasks.
- Homogenize license headers.
1.1.0 - 2014-10-03
- Added depends
mysql
cookbook~> 5.0
. - Include PHP recipe to fix Fedora support.
- Added LICENSE file.
- travis.yml: exclude some groups from bundle install.
- Gemfile:
- Replaced
vagrant
git byvagrant-wrapper
. - Berkshelf updated to
3.1
.
- Replaced
- Rakefile: require kitchen inside integration task.
- Guardfile added.
- Vagrantfile updated to work properly and documented in TESTING.
- PostgreSQL support improved and documented.
- Added Serverspec tests.
- Set
PATH
for bats integration tests to avoid$LSOF
monkey-patch. - Some integration tests improved.
1.0.1 - 2014-09-14
- Do not include
mysql::server
recipe. - Added MySQL attributes documentation.
- PostgreSQL password generation moved to
recipe::postgresql
. - README: generated password documentation fixed.
- Added Fedora and Amazon Linux support.
1.0.0 - 2014-09-14
- Fixed Apache
2.4
support. - FC001: Use strings in preference to symbols to access node attributes.
- FC023: Prefer conditional attributes.
- kitchen.yml: updated, some syntax improvements, added apt to the run list.
- kitchen.yml: added hostname and forwarded ports.
- Added .kitchen.cloud.yml file.
- test/kitchen/cookbooks directory moved to test/cookbooks.
- Gemfile updated and improved.
- Added a TODO file.
- Integrated with
ssl_certificate
cookbook and some related improvements:- Update Warning: This update will cause the self-signed certificate to be regenerated.
- Added
server_aliases
attribute. - Added
headers
attribute. - Fixed SSL support in CentOS.
- Both 80 and 443 ports remain enabled with SSL.
- Update Warning: Log files path changed from postfix_access.log and postfix_ssl_access.log to postfix-access.log and postfix-ssl-access.log (the same applies applies to error logs).
- Replaced
return
s in providers bynext
s. - Fixed apache restart for LWRPs.
-
web_app-postfixadmin-reload
resource for LWRPs after VirtualHost creation. - All RuboCop offenses fixed, Rakefile added.
- Library methods changed from
camelCase
tosnake_case
. -
exists?
library methods renamed toexist?
. - Replaced
Chef::Application.fatal
by exceptions: avoids daemon exit. - Fixed map-files integration tests.
- Library methods changed from
-
PostfixAdmin::MySQL
refactored: removed code duplication and logger configured. -
PostfixAdmin::PHP
code duplication removed. - Added PostgreSQL support (based on @anveo's work, thanks!), including:
-
PostfixAdmin::MySQL
library renamed toPostfixAdmin::DB
. - PostfixAdmin HTML error parsing improved.
- Required packages installation refactored using attributes.
- Fixed config.local.php group value without apache.
-
- All integration tests fixed to pass.
- Added listening port attribute:
- Update Warning: Only one port will be enabled by default at the same time (no more non-SSL + SSL combo).
- Added ChefSpec matchers.
- Added ChefSpec tests.
- Added travis.yml and multiple badges.
- README: updated a paragraph about database support.
- README: separated into multiple files and some titles fixed.
-
recipes::apache
: fixed disablingweb_app[postfixadmin-ssl]
. - Integrated with
encrypted_attributes
cookbook:- FC007: Ensure recipe dependencies are reflected in cookbook metadata.
- attributes: disable
encrypt_attributes
by default.
- Create MySQL database only for localhost.
0.2.0 - 2014-05-24
- Default PostfixAdmin version updated to
2.3.7
. -
server_name
attribute calculated. - README: Added requirements links.
- README: Added Cookbook Badge.
- README: some
alias_domain
titles fixed. - Added
postfixadmin_alias_domain
LWRP. - Added Sererspec tests (issue #4, thanks [MATSUI Shinsuke] - poppen).
- Separate recipe for apache (issue #4, thanks MATSUI Shinsuke (poppen)).
- Gemfile: switch to using the new ersion of vagrant (issue #4, thanks [MATSUI Shinsuke] - poppen).
- kitchen.yml: updated to latest format.
0.1.3 - 2014-03-16
0.1.2 - 2013-11-17
- Fixed compatibility issues with Chef 11.8 (issue #1, thanks mikelococo for reporting).
- LWRPs fixed to notify only when an action is executed.
0.1.1 - 2013-10-28
- metadata: provides without square brackets to avoid CHEF-3976
0.1.0 - 2013-06-11
- Initial release of
postfixadmin
Collaborator Number Metric
3.0.0 failed this metric
Failure: Cookbook has 1 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
3.0.0 failed this metric
FC069: Ensure standardized license defined in metadata: postfixadmin/metadata.rb:1
FC072: Metadata should not contain "attribute" keyword: postfixadmin/metadata.rb:1
FC075: Cookbook uses node.save to save partial node data to the chef-server mid-run: postfixadmin/recipes/postgresql.rb:30
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:50
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:62
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:88
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias.rb:46
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias.rb:64
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias_domain.rb:40
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias_domain.rb:59
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/domain.rb:43
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/domain.rb:63
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/mailbox.rb:48
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/mailbox.rb:67
FC108: Resource should not define a property named 'name': postfixadmin/resources/mailbox.rb:26
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
3.0.0 passed this metric
Testing File Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
3.0.0 failed this metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
3.0.0 failed this metric
FC069: Ensure standardized license defined in metadata: postfixadmin/metadata.rb:1
FC072: Metadata should not contain "attribute" keyword: postfixadmin/metadata.rb:1
FC075: Cookbook uses node.save to save partial node data to the chef-server mid-run: postfixadmin/recipes/postgresql.rb:30
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:50
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:62
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:88
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias.rb:46
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias.rb:64
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias_domain.rb:40
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias_domain.rb:59
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/domain.rb:43
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/domain.rb:63
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/mailbox.rb:48
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/mailbox.rb:67
FC108: Resource should not define a property named 'name': postfixadmin/resources/mailbox.rb:26
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
3.0.0 passed this metric
Testing File Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
3.0.0 failed this metric
FC072: Metadata should not contain "attribute" keyword: postfixadmin/metadata.rb:1
FC075: Cookbook uses node.save to save partial node data to the chef-server mid-run: postfixadmin/recipes/postgresql.rb:30
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:50
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:62
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/admin.rb:88
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias.rb:46
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias.rb:64
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias_domain.rb:40
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/alias_domain.rb:59
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/domain.rb:43
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/domain.rb:63
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/mailbox.rb:48
FC104: Use the :run action in ruby_block instead of :create: postfixadmin/resources/mailbox.rb:67
FC108: Resource should not define a property named 'name': postfixadmin/resources/mailbox.rb:26
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
3.0.0 passed this metric
Testing File Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
3.0.0 failed this metric
3.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number