From a009e266ded2b8da0402ed14a85eec25b91f0d65 Mon Sep 17 00:00:00 2001 From: enxebre Date: Tue, 12 May 2015 11:56:41 +0100 Subject: [PATCH] moving marathon out to a pluggable container --- .gitignore | 1 + CONTRIBUTING.md | 125 +++++++++++++++++++ Vagrantfile | 6 +- bootstrap/aws/util.sh | 1 + bootstrap/common.sh | 4 + bootstrap/digitalocean/config-default.sh | 4 +- bootstrap/digitalocean/util.sh | 1 + bootstrap/vagrant/util.sh | 1 + inventory/aws/inventory | 3 + inventory/digitalocean/inventory | 3 + packer/scripts/ubuntu/install_marathon.sh | 11 -- packer/ubuntu-14.04_amd64-amis.json | 9 +- packer/ubuntu-14.04_amd64-droplet.json | 8 +- packer/ubuntu-14.04_amd64-google.json | 7 +- packer/ubuntu-14.04_amd64.json | 5 +- plugins.yml | 4 + roles/marathon/defaults/main.yml | 5 - roles/marathon/handlers/main.yml | 6 - roles/marathon/meta/main.yml | 128 -------------------- roles/marathon/tasks/main.yml | 39 ------ roles/marathon/templates/marathon-consul.j2 | 11 -- roles/marathon/vars/main.yml | 2 - site.yml | 2 +- wercker.yml | 1 + 24 files changed, 161 insertions(+), 226 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100755 packer/scripts/ubuntu/install_marathon.sh create mode 100644 plugins.yml delete mode 100644 roles/marathon/defaults/main.yml delete mode 100644 roles/marathon/handlers/main.yml delete mode 100644 roles/marathon/meta/main.yml delete mode 100644 roles/marathon/tasks/main.yml delete mode 100644 roles/marathon/templates/marathon-consul.j2 delete mode 100644 roles/marathon/vars/main.yml diff --git a/.gitignore b/.gitignore index 9ea147e9..fee741e9 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ ssh.config vendor .bundle .kitchen +plugins diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..bcb22b20 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,125 @@ +How to contribute +================= + +Apollo is based on an strong open-source philosophy so we would love your contributions. + +## Apollo Core + +Apollo is built on top of several opensource tecnologies: + +* [Packer](https://packer.io) for automating the build of the base images +* [Terraform](https://www.terraform.io/) for provisioning the infrastructure +* [Apache Mesos](http://mesos.apache.org/) for cluster management, scheduling and resource isolation +* [Consul](http://consul.io) for service discovery, DNS +* [Docker](http://docker.io) for application container runtimes +* [Weave](https://github.com/zettio/weave) for networking of docker containers + +We want Apollo core to be as slim as possible providing a cloud agnostic Mesos cluster with an autodiscovery system based on consul for multi-service tasks. + +This reduces the impact of core changes allowing the user customise Apollo behaviour via plugins for satisfying the requirements of a given project. + +If you find an issue belonging to any of the tools used by Apollo please, refer to the project in question. + +## Contributing to Apollo Core + +* Submit an issue describing your proposed change to the Apollo repo. + +* Fork the repo, develop and test your feature. + +* Submit a pull request. + +## Contributing to Apollo Core Plugins + +* Create a new issue describing your proposed change to the plugin repo. + +* Fork the repo, develop and test your feature. + +* Create a pull request. + +## Developing Apollo Plugins + +We want Apollo to be as pluggable as possible making contributions easier via core-agnostic plugins giving them freedom and flexibility regarding isolated testing, development and release management. + +A new Apollo plugin is purely an Ansible role stuck to some Apollo conventions and hooked into an Apollo deploy. + +* Generate your plugin scaffolder: + +At the moment we rely on [ansible-galaxy](http://docs.ansible.com/galaxy.html) for generating the plugin scaffolder, we will be providing a custom tool for generating a scaffolder for matching better the Apollo conventions soon. + +```yml +ansible-galaxy init marathon +``` + +* Hook up a the new plugin e.g yet another framework on top of Mesos into Apollo adding your role in the plugins.yml. For more info see [advanced-control-over-role-requirements-files](http://docs.ansible.com/galaxy.html#advanced-control-over-role-requirements-files). E.g: + +```yml +# Apollo core plugins. +- src: https://github.com/Capgemini/apollo-core-plugin-marathon.git + path: ./plugins + name: marathon +``` + +* Add the plugin into the playbook editing site.yml like: + +```yml +- hosts: mesos_masters + roles: + - { role: mesos, mesos_install_mode: "master", tags: ["mesos-master"] } + - zookeeper + - { role: '../plugins/marathon' } +``` + + +## Best practices. + +* When creating a new plugin we are keen on using the ansible role for deploying Mesos frameworks inside containers so we achieve total flexibility, reusability and portabilty across operating systems. + +```yml +# tasks for running docker marathon +- name: run marathon container + when: marathon_enabled == "Y" + docker: + name: marathon + image: "{{ marathon_image }}" + state: started + restart_policy: always + ports: + - "{{ marathon_port }}:{{ marathon_port }}" + net: host + command: "--master {{marathon_master_peers}} --zk {{marathon_zk_peers}}" + hostname: "{{ hostname }}" + volumes: + - "/var/run/docker.sock:/tmp/docker.sock" +``` + +* The variables in the role following the pattern: + +```yml +pluginname_variablename: value +``` + +will be automatically overridable via environment variables using the pattern "APOLLO_PLUGINNAME_VARNAME". Every plugin should provide the capacity for been enabled or disabled via these variables e.g: + +```yml +marathon_enabled: 'Y' +marathon_version: 'v0.8.1' +``` + +* Your plugin must ensure state is consistent when it is disabled, e.g: +```yml +- name: stop marathon container + when: marathon_enabled == "N" + docker: + name: marathon + image: "{{ marathon_image }}" + state: stopped +``` + + +## Contributing a new Apollo Plugin + +* Apollo gives official support only for core plugins. + +* If you think your plugin should be part of Apollo core plugins please create a new issue describing your feature, and explaining the motivation. + +* You can hook up your own plugins into Apollo even if they are not core plugins as explained in section above. diff --git a/Vagrantfile b/Vagrantfile index 188e1777..2385b097 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -30,6 +30,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| "zookeeper_servers:children" => ["mesos_masters"], "consul_servers:children" => ["mesos_masters"], "weave_servers:children" => ["mesos_slaves", "load_balancers"], + "marathon_servers:children" => ["mesos_masters"], } # Mesos master nodes @@ -43,6 +44,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| } end mesos_zk_url = "zk://"+master_infos.map{|master| master[:ip]+":2181"}.join(",")+"/mesos" + marathon_zk_url = "zk://"+master_infos.map{|master| master[:ip]+":2181"}.join(",") zookeeper_conf = master_infos.map{|master| "server.#{master[:zookeeper_id]}"+"="+master[:ip]+":2888:3888"}.join("\n") consul_join = master_infos.map{|master| master[:ip]}.join(" ") @@ -75,8 +77,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| zookeeper_conf: zookeeper_conf, mesos_master_quorum: 2, mesos_zk_url: mesos_zk_url, - mesos_local_address: node[:ip], - marathon_local_address: node[:ip], + marathon_zk_url: marathon_zk_url, + marathon_hostname: node[:ip], consul_join: consul_join, consul_advertise: node[:ip], consul_bind_addr: node[:ip], diff --git a/bootstrap/aws/util.sh b/bootstrap/aws/util.sh index 536be73a..732e831a 100644 --- a/bootstrap/aws/util.sh +++ b/bootstrap/aws/util.sh @@ -30,6 +30,7 @@ verify_prereqs() { apollo_launch() { terraform_apply + get_ansible_requirements ansible_ssh_config ansible_playbook_run diff --git a/bootstrap/common.sh b/bootstrap/common.sh index 767c68d1..63c54bf7 100644 --- a/bootstrap/common.sh +++ b/bootstrap/common.sh @@ -13,6 +13,10 @@ get_apollo_variables() { echo ${var_list[@]} } +get_ansible_requirements() { + ansible-galaxy install -f -n -r plugins.yml +} + check_terraform_version() { local IFS='.' diff --git a/bootstrap/digitalocean/config-default.sh b/bootstrap/digitalocean/config-default.sh index 2b21c12b..6b14c8c4 100644 --- a/bootstrap/digitalocean/config-default.sh +++ b/bootstrap/digitalocean/config-default.sh @@ -8,8 +8,8 @@ TF_VAR_region=${TF_VAR_region:-lon1} TF_VAR_key_file=${TF_VAR_key_file:?"Need to set TF_VAR_key_file non-empty"} TF_VAR_do_token=${TF_VAR_do_token:?"Need to set TF_VAR_do_token non-empty"} -TF_VAR_atlas_artifact_master=${TF_VAR_atlas_artifact_master:-capgemini/apollo-mesos-ubuntu-14.04-amd64} -TF_VAR_atlas_artifact_slave=${TF_VAR_atlas_artifact_slave:-capgemini/apollo-mesos-ubuntu-14.04-amd64} +TF_VAR_atlas_artifact_master=${TF_VAR_atlas_artifact_master:-enxebre/apollo-mesos-ubuntu-14.04-amd64} +TF_VAR_atlas_artifact_slave=${TF_VAR_atlas_artifact_slave:-enxebre/apollo-mesos-ubuntu-14.04-amd64} TF_VAR_atlas_artifact_version_master=${TF_VAR_atlas_artifact_version_master:-1} TF_VAR_atlas_artifact_version_slave=${TF_VAR_atlas_artifact_version_slave:-1} diff --git a/bootstrap/digitalocean/util.sh b/bootstrap/digitalocean/util.sh index 0c302802..3b7e95e6 100644 --- a/bootstrap/digitalocean/util.sh +++ b/bootstrap/digitalocean/util.sh @@ -22,6 +22,7 @@ verify_prereqs() { apollo_launch() { terraform_apply + get_ansible_requirements ansible_playbook_run open_urls } diff --git a/bootstrap/vagrant/util.sh b/bootstrap/vagrant/util.sh index 1426623b..280a1500 100644 --- a/bootstrap/vagrant/util.sh +++ b/bootstrap/vagrant/util.sh @@ -13,6 +13,7 @@ verify_prereqs() { } apollo_launch() { + get_ansible_requirements vagrant up --provision } diff --git a/inventory/aws/inventory b/inventory/aws/inventory index 734379d3..09c73fe9 100644 --- a/inventory/aws/inventory +++ b/inventory/aws/inventory @@ -19,6 +19,9 @@ load_balancers [zookeeper_servers:children] mesos_masters +[marathon_servers:children] +mesos_masters + [consul_servers:children] mesos_masters diff --git a/inventory/digitalocean/inventory b/inventory/digitalocean/inventory index 5d6da433..914137be 100644 --- a/inventory/digitalocean/inventory +++ b/inventory/digitalocean/inventory @@ -13,6 +13,9 @@ load_balancers [zookeeper_servers:children] mesos_masters +[marathon_servers:children] +mesos_masters + [consul_servers:children] mesos_masters diff --git a/packer/scripts/ubuntu/install_marathon.sh b/packer/scripts/ubuntu/install_marathon.sh deleted file mode 100755 index 4907da46..00000000 --- a/packer/scripts/ubuntu/install_marathon.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -set -eux -set -o pipefail - -sudo apt-get -y update -sudo apt-get install -y marathon=${MARATHON_VERSION} - -sudo service marathon stop || true -echo manual | sudo tee /etc/init/marathon.override >/dev/null -sudo mkdir -p /etc/marathon/conf -echo 300000 | sudo tee /etc/marathon/conf/task_launch_timeout >/dev/null diff --git a/packer/ubuntu-14.04_amd64-amis.json b/packer/ubuntu-14.04_amd64-amis.json index 8b8050b2..9dda5859 100644 --- a/packer/ubuntu-14.04_amd64-amis.json +++ b/packer/ubuntu-14.04_amd64-amis.json @@ -2,8 +2,7 @@ "variables": { "aws_access_key": "{{env `AWS_ACCESS_KEY_ID`}}", "aws_secret_key": "{{env `AWS_ACCESS_KEY`}}", - "mesos_version": "0.22.1-1.0.ubuntu1404", - "marathon_version": "0.8.1-1.0.171.ubuntu1404", + "mesos_version": "0.22.0-1.0.ubuntu1404", "consul_version": "0.5.0", "weave_version": "v0.10.0", "version": "0.2.0", @@ -14,7 +13,7 @@ "builders": [{ "type": "amazon-ebs", "ami_name": "apollo-mesos-ubuntu-14.04-amd64 {{timestamp}}", - "ami_description": "Ubuntu 14.04 LTS, Mesos {{user `mesos_version`}}, Docker, Marathon, Consul {{user `consul_version`}}, Weave {{user `weave_version`}}, and Zookeeper.", + "ami_description": "Ubuntu 14.04 LTS, Mesos {{user `mesos_version`}}, Docker, Consul {{user `consul_version`}}, Weave {{user `weave_version`}}, and Zookeeper.", "access_key": "{{user `aws_access_key`}}", "secret_key": "{{user `aws_secret_key`}}", "region": "{{user `aws_region`}}", @@ -35,15 +34,13 @@ "environment_vars": [ "CONSUL_VERSION={{user `consul_version`}}", "WEAVE_VERSION={{user `weave_version`}}", - "MESOS_VERSION={{user `mesos_version`}}", - "MARATHON_VERSION={{user `marathon_version`}}" + "MESOS_VERSION={{user `mesos_version`}}" ], "scripts": [ "scripts/ubuntu/base.sh", "scripts/common/sshd.sh", "scripts/ubuntu/install_docker.sh", "scripts/ubuntu/install_mesos.sh", - "scripts/ubuntu/install_marathon.sh", "scripts/common/install_consul.sh", "scripts/ubuntu/install_dnsmasq.sh", "scripts/common/install_weave.sh" diff --git a/packer/ubuntu-14.04_amd64-droplet.json b/packer/ubuntu-14.04_amd64-droplet.json index 44a585f4..96837d9d 100644 --- a/packer/ubuntu-14.04_amd64-droplet.json +++ b/packer/ubuntu-14.04_amd64-droplet.json @@ -5,7 +5,9 @@ "digitalocean_size": "{{env `DIGITALOCEAN_SIZE`}}", "digitalocean_image": "{{env `DIGITALOCEAN_IMAGE`}}", "mesos_version": "0.22.1-1.0.ubuntu1404", - "marathon_version": "0.8.1-1.0.171.ubuntu1404", + "digitalocean_region": "lon1", + "digitalocean_size": "512MB", + "mesos_version": "0.22.0-1.0.ubuntu1404", "consul_version": "0.5.0", "weave_version": "v0.10.0", "version": "0.2.0" @@ -30,15 +32,13 @@ "environment_vars": [ "CONSUL_VERSION={{user `consul_version`}}", "WEAVE_VERSION={{user `weave_version`}}", - "MESOS_VERSION={{user `mesos_version`}}", - "MARATHON_VERSION={{user `marathon_version`}}" + "MESOS_VERSION={{user `mesos_version`}}" ], "scripts": [ "scripts/ubuntu/base.sh", "scripts/common/sshd.sh", "scripts/ubuntu/install_docker.sh", "scripts/ubuntu/install_mesos.sh", - "scripts/ubuntu/install_marathon.sh", "scripts/common/install_consul.sh", "scripts/ubuntu/install_dnsmasq.sh", "scripts/common/install_weave.sh" diff --git a/packer/ubuntu-14.04_amd64-google.json b/packer/ubuntu-14.04_amd64-google.json index 3f16724d..5db5d46e 100644 --- a/packer/ubuntu-14.04_amd64-google.json +++ b/packer/ubuntu-14.04_amd64-google.json @@ -5,7 +5,6 @@ "source_image": "{{env `GCS_SOURCE_IMAGE`}}", "zone": "{{env `GCS_ZONE`}}", "mesos_version": "0.22.1-1.0.ubuntu1404", - "marathon_version": "0.8.1-1.0.171.ubuntu1404", "consul_version": "0.5.0", "weave_version": "v0.10.0", "version": "0.2.0" @@ -13,7 +12,7 @@ "builders": [{ "type": "googlecompute", "image_name": "apollo-mesos-ubuntu-14.04-amd64", - "image_description": "Ubuntu 14.04 LTS, Meosos {{user `mesos_version`}}, Docker, Marathon, Consul {{user `consul_version`}}, Weave {{user `weave_version`}}, and Zookeeper.", + "image_description": "Ubuntu 14.04 LTS, Meosos {{user `mesos_version`}}, Docker, Consul {{user `consul_version`}}, Weave {{user `weave_version`}}, and Zookeeper.", "ssh_username": "ubuntu", "ssh_timeout": "10m", "account_file": "{{user `account_file`}}", @@ -32,15 +31,13 @@ "environment_vars": [ "CONSUL_VERSION={{user `consul_version`}}", "WEAVE_VERSION={{user `weave_version`}}", - "MESOS_VERSION={{user `mesos_version`}}", - "MARATHON_VERSION={{user `marathon_version`}}" + "MESOS_VERSION={{user `mesos_version`}}" ], "scripts": [ "scripts/ubuntu/base.sh", "scripts/common/sshd.sh", "scripts/ubuntu/install_docker.sh", "scripts/ubuntu/install_mesos.sh", - "scripts/ubuntu/install_marathon.sh", "scripts/common/install_consul.sh", "scripts/ubuntu/install_dnsmasq.sh", "scripts/common/install_weave.sh" diff --git a/packer/ubuntu-14.04_amd64.json b/packer/ubuntu-14.04_amd64.json index 745c637f..1e613b43 100644 --- a/packer/ubuntu-14.04_amd64.json +++ b/packer/ubuntu-14.04_amd64.json @@ -5,7 +5,6 @@ "hostname": "ubuntu", "version": "0.2.0", "mesos_version": "0.22.1-1.0.ubuntu1404", - "marathon_version": "0.8.1-1.0.171.ubuntu1404", "consul_version": "0.5.0", "weave_version": "v0.10.0", "access_token": "{{env `ATLAS_TOKEN`}}", @@ -90,8 +89,7 @@ "environment_vars": [ "CONSUL_VERSION={{user `consul_version`}}", "WEAVE_VERSION={{user `weave_version`}}", - "MESOS_VERSION={{user `mesos_version`}}", - "MARATHON_VERSION={{user `marathon_version`}}" + "MESOS_VERSION={{user `mesos_version`}}" ], "scripts": [ "scripts/ubuntu/base.sh", @@ -102,7 +100,6 @@ "scripts/common/sshd.sh", "scripts/ubuntu/install_docker.sh", "scripts/ubuntu/install_mesos.sh", - "scripts/ubuntu/install_marathon.sh", "scripts/common/install_consul.sh", "scripts/ubuntu/install_dnsmasq.sh", "scripts/common/install_weave.sh" diff --git a/plugins.yml b/plugins.yml new file mode 100644 index 00000000..4d869d5b --- /dev/null +++ b/plugins.yml @@ -0,0 +1,4 @@ +# Apollo core plugins. +- src: https://github.com/Capgemini/apollo-core-plugin-marathon.git + path: ./plugins + name: marathon diff --git a/roles/marathon/defaults/main.yml b/roles/marathon/defaults/main.yml deleted file mode 100644 index 002953d6..00000000 --- a/roles/marathon/defaults/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# defaults file for marathon -marathon_port: 8080 -consul_dir: /etc/consul.d -marathon_local_address: "{{ansible_eth0.ipv4.address}}" diff --git a/roles/marathon/handlers/main.yml b/roles/marathon/handlers/main.yml deleted file mode 100644 index fa5682f6..00000000 --- a/roles/marathon/handlers/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# handlers file for marathon -# Restart service marathon, in all cases -- name: Restart marathon - sudo: yes - shell: /sbin/restart marathon diff --git a/roles/marathon/meta/main.yml b/roles/marathon/meta/main.yml deleted file mode 100644 index 78598b03..00000000 --- a/roles/marathon/meta/main.yml +++ /dev/null @@ -1,128 +0,0 @@ ---- -galaxy_info: - author: Graham Taylor - description: - company: Capgemini - # Some suggested licenses: - # - BSD (default) - # - MIT - # - GPLv2 - # - GPLv3 - # - Apache - # - CC-BY - license: license (MIT) - min_ansible_version: 1.2 - # - # Below are all platforms currently available. Just uncomment - # the ones that apply to your role. If you don't see your - # platform on this list, let us know and we'll get it added! - # - platforms: - #- name: EL - # versions: - # - all - # - 5 - # - 6 - # - 7 - #- name: GenericUNIX - # versions: - # - all - # - any - #- name: Fedora - # versions: - # - all - # - 16 - # - 17 - # - 18 - # - 19 - # - 20 - #- name: SmartOS - # versions: - # - all - # - any - #- name: opensuse - # versions: - # - all - # - 12.1 - # - 12.2 - # - 12.3 - # - 13.1 - # - 13.2 - #- name: Amazon - # versions: - # - all - # - 2013.03 - # - 2013.09 - #- name: GenericBSD - # versions: - # - all - # - any - #- name: FreeBSD - # versions: - # - all - # - 8.0 - # - 8.1 - # - 8.2 - # - 8.3 - # - 8.4 - # - 9.0 - # - 9.1 - # - 9.1 - # - 9.2 - - name: Ubuntu - versions: - # - all - # - lucid - # - maverick - # - natty - # - oneiric - # - precise - # - quantal - # - raring - # - saucy - - trusty - #- name: SLES - # versions: - # - all - # - 10SP3 - # - 10SP4 - # - 11 - # - 11SP1 - # - 11SP2 - # - 11SP3 - #- name: GenericLinux - # versions: - # - all - # - any - #- name: Debian - # versions: - # - all - # - etch - # - lenny - # - squeeze - # - wheezy - # - # Below are all categories currently available. Just as with - # the platforms above, uncomment those that apply to your role. - # - categories: - - cloud - #- cloud:ec2 - #- cloud:gce - #- cloud:rax - #- clustering - #- database - #- database:nosql - #- database:sql - #- development - #- monitoring - #- networking - #- packaging - - system - #- web -dependencies: - - role: consul - # List your role dependencies here, one per line. Only - # dependencies available via galaxy should be listed here. - # Be sure to remove the '[]' above if you add dependencies - # to this list. diff --git a/roles/marathon/tasks/main.yml b/roles/marathon/tasks/main.yml deleted file mode 100644 index dc1a95a3..00000000 --- a/roles/marathon/tasks/main.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -# tasks file for marathon -- name: Set Marathon hostname - sudo: yes - copy: - content: "{{marathon_local_address}}" - dest: /etc/marathon/conf/hostname - mode: 0644 - notify: - - Restart marathon - tags: - - marathon - -- name: Set Marathon consul service definition - sudo: yes - template: - src: marathon-consul.j2 - dest: "{{ consul_dir }}/marathon.json" - notify: - - Restart consul - tags: - - marathon - -- name: remove marathon override - sudo: yes - file: - path: /etc/init/marathon.override - state: absent - tags: - - marathon - -- name: ensure marathon is running (and enable it at boot) - sudo: yes - service: - name: marathon - state: started - enabled: yes - tags: - - marathon diff --git a/roles/marathon/templates/marathon-consul.j2 b/roles/marathon/templates/marathon-consul.j2 deleted file mode 100644 index 6ca3ec6d..00000000 --- a/roles/marathon/templates/marathon-consul.j2 +++ /dev/null @@ -1,11 +0,0 @@ -{ - "service": { - "name": "marathon", - "tags": [ "marathon" ], - "port": {{ marathon_port }}, - "check": { - "script": "curl --silent --show-error --fail --dump-header /dev/stderr --retry 2 http://{{ marathon_local_address }}:{{ marathon_port }}/ping", - "interval": "10s" - } - } -} diff --git a/roles/marathon/vars/main.yml b/roles/marathon/vars/main.yml deleted file mode 100644 index 81800958..00000000 --- a/roles/marathon/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for marathon diff --git a/site.yml b/site.yml index 51a69955..5b5ecd44 100644 --- a/site.yml +++ b/site.yml @@ -13,7 +13,7 @@ roles: - { role: mesos, mesos_install_mode: "master", tags: ["mesos-master"] } - zookeeper - - marathon + - { role: '../plugins/marathon' } - hosts: mesos_slaves roles: diff --git a/wercker.yml b/wercker.yml index 6bd9bc40..bc6fecaa 100644 --- a/wercker.yml +++ b/wercker.yml @@ -36,4 +36,5 @@ build: name: syntax-check ansible playbook code: | echo localhost > wercker_inventory + ansible-galaxy install -f -n -r plugins.yml ansible-playbook -i wercker_inventory --syntax-check site.yml