All Projects → InsightDataScience → Ansible Playbook

InsightDataScience / Ansible Playbook

Licence: apache-2.0
Ansible playbook to deploy distributed technologies

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ansible Playbook

Nagios Plugins
450+ AWS, Hadoop, Cloud, Kafka, Docker, Elasticsearch, RabbitMQ, Redis, HBase, Solr, Cassandra, ZooKeeper, HDFS, Yarn, Hive, Presto, Drill, Impala, Consul, Spark, Jenkins, Travis CI, Git, MySQL, Linux, DNS, Whois, SSL Certs, Yum Security Updates, Kubernetes, Cloudera etc...
Stars: ✭ 1,000 (+1539.34%)
Mutual labels:  aws, zookeeper, kafka
Devops Bash Tools
550+ DevOps Bash Scripts - AWS, GCP, Kubernetes, Kafka, Docker, APIs, Hadoop, SQL, PostgreSQL, MySQL, Hive, Impala, Travis CI, Jenkins, Concourse, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt for Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, Advanced dotfiles: .bashrc, .vimrc, .gitconfig, .screenrc, .tmux.conf, .psqlrc ...
Stars: ✭ 226 (+270.49%)
Mutual labels:  aws, kafka, devops
Splunkenizer
Ansible framework providing a fast and simple way to spin up complex Splunk environments.
Stars: ✭ 73 (+19.67%)
Mutual labels:  aws, ansible, ansible-playbooks
Portable Ansible
Ansible without requirements to be installed (for pull-mode)
Stars: ✭ 75 (+22.95%)
Mutual labels:  ansible, ansible-playbooks, devops
Sitewhere
SiteWhere is an industrial strength open-source application enablement platform for the Internet of Things (IoT). It provides a multi-tenant microservice-based infrastructure that includes device/asset management, data ingestion, big-data storage, and integration through a modern, scalable architecture. SiteWhere provides REST APIs for all system functionality. SiteWhere provides SDKs for many common device platforms including Android, iOS, Arduino, and any Java-capable platform such as Raspberry Pi rapidly accelerating the speed of innovation.
Stars: ✭ 788 (+1191.8%)
Mutual labels:  aws, zookeeper, kafka
Linchpin
ansible based multicloud orchestrator
Stars: ✭ 107 (+75.41%)
Mutual labels:  aws, ansible, ansible-playbooks
Firecamp
Serverless Platform for the stateful services
Stars: ✭ 194 (+218.03%)
Mutual labels:  aws, zookeeper, kafka
Ansible For Devops
Ansible for DevOps examples.
Stars: ✭ 5,265 (+8531.15%)
Mutual labels:  aws, ansible, devops
Opscloud
运维管理平台(阿里云),自动同步阿里云配置信息,堡垒机(容器),批量运维,Kubernetes,Zabbix管理等功能
Stars: ✭ 788 (+1191.8%)
Mutual labels:  aws, ansible, devops
Books Recommendation
程序员进阶书籍(视频),持续更新(Programmer Books)
Stars: ✭ 558 (+814.75%)
Mutual labels:  ansible, zookeeper, kafka
Dockerfiles
50+ DockerHub public images for Docker & Kubernetes - Hadoop, Kafka, ZooKeeper, HBase, Cassandra, Solr, SolrCloud, Presto, Apache Drill, Nifi, Spark, Consul, Riak, TeamCity and DevOps tools built on the major Linux distros: Alpine, CentOS, Debian, Fedora, Ubuntu
Stars: ✭ 847 (+1288.52%)
Mutual labels:  zookeeper, kafka, devops
Ansible Meta Dynamic Inventory
Naming is hard. This wrapper script allows you to use set notation with dynamic host groups.
Stars: ✭ 24 (-60.66%)
Mutual labels:  aws, ansible, devops
Devops Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Stars: ✭ 20,905 (+34170.49%)
Mutual labels:  aws, ansible, devops
Cfn Create Or Update
Create or update CloudFormation stack also if no updates are to be performed.
Stars: ✭ 59 (-3.28%)
Mutual labels:  aws, devops
Tweetmap
A real time Tweet Trend Map and Sentiment Analysis web application with kafka, Angular, Spring Boot, Flink, Elasticsearch, Kibana, Docker and Kubernetes deployed on the cloud
Stars: ✭ 28 (-54.1%)
Mutual labels:  aws, kafka
Ebs bckup
Stars: ✭ 32 (-47.54%)
Mutual labels:  aws, devops
Touchdown
Cloud service orchestration framework for python
Stars: ✭ 10 (-83.61%)
Mutual labels:  aws, devops
Ansible device42
Scripts to generate static inventory file or generate dynamic inventory for ansible from Device42 data
Stars: ✭ 33 (-45.9%)
Mutual labels:  ansible, devops
Anotherkafkamonitor Akm
Another app which used to monitor the progress of Kafka Producer and Consumer
Stars: ✭ 36 (-40.98%)
Mutual labels:  zookeeper, kafka
Automated Cloud Advisor
Automated Cloud Advisor is a extensible tool that aims at facilitating cost optimization in AWS, by collecting data for resources that are under utilized. In addition, this is a great learning tool for new DevOps/Cloud engineers that want to start automating things in AWS.
Stars: ✭ 44 (-27.87%)
Mutual labels:  aws, devops

Ansible playbook to deploy distributed technologies

This project is a set of Ansible playbooks to easily install a set of distributed technologies on AWS

Table of Contents

  1. Supported playbooks
  2. Supported commands
  3. Setup
  1. Playbooks

Supported playbooks

  • EC2
  • Zookeeper
  • Kafka

Supported Commands

~$ ansible-playbook <master-playbook>.yml --extra-vars "<var1>=<value1> <var2>=<value2>" --tags "<tag1>,<tag2>"
  • EC2 playbook is controlled by a yaml file containing variables for the EC2 instances to be acted on. More details below
  • Zookeeper, Kafka, and Vowpal Wabbit playbooks need respective cluster tags to be specified to identify which nodes are in the cluster and need to be acted on. More details below

Setup

On your local/remote machine

  1. Setup ansible for your system
  2. Create following folders
~$ mkdir -p /etc/ansible/hosts
  1. Clone this repo
~$ git clone https://github.com/InsightDataScience/ansible-playbook.git
  1. Copy the ec2.py and ec2.ini files in this repo to /etc/ansible/hosts
  2. Update information in ansible_example.cfg and move it to /etc/ansible/ansible.cfg
  3. Export AWS credentials as environment variables
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXX

Using Docker container

  1. Setup Docker for your system
  2. Clone this repo
~$ git clone https://github.com/InsightDataScience/ansible-playbook.git
  1. Build your docker image locally with the following command - run this from the root folder of this repo
~$ docker build -t ansible-playbook -f conf/Dockerfile .
  1. Run the docker container in interactive mode using the script in the repo - run_ansible_playbook_container.sh
~$ ./run_ansible_playbook_container.sh
  1. Update information in /etc/ansible/ansible.cfg config file inside the container
  2. Export AWS credentials in ~/.profile inside the container
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXX

Playbooks

  • ###EC2

    Launch/Start/Stop/Terminate EC2 instances on AWS.

    • ####Variable file:

      Update example_ec2_vars.yml as per your requirement

      EC2 playbook is controlled by a yaml file with variables defined for the EC2 instances. An example variable file -example_ec2_vars.yml - is included in this repo. You can define your own yaml file with the following information:

      ---
      key_pair: <key-name>
      instance_type: <instance-type>
      region: <region>
      security_group_id: <security-group-id>
      num_instances: <num-of-instances>
      subnet_id: <subent-id>
      tag_key_vals:
        Name: <cluster-name>
        <custom-tag-key1>: <custom-tag-val1>
        <custom-tag-key2>: <custom-tag-val2>
      

      The Name tag in the tag_key_vals is mandatory to create an identifier for the instances. More tags can be added if needed but are optional.

      In your terminal, you will likely also need to add your private key to an ssh agent:

      ssh-add </path/to/my.pem>
      
    • ####Launch EC2 instances:

      ~$ ansible-playbook ./ec2.yml --extra-vars "vars_file=./example_ec2_vars.yml" --tags launch
      
    • ####Stop EC2 instances:

      ~$ ansible-playbook ./ec2.yml --extra-vars "vars_file=./example_ec2_vars.yml" --tags stop 
      
    • ####Start EC2 instances:

      ~$ ansible-playbook ./ec2.yml --extra-vars "vars_file=./example_ec2_vars.yml" --tags start 
      
    • ####Terminate EC2 instances:

      ~$ ansible-playbook ./ec2.yml --extra-vars "vars_file=./example_ec2_vars.yml" --tags terminate
      
  • ###Zookeeper For Zookeeper playbook, a zookeeper_tag needs to be specified to identify the nodes in the cluster. This zookeeper_tag can be any tag specified in tag_key_vals in the variable file for [EC2]( while launching EC2 instances.

    The zookeeper_tag is specifed as <key>_<value> for one of the tag_key_vals to be used. For example, if the <cluster-name> in the EC2 variable file mentioned above was test-cluster, the zookeeper_tag would be specified as zookeeper_tag=Name_test-cluster. It doesn't have to be the Name tag but could be any key value pair in tag_key_vals specified as zookeeper_tag=<key>_<value>.

    • ####Install Zookeeper:

      ~$ ansible-playbook ./zookeeper.yml --extra-vars "zookeeper_tag=<cluster_tag>" --tags install
      
    • ####Start Zookeeper:

      ~$ ansible-playbook ./zookeeper.yml --extra-vars "zookeeper_tag=<cluster_tag>" --tags start
      
    • ####Get info about Zookeeper on the specified cluster:

      ~$ ansible-playbook ./zookeeper.yml --extra-vars "zookeeper_tag=<cluster_tag>" --tags info
      
    • ####Stop Zookeeper:

      ~$ ansible-playbook ./zookeeper.yml --extra-vars "zookeeper_tag=<cluster_tag>" --tags stop 
      
    • ####Uninstall Zookeeper:

      ~$ ansible-playbook ./zookeeper.yml --extra-vars "zookeeper_tag=<cluster_tag>" --tags uninstall
      
  • ###Kafka Kafka has a dependency on Zookeeper for cluster membership, topic configuration, data partition, etc. For Kafka playbook, a zookeeper_tag and a kafka_tag needs to be specified to identify the nodes in the zookeeper and kafka cluster respectively. The kafka_tag and zookeeper_tag can be any tag specified in tag_key_vals in the variable file for EC2.

    The kafka_tag and zookeeper_tag are specifed as <key>_<value> for one of the tag_key_vals to be used. For example, if the <cluster-name> in the EC2 variable file mentioned above was test-cluster and we had same cluster for Zookeeper and Kafka, the kafka_tag and zookeeper_tag would be specified as zookeeper_tag=Name_test-cluster and kafka_tag=Name_test-cluster respectively. Both Zookeeper and Kafka don't have to be on the same cluster and it doesn't have to be the Name tag but it could be any key value pair in tag_key_vals specified as zookeeper_tag=<key>_<value> and kafka_tag=<key>_<value>.

    ####Kafka's dependency on Zookeeper

    Kafka's dependency on Zookeeper is taken care of by the Kafka playbook. If you are trying to ssetup Kafka on the cluster specified by kafka_tag, the playbook will check that Zookeeper is installed on the cluster zookeeper_tag and if it is not setup, the playbook will first setup Zookeeper and then Kafka. By default, any operation on Kafka cluster, like start, install, etc., will first be executed on the Zookeeper cluster. However, we would want some of the operations to be executed on the Kafka cluster, like stop, uninstall, etc., not be executed on the Zookeeper cluster. This can be achieved by specifying a flag --skip-tags zookeeper while running the Kafka playbook. Examples for this behavior are shown below in the stop and uninstall operations.

    • ####Install Kafka:

      ~$ ansible-playbook ./kafka.yml --extra-vars "zookeeper_tag=<cluster_tag> kafka_tag=<cluster_tag>" --tags install
      
    • ####Start Kafka:

      ~$ ansible-playbook ./kafka.yml --extra-vars "zookeeper_tag=<cluster_tag> kafka_tag=<cluster_tag>" --tags start
      
    • ####Get info about Kafka on the specified cluster:

      ~$ ansible-playbook ./kafka.yml --extra-vars "zookeeper_tag=<cluster_tag> kafka_tag=<cluster_tag>" --tags info
      
    • ####Stop Kafka:

      ~$ ansible-playbook ./kafka.yml --extra-vars "zookeeper_tag=<cluster_tag> kafka_tag=<cluster_tag>" --tags stop --skip-tags zookeeper
      
    • ####Uninstall Kafka:

      ~$ ansible-playbook ./kafka.yml --extra-vars "zookeeper_tag=<cluster_tag> kafka_tag=<cluster_tag>" --tags uninstall --skip-tags zookeeper
      
      
  • Vowpal Wabbit

Vowpal Wabbit is a fast out-of-core Machine Learning system. Installation can take upwards of 10 minutes on micro instances, as it compiles a lot of C++ with high optimization levels using Clang.

  • ####Install Vowpal Wabbit:

    ~$ ansible-playbook ./vw.yml --extra-vars "vw_tag=class_vw" --tags install
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].
OSZAR »