LeoFS' Ansible for deployment and operation of LeoFS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
group_vars
roles
.gitignore
README.md
build_custom.sh Bump erlang version to 18.3 Oct 18, 2017
build_leofs.yml
config_leofs.yml
get_log.yml
hosts.sample
install_leofs.yml
purge_leofs.yml Removed forcekill in purge, as it doesnt work with -heart Oct 12, 2017
send_avs.yml
start_leofs.yml Initial Commit for rewrite, Playbook based instead of tag based Jun 2, 2016
stop_leofs.yml

README.md

leofs_ansible

Ansible Playbook for LeoFS

Dependencies

Ansible 2.0+

Description

This playbook aims to provide a easy way to deploy LeoFS Cluster including LeoManager, LeoStorage, LeoGateway

It would automatically fetch package from GitHub and install

Alternatively, you can supply a custom build script

How to use

  1. Setup Inventory (Reference to hosts.sample

    [leo_manager_0]
    host_for_manager_0
    
    [leo_manager_1]
    host_for_manager_1
    
    [leo_storage]
    host_for_storages
    
    [leo_gateway]
    host_for_gateway
  2. Choose Install Method

    [all:vars]
    leofs_version=1.2.22
    build_temp_path="/tmp/leofs_builder"
    build_install_path="/tmp/"
    source="package" | "build"
  3. Run Ansible-Playbook

    ## Build LeoFS
    $ ansible-playbook -i hosts build_leofs.yml
    
    ## Install LeoFS
    $ ansible-playbook -i hosts install_leofs.yml
    
    ## Config LeoFS
    $ ansible-playbook -i hosts config_leofs.yml
    
    ## Start LeoFS
    $ ansible-playbook -i hosts start_leofs.yml
    
    ## Stop LeoFS
    $ ansible-playbook -i hosts stop_leofs.yml
    
    ## Purge LeoFS
    $ ansible-playbook -i hosts purge_leofs.yml

You may need to use the -b option to escalate your permission when install with package

Other Usages

Refer to examples for playbook/inventory files to perform various operations on LeoFS Cluster

Configurations

Important Configurations

LeoManagers

leo_manager_0_nodename: M0@host1
leo_manager_1_nodename: M1@host1

These are crucial information for LeoFS, the example group_vars/all would automatically generate based on Ansible inventory [leo_manager_0] and [leo_manager_1]

If you do not include LeoManagers in inventory, you need to explicitly set the variables

Configurable Parameters

Please check the defaults/main.yml for configurable parameters and explainations at templates/*.conf in each role

Custom Build Script

Build scripts have to include/install necessary libraries for building LeoFS, such as Erlang, refer to https://github.com/leo-project/leofs

Build scripts are called with an argument indicating the temporary build path

$ [Build Script] [Temporary Build Path]
$ build_custom.sh /tmp/leofs_builder

Roles

  • builder
    • Builder for LeoFS
  • controller (localhost)
    • LeoFS Admin Operations (start/stop/...)
  • common
    • Common Tasks such as installation, uninstallation, ...
    • Common Configurations such as log level, log/temp directories, ...
  • leo_manager_0
    • LeoManager (Primary)
  • leo_manager_1
    • LeoManager (Secondary)
  • leo_storage
    • LeoStorage Storage Node of LeoFS
  • leo_gateway
    • LeoGateway Gateway to access LeoFS

Sponsors

LeoProject/LeoFS is sponsored by Rakuten, Inc. and supported by Rakuten Institute of Technology.