You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2016/09/29 12:44:58 UTC

[21/50] [abbrv] airavata git commit: Added zookeeper and mesos roles

Added zookeeper and mesos roles


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/7429aa65
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/7429aa65
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/7429aa65

Branch: refs/heads/lahiru/AIRAVATA-2065
Commit: 7429aa65b0eff708debde76aadd65a04c179c157
Parents: dc6012e
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Tue Aug 30 15:30:27 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Tue Aug 30 15:30:27 2016 -0400

----------------------------------------------------------------------
 hosts                                          |  8 ++
 roles/group_vars/all.yml                       | 13 ++++
 roles/mesos/tasks/RedHat.yml                   | 18 +++++
 roles/mesos/tasks/main.yml                     | 84 +++++++++++++++++++++
 roles/test/tasks/main.yml                      |  1 +
 roles/zookeeper/handlers/main.yml              | 12 +++
 roles/zookeeper/tasks/main.yml                 | 34 +++++++++
 roles/zookeeper/templates/zoo.cfg.j2           | 28 +++++++
 roles/zookeeper/templates/zookeeper.service.j2 | 15 ++++
 roles/zookeeper/vars/main.yml                  | 17 +++++
 site.yml                                       | 11 +++
 11 files changed, 241 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/hosts
----------------------------------------------------------------------
diff --git a/hosts b/hosts
new file mode 100644
index 0000000..949fb79
--- /dev/null
+++ b/hosts
@@ -0,0 +1,8 @@
+---
+[localhost]
+127.0.0.1
+
+[mesos-master]
+
+
+[mesos-agent]

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/group_vars/all.yml
----------------------------------------------------------------------
diff --git a/roles/group_vars/all.yml b/roles/group_vars/all.yml
new file mode 100644
index 0000000..c041787
--- /dev/null
+++ b/roles/group_vars/all.yml
@@ -0,0 +1,13 @@
+---
+
+user: centos
+group: centos
+user_home: "home/{{user}}"
+
+# Mesos related properties
+mesos_dir: "{{user_home}}/mesos"
+mesos_build_dir: "{{mesos_dir}}/build"
+
+
+#Zookeeper related properties
+zookeeper_client_port: 2181

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/mesos/tasks/RedHat.yml
----------------------------------------------------------------------
diff --git a/roles/mesos/tasks/RedHat.yml b/roles/mesos/tasks/RedHat.yml
new file mode 100644
index 0000000..4c7ace9
--- /dev/null
+++ b/roles/mesos/tasks/RedHat.yml
@@ -0,0 +1,18 @@
+---
+- name: create group
+  group: name="{{group}}"
+  become: yes
+
+- name: create user
+  user: name="{{user}}"
+  become: yes
+
+- name: install required packages
+  yum: name="{{item}}" state=latest
+  with_item:
+    - wget
+    - tar
+    - git
+    - epel-release
+    - subversion
+    - firewalld

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/mesos/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/mesos/tasks/main.yml b/roles/mesos/tasks/main.yml
new file mode 100644
index 0000000..f0fa90c
--- /dev/null
+++ b/roles/mesos/tasks/main.yml
@@ -0,0 +1,84 @@
+---
+- name: create group
+  group: name="{{group}}"
+  become: yes
+
+- name: create user
+  user: name="{{user}}"
+  become: yes
+
+# RedHat related things
+- name: install required packages
+  yum: name="{{item}}" state=latest
+  with_items:
+    - wget
+    - tar
+    - git
+    - epel-release
+    - firewalld
+  become: yes
+
+- name: updage systemd
+  yum: name=systemd state=latest enabled=yes
+  become: yes
+
+- name: install development tools
+  yum: name="@Development tools" state=latest
+  become: yes
+
+  # Install other Mesos dependencies.
+- name: install mesos dependencies
+  yum: name="{{item}}" state=latest
+  with_items:
+    - apache-maven
+    - python-devel
+    - java-1.8.0-openjdk-devel
+    - zlib-devel
+    - libcurl-devel
+    - openssl-devel
+    - cyrus-sasl-devel
+    - cyrus-sasl-md5
+    - apr-devel
+    - apr-util-devel
+    - subversion-devel
+
+- name: start firewall service
+  service: name=firewalld state=started enabled=yes
+  become: yes
+
+- name: download and unarchive mesos latest
+  unarchive:
+      src=http://www.apache.org/dist/mesos/1.0.1/mesos-1.0.1.tar.gz
+      dest="{{mesos_dir}}"
+      owner="{{user}}"
+      group="{{group}}"
+
+  # Bootstrap (Only required if building from git repository).
+  # $ ./bootstrap
+
+- name: make build dir
+  file: path="{{mesos_dir}}/build" state=directory user={{user}} group={{group}}
+
+- name: configure and build mesos
+  command: ../configure  chdir="{{mesos_build_dir}}"
+  register: build
+
+- name: run make
+  command: make chdir="{{mesos_build_dir}}"
+  when: build|success
+  register: make
+
+- name: run make tests
+  command: make check chdir="{{mesos_build_dir}}"
+  when: make|success
+
+- name: create working dir
+  file: path="{{mesos_work_dir}}" state=directory user={{user}} group={{group}}
+
+- name: start mesos master
+  command: ./bin/mesos-master.sh --ip={{inventory_hostname}} --work_dir={{mesos_work_dir}} &
+      chdir={{mesos_build_dir}}
+
+- name: start mesos agent
+  command: /bin/mesos-agent.sh --master={{inventory_hostname}}:5050 --work_dir={{mesos_work_dir}} &
+      chdir={{mesos_build_dir}}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/test/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/test/tasks/main.yml b/roles/test/tasks/main.yml
new file mode 100644
index 0000000..b3cb5ca
--- /dev/null
+++ b/roles/test/tasks/main.yml
@@ -0,0 +1 @@
+- debug: msg="ding {{ inventory_hostname }}"

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/zookeeper/handlers/main.yml
----------------------------------------------------------------------
diff --git a/roles/zookeeper/handlers/main.yml b/roles/zookeeper/handlers/main.yml
new file mode 100644
index 0000000..daefebe
--- /dev/null
+++ b/roles/zookeeper/handlers/main.yml
@@ -0,0 +1,12 @@
+---
+- name: start zookeeper
+  service: name=zookeeper state=started enabled=yes
+  become: yes
+
+- name: stop zookeeper
+  service: name=zookeeper state=stopped
+  become: yes
+
+- name: restart zookeeper
+  service: name=zookeeper state=restarted enabled=yes
+  become: yes

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/zookeeper/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/zookeeper/tasks/main.yml b/roles/zookeeper/tasks/main.yml
new file mode 100644
index 0000000..78bcec2
--- /dev/null
+++ b/roles/zookeeper/tasks/main.yml
@@ -0,0 +1,34 @@
+---
+################################################################################
+# Setup and run Zookeeper
+- name: Download and unarchive zookeeper
+  unarchive: src="{{ zookeeper_url }}"
+      dest="{{ user_home }}"
+      copy=no
+      owner="{{ user }}"
+      group="{{ group }}"
+
+- name: open zookeeper port
+  firewalld: port=2181/tcp zone=public permanent=true state=enabled immediate=yes
+  become: yes
+
+- name: Copy zoo.cfg file
+  template: src=zoo.cfg.j2 dest="{{ zookeeper_dir }}/conf/zoo.cfg" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r"
+  notify:
+    - restart zookeeper
+
+- name: Check if systemd exists
+  stat: path=/usr/lib/systemd/system/
+  register: systemd_check
+
+- name: Systemd script.
+  template: src=zookeeper.service.j2 dest=/usr/lib/systemd/system/zookeeper.service
+  when: systemd_check.stat.exists == true
+  notify:
+    - restart zookeeper
+  become: yes
+
+- name: reload systemd daemons
+  command: systemctl daemon-reload
+  become: yes
+...

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/zookeeper/templates/zoo.cfg.j2
----------------------------------------------------------------------
diff --git a/roles/zookeeper/templates/zoo.cfg.j2 b/roles/zookeeper/templates/zoo.cfg.j2
new file mode 100644
index 0000000..8426b98
--- /dev/null
+++ b/roles/zookeeper/templates/zoo.cfg.j2
@@ -0,0 +1,28 @@
+# The number of milliseconds of each tick
+tickTime={{tick_time}}
+# The number of ticks that the initial
+# synchronization phase can take
+initLimit={{init_limit}}
+# The number of ticks that can pass between
+# sending a request and getting an acknowledgement
+syncLimit={{sync_limit}}
+# the directory where the snapshot is stored.
+# do not use /tmp for storage, /tmp here is just
+# example sakes.
+dataDir={{zookeeper_data_dir}}
+# the port at which the clients will connect
+clientPort={{ client_port }}
+# the maximum number of client connections.
+# increase this if you need to handle more clients
+#maxClientCnxns=60
+#
+# Be sure to read the maintenance section of the
+# administrator guide before turning on autopurge.
+#
+# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
+#
+# The number of snapshots to retain in dataDir
+#autopurge.snapRetainCount=3
+# Purge task interval in hours
+# Set to "0" to disable auto purge feature
+#autopurge.purgeInterval=1

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/zookeeper/templates/zookeeper.service.j2
----------------------------------------------------------------------
diff --git a/roles/zookeeper/templates/zookeeper.service.j2 b/roles/zookeeper/templates/zookeeper.service.j2
new file mode 100644
index 0000000..19c3718
--- /dev/null
+++ b/roles/zookeeper/templates/zookeeper.service.j2
@@ -0,0 +1,15 @@
+# {{ansible_managed}}
+
+[Unit]
+Description=ZooKeeper
+
+
+[Service]
+Type=forking
+ExecStart={{zookeeper_dir}}/bin/zkServer.sh start
+ExecStop={{ zookeeper_dir }}/bin/zkServer.sh stop
+Restart=always
+TimeoutSec=300
+
+[Install]
+WantedBy=multi-user.target

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/roles/zookeeper/vars/main.yml
----------------------------------------------------------------------
diff --git a/roles/zookeeper/vars/main.yml b/roles/zookeeper/vars/main.yml
new file mode 100644
index 0000000..a3e10db
--- /dev/null
+++ b/roles/zookeeper/vars/main.yml
@@ -0,0 +1,17 @@
+---
+#Variables associated with this role
+# zookeeper related variable
+zookeeper_version: 3.4.8
+zookeeper_url: http://www.us.apache.org/dist/zookeeper/zookeeper-{{zookeeper_version}}/zookeeper-{{zookeeper_version}}.tar.gz
+
+apt_cache_timeout: 3600
+client_port: "{{ zookeeper_client_port }}" 
+init_limit: 5
+sync_limit: 2
+tick_time: 2000
+data_dir: /var/lib/zookeeper
+log_dir: /var/log/zookeeper
+zookeeper_dir: "{{ user_home }}/zookeeper-{{zookeeper_version}}"
+zookeeper_data_dir: "{{ zookeeper_dir }}/data"
+
+...

http://git-wip-us.apache.org/repos/asf/airavata/blob/7429aa65/site.yml
----------------------------------------------------------------------
diff --git a/site.yml b/site.yml
new file mode 100644
index 0000000..2fc7293
--- /dev/null
+++ b/site.yml
@@ -0,0 +1,11 @@
+---
+- hosts: localhost
+  tags: test
+  roles:
+    - test
+
+
+- hosts: mesos-master
+  tags: mesos-master
+  roles:
+    - mesos