Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Ansible Playbooks For Aerospike Servers
Python Shell
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
citrusleaf_servers
common
day2day Structure for keeping playbooks for daily tasks
group_vars
README.md
client.yml
client_libevent.yml Add support for Installing and starting libevent2 client
clients
server.yml
servers revert changes and have server as a string

README.md

aerospike-ansible


Ansible Repo For Aerospike Servers

Requirements


  • Install Ansible.
  • Installation instructions can be found here
  • Passwordless access to all the servers, Also the user should have sudo access.

How To


All playbooks needed for managing Aerospike servers can be found in the github repo

    $ git clone git@github.com:kavink/aerospike-ansible.git
    $ cd aerospike-ansible

Getting Started


  • Edit the clients and servers inventory file to point to respective servers.
  • You can create groups under clients and servers to manage different clusters or different groups of clients
  • Edit group_vars/all file to assign the IP/port for Graphite. (Change variables GRAPHITE_SERVER,GRAPHITE_PORT)
  • Edit citrusleaf_servers/templates/citrusleaf_multicast.conf.j2 as per your requirement, This config file will be used to configure the Aerospike servers.

To Install and start clients:

Note: cluster should be the ip/dns of 1 of the nodes in the cluster

    $ ansible-playbook client.yml -i clients --extra-vars "hosts=4clients cluster=d7 namespace=largecluster-mem size=B:100 load=RU,95 threads=64 timeout=10m" 

To Install and start Libevent2 clients

    $ ansible-playbook client_libevent.yml -i servers -e "hosts=2node cluster=d10 namespace=largecluster-mem size=100 load=RU,95 throughput=100000 timeout=5m"

To Install and start Aerospike servers

This command will install and configure the servers based on the Template configuration file and start the servers.

    $ ansible-playbook server.yml -e "hosts=2node config=citrusleaf_multicast.conf.j2 GRAPHITE_SERVER=s1 GRAPHITE_PORT=2023" -i servers  

Note: config= value should be a template in folder citrusleaf_servers/templates/

Folder Structure


.
├── citrusleaf_servers
│   ├── files
│   ├── handlers
│   │   └── handlers.yml                              # All handlers to start/stop/restart Citrusleaf and XDR
│   ├── tasks
│   │   ├── configure_citrusleaf.yml                  # Configure citrusleaf from template
│   │   ├── create_prod_repo.yml                      # Configure the yum repo template for citrusleaf server
│   │   ├── install_citrusleaf_community.yml          # Install community server
│   │   ├── install_citrusleaf_prod.yml                   # Install prod citrusleaf server
│   │   └── install_citrusleaf_trial.yml              # Install trial citrusleaf server
│   └── templates
│       ├── citrusleaf_multicast.conf.j2              # Template to configure citrusleaf
│       └── citrusleafprod.repo.j2                        # Template for configuring yum repo.d file
├── common                                                # All tasks common to servers and clients
│   ├── files     
│   │   ├── collectd.conf                             # Collectd configuration to use for servers.
│   │   └── run_java_client.sh                            # Script to run the Benchmark Java Client
│   │   └── run_libevent2_client.sh                       # Script to run the Libevent2 Client
│   ├── handlers
│   ├── tasks
│   │   ├── install_benchmark_client.yml              # Install java benchmark client
│   │   ├── install_build_dep.yml                     # Install build dependencies for Compiling stuff
│   │   ├── install_citrusleaf_graphite.yml               # Install Citrusleaf graphite script
│   │   ├── install_collectd.yml                      # Install and configure Collectd
│   │   ├── install_epel.yml                          # Install epel for CentOS
│   │   ├── install_java.yml                          # Install Oracle Java for CentOS
│   │   ├── install_libevent2_client.yml              # Install the Libevent 2 client from the website
│   │   ├── install_logster.yml                           # Install and Configure Logster
│   │   └── install_ntp.yml                               # Install NTP on servers.
│   └── templates
│       ├── citrusleaf_graphite.py.j2                 # Template so script knows where is Graphite
│       └── logster-analyse-client.sh.j2              # Template so logster knows where is Graphite
├── group_vars                                            # here we assign variables to particular groups
│   └── all                                               # Global variables for all servers in inventory
├── day2day                                               # Folder for Daily Maintainance Playbooks
│   └── upgrade_citrusleaf_prod.yml                       # Rolling update of citrusleaf servers
├── host_vars
├── clients                                               # inventory file for clients
├── client_libevent.yml                                   # Master playbook for Libevent2 Clients
├── client.yml                                            # Master playbook for clients (do everything)
├── README.md
├── servers                                               # inventory file for servers
└── server.yml                                            # Master playbook for servers

Tasks


-[x] Create playbook for moving releases to Public repo , Separate structure like common for specialized tasks
-[x] Setup Public repo
-[x] create playbook to install citrusleaf repo (ask login/password for prod repo) and upgrade/install servers
-[ ] Public Graphite AMI ????
-[ ] Document using playbooks
-[ ] have smaller playbooks for small tasks (use tags ?? )
-[ ] Have Another structure like common for configuring XDR.
Something went wrong with that request. Please try again.