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

RSS

rippled (7) Versions 0.5.0

Compiles, installs and configures rippled, a ripple network daemon

Berkshelf/Librarian
Policyfile
Knife
cookbook 'rippled', '~> 0.5.0'
cookbook 'rippled', '~> 0.5.0', :supermarket
knife cookbook site install rippled
knife cookbook site download rippled
README
Dependencies
Quality 44%

Rippled Cookbook

Overview

This cookbook compiles and installs a Ripple node (version 0.30.1-hf2). At the time of writing Ripple Labs does not provide a precompiled package for the most recent release, therefore the only installation method available is via sources.

The cookbook generally follows instructions published at here with the following improvements: - allow to bind on privileged ports - customized init.d script based on one from Ripple Labs provided ubuntu package

Attributes

Please refer to rippled example configuration in sources for the full list of settings souces.

All attributes within node["rippled"]["config"] will be converted to the content of rippled.cfg. A key from node["rippled"]["config"][key] becomes a section. A corresponding value might be a string (converts to a single string in the section), an array (each element goes as a string in the section), a map (converts to a list of key=value strings), nil (to suppress default attributes, the section is not created then). It is clear from examples:

An array

node["rippled"]["config"]["server"] = ["port_rpc_admin_local", "port_peer", "port_ws_admin_local"]

becomes a section (mind server -> [server] transformation done by the recipe)

[server]
port_rpc_admin_local
port_peer
port_ws_admin_local

A single value

node["rippled"]["config"]["node_size"] = "medium"

becomes a section

[node_size]
medium

A map

node["rippled"]["config"]["port_peer"] = {
    "port" => "51235",
        "ip" => "0.0.0.0",
        "protocol" => "peer"
}

becomes a section

[port_peer]
port=51235
ip=0.0.0.0
protocol=peer

A nil

node["rippled"]["config"]["port_ws_admin_local"] = nil

removes port_ws_admin_local section

Generally speaking, sections of rippled.cfg contain lines with either values or key-value pairs. The only mix is [server] and putting a key-value there is syntax sugar and thus can be easily avoided. If you still need a mix, you can use the following construction

default["rippled"]["config"]["server"] = ["port_rpc_admin_local", "#port_ws_public", "ssl_key = /etc/ssl/private/server.key", "ssl_cert = /etc/ssl/certs/server.crt"]

The default attributes merely repeat default rippled configuration from souces. For better version tracking a copy of this example used to derive the attributes is saved in this cookbook at materials/rippled-example.cfg

If the following paths are specified (explicitly or with default values), the recipe will create corresponding folders for under node['rippled']['user'] ownership:

  • ["rippled"]["config"]["node_db"]["path"]
  • ["rippled"]["config"]["database_path"]
  • ["rippled"]["rippled"]["config"]["debug_logfile"]

All other attributes are listed below.

Attribute Description Default
node['rippled']['git_repository'] Git repository of rippled sources https://github.com/ripple/rippled.git
node['rippled']['git_revision'] Git revision to check out 0.30.1-hf2
node['rippled']['run_tests'] Run internal tests, true or false true
node['rippled']['cmd_params'] Additional command line parameters to the daemon (*) --net
node['rippled']['config'] Content of rippled.cfg (described above) identical to rippled-example.cfg
node['rippled']['user'] User to run the daemon rippled
node['rippled']['group'] Group to create for the User rippled
node['rippled']['pid_path'] Path to pid-file /var/run/rippled.pid
node['rippled']['binary_path'] Where to install the executable /usr/bin/rippled
node['rippled']['config_path'] Where to install the config pid-file /etc/rippled/rippled.cfg

(*) Do not add --conf or --fg here, neither add parameters that will cause the daemon to exit (like --help)

Supported Platforms

  • Ubuntu 14.04

Known issues

  • You need at least 16G memory to compile rippled. If memory is insufficient, g++ fails with an internal error. See .kitchen.yml
  • service status rippled fails from non-privileged user because cannot read the config file. The file might have validation keys and thus restricted on purpose. If this issue bothers anybody, permissions shall be made configurable via chef attributes.

rippled versions, cookbook versioning

This cookbook follows semantic versioning.

Here is how to update the cookbook for a newer rippled version. - Copy rippled/doc/rippled-example.cfg to materials/rippled.cfg - If any any default configs are changed, added or removed, reflect it in ["rippled"]["config"] attributes - Bump rippled version in ["rippled"]["git_revision"] attribute and in this README - Bump cookbook version (since we alter the default value for git_revision, it is a breaking change) - Update changelog - Build locally kitchen converge (clean kitchen destroy) - Publish knife cookbook site share rippled Other -VV - Commit and tag in github

Recipes

  • rippled::default Builds the rippled from source, configures, installs and runs.

License and Author

Author: Dmitry Grigorenko (grigorenko.d@gmail.com)
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.

Changelog

v0.5.0, February 29, 2016

  • Bump rippled version to 0.30.1-hf2

v0.4.0, February 14, 2016

  • Bump rippled version to 0.30.1-hf1
  • Move to g++-5
  • Fix documentation

v0.3.0, November 27, 2015

  • Bump rippled version to 0.30.0-hf1
  • Fix documentation

Dependent cookbooks

apt >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

Collaborator Number Metric
            

0.5.0 failed this metric

Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Contributing File Metric
            

0.5.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
            

0.5.0 failed this metric

FC064: Ensure issues_url is set in metadata: rippled/metadata.rb:1
FC065: Ensure source_url is set in metadata: rippled/metadata.rb:1
FC066: Ensure chef_version is set in metadata: rippled/metadata.rb:1
FC069: Ensure standardized license defined in metadata: rippled/metadata.rb:1
Run with Foodcritic Version 12.2.1 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

License Metric
            

0.5.0 failed this metric

rippled does not have a valid open source license.
Acceptable licenses include Apache-2.0, apachev2, Apache 2.0, MIT, mit, GPL-2.0, gplv2, GNU Public License 2.0, GPL-3.0, gplv3, GNU Public License 3.0.

No Binaries Metric
            

0.5.0 passed this metric

Publish Metric
            

0.5.0 passed this metric

Supported Platforms Metric
            

0.5.0 passed this metric

Testing File Metric
            

0.5.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
            

0.5.0 passed this metric