Giter Site home page Giter Site logo

davidkel / ansible-role-blockchain-platform-manager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibm-blockchain-archive/ansible-role-blockchain-platform-manager

0.0 1.0 0.0 215 KB

Ansible role for building Hyperledger Fabric networks using the IBM Blockchain Platform

Home Page: https://www.ibm.com/cloud/blockchain-platform

License: Apache License 2.0

Dockerfile 84.50% Shell 15.50%

ansible-role-blockchain-platform-manager's Introduction

ansible-role-blockchain-platform-manager

Build Status

The IBM Blockchain Platform provides advanced tooling that allows you to quickly build, operate & govern and grow blockchain networks. It uses Hyperledger Fabric, the open source, industry standard for enterprise blockchain. It also helps you to deploy Hyperledger Fabric networks anywhere, either to cloud or on-premises, using Kubernetes.

This Ansible role, provided as part of the IBM Blockchain Platform, enables you to automate the building of Hyperledger Fabric networks.

You can install this role from Ansible Galaxy:

ansible-galaxy install ibm.blockchain_platform_manager

You can find example playbooks on GitHub in the ansible-examples repository. A good starting point for building your own Hyperledger Fabric networks is the two-org-network example.

Requirements

This Ansible role requires the following pre-requisites:

Role Variables

Coming soon!

Dependencies

This Ansible role has no dependencies on any other Ansible roles.

Example Playbook

---
- name: Deploy blockchain infrastructure and smart contracts
  hosts: localhost
  vars:
    # Desired state of all components (certificate authorities, peers,
    # and orderers). The default value is "present".
    # - "present" all components have been created, and are running
    # - "absent" all components have been stopped, and are removed
    state: present
    # Configuration for the target infrastructure.
    infrastructure:
      # Type of target infrastructure. The options are:
      # - "docker" deploy using Docker
      # - "saas" deploy using the IBM Blockchain Platform on IBM Cloud
      # - "software" deploy using the IBM Blockchain Platform software
      type: docker
      # Docker specific configuration.
      docker:
        # The name of the Docker network to use for all containers.
        network: ibp_network
        # The Docker object labels to apply to all containers and volumes.
        labels:
          org.example.label: example label value
        # Generate node and gateway information using internal hostnames?
        use_internal_hostname:
      # IBM Blockchain Platform on IBM Cloud specific configuration.
      # In this example, service credentials are loaded from a JSON file.
      # You must supply both "api_endpoint" and "apikey" properties.
      saas: "{{ lookup('file', 'service-creds.json') | from_json }}"
      # IBM Blockchain Platform software specific configuration.
      software:
        # The API endpoint to use.
        api_endpoint: https://ibp-console.example.org:32000
        # The API key to use.
        api_key: xxxxxxxx
        # The API secret to use.
        api_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    # The list of organizations.
    organizations:
      # The organization Org1.
      - &Org1
        # MSP configuration for this organization.
        msp:
          # The unique ID of this MSP.
          id: "Org1MSP"
          # The admin identity and secret to register and enroll for this MSP.
          # This user will be registered on the CA specified for this organization,
          # and used as the administrator for the MSP, and any peers or orderers
          # that belong to this organization.
          admin:
            identity: "org1Admin"
            secret: "org1Adminpw"
          # IBM Blockchain Platform on IBM Cloud specific configuration.
          ibp:
            # The display name of this MSP.
            display_name: "Org1 MSP"
        # CA configuration for this organization.
        ca: &Org1CA
          # The unique ID of this CA.
          id: "Org1CA"
          # The default admin identity and secret to set for this CA.
          admin_identity: "admin"
          admin_secret: "adminpw"
          # TLS configuration for this CA.
          tls:
            # Should TLS be enabled for this CA?
            enabled: true
          # Docker specific configuration.
          docker:
            # The name to use for this Docker container and associated Docker volumes.
            name: ca.org1.example.com
            # The hostname to use for this Docker container.
            hostname: ca.org1.example.com
            # The external port to use for this Docker container.
            port: 18050
          # IBM Blockchain Platform on IBM Cloud specific configuration.
          ibp:
            # The display name of this CA.
            display_name: "Org1 CA"
        # The list of peers for this organization.
        peers:
          # First peer for this organization.
          - &Org1Peer1
            # The unique ID of this peer.
            id: "Org1Peer1"
            # The identity and secret to register and enroll for this peer.
            # This user will be registered on the CA specified for this organization,
            # and will be used as the peers identity.
            identity: "org1peer1"
            secret: "org1peer1pw"
            # The database type to use to store this peers world state and private data
            # collections. The options are:
            # - "couchdb" use Apache CouchDB
            # - "leveldb" use LevelDB
            database_type: couchdb
            # TLS configuration for this peer.
            tls:
              # Should TLS be enabled for this peer?
              enabled: true
              # The TLS identity and secret to register and enroll for this peer.
              # This user will be registered on the CA specified for this organization,
              # and will be used as the peers TLS identity.
              identity: "org1peer1tls"
              secret: "org1peer1tlspw"
            # Docker specific configuration.
            docker:
              # The name to use for this Docker container and associated Docker volumes.
              name: peer0.org1.example.com
              # The hostname to use for this Docker container.
              hostname: peer0.org1.example.com
              # The external request port to use for this Docker container.
              port: 18051
              # The prefix to use for naming all chaincode Docker images and containers.
              chaincode_name_prefix: my_chaincode_prefix
              # The external chaincode port to use for this Docker container.
              chaincode_port: 18052
              # The external operations port to use for this Docker container.
              operations_port: 18053
              # CouchDB specific configuration.
              couchdb:
                # The name to use for the CouchDB Docker container and associated Docker volumes.
                name: couchdb0.org1.example.com
                # The hostname to use for the CouchDB Docker container.
                hostname: couchdb0.org1.example.com
                # The external CouchDB port to use for the CouchDB Docker container.
                port: 18054
            # IBM Blockchain Platform on IBM Cloud specific configuration.
            ibp:
              # The display name of this peer.
              display_name: "Org1 Peer1"
        # The directory to store generated JSON files for each CA, peer, and orderer in this organization.
        nodes: "{{ playbook_dir }}/nodes/Org1"
        # The directory to store all identities (certificate and private key pairs) for this organization.
        wallet: "{{ playbook_dir }}/wallets/Org1"
        # The directory to store all gateways for this organization.
        gateways: "{{ playbook_dir }}/gateways/Org1"
      # The organization that manages the ordering service.
      - &OrdererOrg
        # MSP configuration for this organization.
        msp:
          # The unique ID of this MSP.
          id: "OrdererMSP"
          # The admin identity and secret to register and enroll for this MSP.
          # This user will be registered on the CA specified for this organization,
          # and used as the administrator for the MSP, and any peers or orderers
          # that belong to this organization.
          admin:
            identity: "ordererAdmin"
            secret: "ordererAdminpw"
          # IBM Blockchain Platform on IBM Cloud specific configuration.
          ibp:
            display_name: "Orderer MSP"
        # CA configuration for this organization.
        ca: &OrdererCA
          # The unique ID of this CA.
          id: "OrdererCA"
          # The default admin identity and secret to set for this CA.
          admin_identity: "admin"
          admin_secret: "adminpw"
          # TLS configuration for this CA.
          tls:
            # Should TLS be enabled for this CA?
            enabled: true
          # Docker specific configuration.
          docker:
            # The name to use for this Docker container and associated Docker volumes.
            name: ca.orderer.example.com
            # The hostname to use for this Docker container.
            hostname: ca.orderer.example.com
            # The external port to use for this Docker container.
            port: 17050
          # IBM Blockchain Platform on IBM Cloud specific configuration.
          ibp:
            # The display name of this CA.
            display_name: "Orderer CA"
        # Orderer configuration for this organization.
        orderer: &Orderer
          # The unique ID of this orderer.
          id: "Orderer1"
          # The identity and secret to register and enroll for this orderer.
          # This user will be registered on the CA specified for this organization,
          # and will be used as the orderers identity.
          identity: "orderer1"
          secret: "orderer1pw"
          # TLS configuration for this orderer.
          tls:
            # Should TLS be enabled for this orderer?
            enabled: true
            # The TLS identity and secret to register and enroll for this orderer.
            # This user will be registered on the CA specified for this organization,
            # and will be used as the orderers TLS identity.
            identity: "orderer1tls"
            secret: "orderer1tlspw"
          # Consortium configuration for this orderer.
          consortium:
            # The list of consortium members.
            members:
              # Reference to the organization Org1.
              - *Org1
          # Block cutting configuration for this orderer.
          block_configuration:
            # The absolute maximum size of a block in bytes.
            absolute_max_bytes: 10485760
            # The maximum number of messages in a block.
            max_message_count: 500
            # The preferred maximum size of a block in bytes.
            preferred_max_bytes: 2097152.
            # The maximum time to wait before cutting a new block.
            timeout: 2s
          # Docker specific configuration.
          docker:
            # The name to use for this Docker container and associated Docker volumes.
            name: orderer.example.com
            # The hostname to use for this Docker container.
            hostname: orderer.example.com
            # The external port to use for this Docker container.
            port: 17051
            # The external operations port to use for this Docker container.
            operations_port: 17052
          # IBM Blockchain Platform on IBM Cloud specific configuration.
          ibp:
            # The display name of this orderer.
            display_name: "Orderer1"
            # The cluster name of this orderer.
            cluster_name: "OrdererCluster"
        # The directory to store generated JSON files for each CA, peer, and orderer in this organization.
        nodes: "{{ playbook_dir }}/nodes/Orderer"
        # The directory to store all identities (certificate and private key pairs) for this organization.
        wallet: "{{ playbook_dir }}/wallets/Orderer"
        # The directory to store all gateways for this organization.
        gateways: "{{ playbook_dir }}/gateways/Orderer"
    # The list of channels.
    channels:
      # The channel channel1.
      - &channel1
        # The name of the channel.
        name: channel1
        # The orderer to use for this channel.
        orderer: *Orderer
        # The list of channel members.
        members:
          # Reference to the organization Org1.
          - <<: *Org1
            # The list of committing peers for this organization.
            committing_peers:
              # Reference to the first peer for this organization.
              - *Org1Peer1
            # The list of anchor peers for this organization.
            anchor_peers:
              # Reference to the first peer for this organization.
              - *Org1Peer1
    # The list of contracts.
    contracts:
      # The contract fabcar.
      - &fabcar
        # The name of the contract.
        name: fabcar
        # The version of the contract.
        version: 1.0.0
        # The path to the file containing the packaged contract. This file can be created
        # using the "peer chaincode package" command, one of the Fabric SDKs, or the IBM
        # Blockchain Platform extension for Visual Studio Code.
        package: "{{ playbook_dir }}/[email protected]"
        # The list of channels to deploy this contract into.
        channels:
          # Reference to the channel channel1.
          - <<: *channel1
            # The endorsement policy for this contract on this channel.
            endorsement_policy: "AND('Org1MSP.peer')"
            # The path to the file containing the private data collection configuration
            # for this contract on this channel.
            collections_config: "{{ playbook_dir }}/collections-config.json"
            # The list of endorsing members for this contract on this channel.
            endorsing_members:
              # Reference to the organization Org1.
              - <<: *Org1
                # The list of endorsing peers for this organization.
                endorsing_peers:
                  # Reference to the first peer for this organization.
                  - <<: *Org1Peer1
    # The list of gateways.
    gateways:
      # The gateway gateway1.
      - name: gateway1
        # The organization that owns the gateway.
        organization:
          # Reference to the organization Org1.
          <<: *Org1
          # The list of gateway peers for this organization.
          gateway_peers:
            # Reference to the first peer for this organization.
            - *Org1Peer1
  roles:
    - ibm.blockchain_platform_manager

License

Apache-2.0

Author Information

This Ansible role is maintained by the IBM Blockchain Platform development team. For more information on the IBM Blockchain Platform, visit the following website: https://www.ibm.com/cloud/blockchain-platform

ansible-role-blockchain-platform-manager's People

Contributors

ldesrosi avatar mergify[bot] avatar odowdaibm avatar rthatcher avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.