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/develop Commit: 7429aa65b0eff708debde76aadd65a04c179c157 Parents: dc6012e Author: Shameera Rathnayaka <[email protected]> Authored: Tue Aug 30 15:30:27 2016 -0400 Committer: Shameera Rathnayaka <[email protected]> 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
