From d6986f60e0957d511f487391783a336b7639c0ee Mon Sep 17 00:00:00 2001
From: Decoupes Remy <remy.decoupes@irstea.fr>
Date: Mon, 9 Dec 2019 10:56:24 +0100
Subject: [PATCH] Add /etc/hosts configuration for HDFS multiple nodes

---
 playbook/install-datanode.yml                    | 1 +
 playbook/install-namenode.yml                    | 1 +
 playbook/roles/hosts-file/tasks/main.yml         | 5 +++++
 playbook/roles/hosts-file/templates/etc_hosts.j2 | 3 +++
 playbook/roles/hosts-file/vars/main.yml          | 7 +++++++
 5 files changed, 17 insertions(+)
 create mode 100644 playbook/roles/hosts-file/tasks/main.yml
 create mode 100644 playbook/roles/hosts-file/templates/etc_hosts.j2
 create mode 100644 playbook/roles/hosts-file/vars/main.yml

diff --git a/playbook/install-datanode.yml b/playbook/install-datanode.yml
index 44dad30..d5f94ba 100644
--- a/playbook/install-datanode.yml
+++ b/playbook/install-datanode.yml
@@ -4,4 +4,5 @@
   
   roles:
     - common
+    - hosts-file
     - hadoop-common
\ No newline at end of file
diff --git a/playbook/install-namenode.yml b/playbook/install-namenode.yml
index 8ce252f..23ac001 100644
--- a/playbook/install-namenode.yml
+++ b/playbook/install-namenode.yml
@@ -4,4 +4,5 @@
   
   roles:
     - common
+    - hosts-file
     - hadoop-common
\ No newline at end of file
diff --git a/playbook/roles/hosts-file/tasks/main.yml b/playbook/roles/hosts-file/tasks/main.yml
new file mode 100644
index 0000000..65eb5f5
--- /dev/null
+++ b/playbook/roles/hosts-file/tasks/main.yml
@@ -0,0 +1,5 @@
+- name: build /etc/hosts with variables definition
+  become: yes
+  template:
+    src: templates/etc_hosts.j2
+    dest: "/etc/hosts"
\ No newline at end of file
diff --git a/playbook/roles/hosts-file/templates/etc_hosts.j2 b/playbook/roles/hosts-file/templates/etc_hosts.j2
new file mode 100644
index 0000000..5dd517c
--- /dev/null
+++ b/playbook/roles/hosts-file/templates/etc_hosts.j2
@@ -0,0 +1,3 @@
+{% for node in cluster %}
+{{node.IP}}   {{node.hostname}}
+{% endfor %}
\ No newline at end of file
diff --git a/playbook/roles/hosts-file/vars/main.yml b/playbook/roles/hosts-file/vars/main.yml
new file mode 100644
index 0000000..f74023c
--- /dev/null
+++ b/playbook/roles/hosts-file/vars/main.yml
@@ -0,0 +1,7 @@
+cluster:
+  - hostname: namenode
+    IP: 10.0.0.10
+  - hostname: datanode1
+    IP: 10.0.0.11
+  - hostname: datanode2
+    IP: 10.0.0.12
-- 
GitLab