Commit b3016c97 authored by Decoupes Remy's avatar Decoupes Remy
Browse files

Readme : describe multiple ways for deploying HDFS

No related merge requests found
Showing with 33 additions and 18 deletions
+33 -18
......@@ -6,8 +6,15 @@
This project aims to deploy a datalake and its ecosystem using **[Ansible](https://docs.ansible.com/)** and/or **[Vagrant](https://www.vagrantup.com/)**.
Acutally, this project does :
- **Prod Environment** : Deploy a mononode HDFS on a server using ansible
- **Sandbox Encironment**: Deploy a mononode HDFS on a VM from Vagrant & Ansible
1. Deploy a mono-node HDFS on :
* [Your own computer using a virtual machine with Vagrant & ansible provision](#vagrant-monode)
* [a server using ansible](#ansible-mononode)
2. Deploy a cluster HDFS on :
* [Your own computer using as many virtual machine you want using Vagrant & ansible](#vagrant-cluster)
* [multiple servers using ansible](#vagrant-ansible)
**Prod Environment** : Deploy a mononode HDFS on a server using ansible
**Sandbox Environment**: Deploy a mononode HDFS on a VM from Vagrant & Ansible
## Prerequisites
* Ansible
......@@ -30,29 +37,20 @@ Acutally, this project does :
```
## Ansible
### Description of Ansible
### Ansible
#### Description of Ansible
[Wikipedia definition :](https://en.wikipedia.org/wiki/Ansible_(software))
> Ansible is an open-source software provisioning, configuration management, and application-deployment tool.[2] It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows. It includes its own declarative language to describe system configuration.
Ansible is a good tool to deploy and maintain IT systems. Based on [Yaml ](https://en.wikipedia.org/wiki/YAML) configuration files, ansible makes it easy to describe your configuration and share it with your collaborators.
Then you can deploy it to your infrastructure, you only need to have a ssh access to your servers.
### Getting started
#### Getting started
Ansible playbook is a list of system instructions which has to be send to a machine. That's why you only need 2 things :
- Get ansible installed on your own computer
- Have a remote machine (physical, vmware, virtualbox, docker, lxc, ...) with a ssh server running
### Running playbook
First configure your IP adress in the [inventory file](inventory/static)
Then run the script [ansible-launch.sh](ansible-launch.sh) :
```shell
/bin/bash ansible-launch.sh
```
## Vagrant & Ansible
### Description of Vagrant
### Vagrant & Ansible
#### Description of Vagrant
[Wikipedia definition :](https://en.wikipedia.org/wiki/Vagrant_(software))
> Vagrant is an open-source software product for building and maintaining portable virtual software development environments,[5] e.g. for VirtualBox, KVM, Hyper-V, Docker containers, VMware, and AWS. It tries to simplify the software configuration management of virtualizations in order to increase development productivity. Vagrant is written in the Ruby language, but its ecosystem supports development in a few languages.
......@@ -63,13 +61,30 @@ Vagrant manages your virtual machine (VM) on command line. The benefits are :
Vagrant and ansible can be combined to create/deploy/maintain your VM as we do in this project
### Getting started
#### Getting started
You only need virtual box and vagrant installed on your computer. This project is going to create VM that you need for your datalake
### Running Vagrant
# Deploy a mono-node HDFS
## [Deploy mono-node HDFS on a VM :](#vagrant-monode)
1. In cli : Go to the directory which contains the [VagrantFile ](vagrant/mononode/Vagrantfile)
2. In cli : start your VM:
```shell
vagrant up
```
## [Deploy mono-node HDFS on a server :](#ansible-mononode)
First configure your IP adress in the [inventory file](inventory/static)
Then run the script [ansible-launch.sh](ansible-launch.sh) :
```shell
/bin/bash ansible-launch.sh
```
# Deploy a HDFS cluster
## [Deploy cluster HDFS with multiple VMs:](#vagrant-cluster)
1. Set your nodes' IP address in [VagrantFile](vagrant/cluster/Vagrantfile)
2. Declare those IP for ansible provision in [vars](playbook/roles/hosts-file/vars/main.yml)
3. in cli : start your multiple VM from this [directory : vagrant/cluster](vagrant/cluster) :
```shell
vagrant up
```
## [Deploy cluster HDFS on servers:](#vagrant-ansible)
work in progress
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment