Giter VIP home page Giter VIP logo

ansible-cassandra's Introduction

ansible-cassandra

Installs and configures N number of Cassandra nodes in a cluster on Rackspace Public Cloud & (AWS WIP)

Requirements

  1. Ansible > v1.8
  2. Rackspace Public Cloud account

Configuration and files

  1. config/group_vars/all: contains global variables for cluster settings

  2. prov.sh: Builds the entire stack -->
    \ ansible-playbook config/db-server.yml -f 20
    \ ansible-playbook -i scripts/rax.py config/db.yml -f 20
    \ ansible -vvvv -u root -i scripts/rax.py db -m ping -f 20

  3. ping.sh: Pings all nodes with verbose output

  4. delete.sh: Deletes all nodes in cluster with name defined in "all" group_vars.

Gotcha's and bugs

  1. if a node fails to build on the initial run, you can rerun the same prov.sh but will need to cleanup the directories and restart cassandra again
   ansible -vvvv -u root -i scripts/rax.py ds_db -m shell -a "rm -rf /var/lib/cassandra/*" -f 20
   ansible -vvvv -u root -i scripts/rax.py ds_db -m shell -a "service cassandra restart" -f 20

Installation

bash prov.sh

Directory structure

ansible-cassandra/
├───ansible.cfg
├───provision.sh
├───nodetool-prov.sh
├───ping.sh
├───cluster-delete.sh
├───nodetool-delete.sh
├───scripts/
│   └───rax.py
├───vagrant-test/
│   └───Vagrantfile
│   └───db.yml
│   └───group_vars/
│       └───all
│   └───roles/
│       └───db/
│           └───handlers/
│               └───main.yml
│           └───tasks/
│               └───main.yml
│               └───common.yml
│               └───cassandra.yml
│               └───dependencies.yml
│               └───repository.yml
│           └───templates/
│               └───cassandra-2.1.j2
│               └───cassandra-2.0.j2
│               └───cassandra-1.2.j2
│               └───cassandra-2.1-env.j2
│               └───cassandra-topology.yml
│               └───policy-rc.d.j2
│               └───ufw.j2
│               └───log4j-server.properties
│
├───config/
    └───db-server.yml
    └───db.yml
    └───delete_db.yml
    └───nodetool-server.yml
    └───nodetool.yml
    └───nodetool-delete.yml
    └───group_vars/
    │   └───all
    └───roles/
        └───db/
        │   └───files/
        │   └───handlers/
        │   │   └───main.yml
        │   └───tasks/
        │   │   └───main.yml
        │   │   └───common.yml
        │   │   └───cassandra.yml
        │   │   └───dependencies.yml
        │   │   └───repository.yml
        │   └───templates/
        │       └───cassandra-2.1.j2
        │       └───cassandra-2.0.j2
        │       └───cassandra-1.2.j2
        │       └───cassandra-2.1-env.j2
        │       └───cassandra-topology.yml
        │       └───policy-rc.d.j2
        │       └───ufw.j2
        │       └───log4j-server.properties
        └───nodetool/
            └───handlers/
            │   └───main.yml
            └───tasks/
                └───main.yml
                └───common.yml
                └───cassandra.yml
                └───dependencies.yml
                └───repository.yml

ansible-cassandra's People

Contributors

chris-mendoza avatar tamsky avatar

Watchers

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