/corda-ansible-ubuntu

Ansible role to install Corda

Apache License 2.0Apache-2.0

corda-ansible

Description

This role provides a minimal set of steps required to install Corda on a Linux machine (currently tested only with Ubuntu and CentOS) along with all necessary templates and an example inventory file (in the hosts file).

Simple Usage

  • For a sensible scenario install at least 3 Ubuntu 16.04 or CentOS 7 virtual or physical servers. There is a Vagrant example with 3 Ubuntu nodes attached to this repository in (examples/vagrant/ubuntu3nodes).
  • Modify the hosts file and fill it with valid information about city (just for location on a node on network map), legal node name (for network map), email address and node role. This information is going to be used by Ansible to create a valid node.conf file.
  • run ansible-playbook -i hosts corda.yml

Role Variables

All variables are defined in defaults/main.yml. Some of them should be changed from the default value.

variable default value
corda_user corda
corda_dir_location /opt/corda
corda_host_p2p "{{ ansible_hostname }}"
corda_host_rpc "{{ ansible_hostname }}"
corda_port_p2p 10002
corda_port_rpc 10003
corda_port_web 10004
corda_port_h2 11000
corda_portal_user corda
corda_portal_password corda_is_awesome
corda_devmode "true"
corda_java openjdk
corda_java_options -Xmx2048
corda_version 1.0.0
corda_source maven
corda_local_path ""
corda_country GB
corda_city London
corda_org Corda
corda_org_unit Corda
corda_admin_email "change_it@corda.net"
corda_role node
corda_notary_type "non_validating"
corda_networkmap_address "example-change.it"
corda_networkmap_name "O=Corda, L=London, C=GB"
corda_doorman_url "example-change.it"
corda_legal_name (deprecated in 1.0) "Corda Test Node - Change it"

Please note:

  • If you are not sure which version to use please visit Maven Central.
  • corda_devmode is a string not a boolean.
  • corda_role has to be be one of 3 (node, notary, networkmap)
  • corda_notary_type can be either validating or non_validating
  • setting corda_java to a value other than openjdk will prevent the role installing OpenJDK from zulu.org (no Java VM will be installed)

Corda installation tasks carried by Ansible

This is a summary of the actions performed by Ansible:

  • Install necessary packages (including OpenJDK from zulu.org by default)
  • Create a user and a directory for Corda
  • Create the systemd configuration for Corda node and webserver
  • Prepare Corda configuration file (node.conf)
  • Install Corda jars (node and webserver) either from Maven Central, or from your local machine.

Limitations

  • tested with Ubuntu 16.04 only CentOS 7 (7.3) only
  • installs only OpenJDK from zulu.org (on request). However, Corda will use your machine's default Java VM. Therefore, if you installed Oracle JDK (e.g. using ansiblebit/oracle-java role) and set it up as the default Java VM, Corda will use it.