diff --git a/roles/common/handlers/main.yml b/roles/common/handlers/main.yml index df518bf..2900379 100644 --- a/roles/common/handlers/main.yml +++ b/roles/common/handlers/main.yml @@ -1,2 +1,3 @@ - name: sysctl update - command: sysctl -p \ No newline at end of file + command: sysctl -p +# ignore_errors: true diff --git a/roles/common/tasks/RedHat.yml b/roles/common/tasks/RedHat.yml new file mode 100644 index 0000000..c7a114e --- /dev/null +++ b/roles/common/tasks/RedHat.yml @@ -0,0 +1,48 @@ +--- +- name: Install base packages + yum: name={{item}} state=installed + with_items: + - curl + - unzip + - ca-certificates + +- name: check kernel version + shell: uname -r| tr -d '.|-' |cut -c 1-7 + register: version + +- name: uninstall firmware + yum: name={{item}} state=removed + with_items: + - kernel-firmware + when: "'{{version.stdout}}' != '2632573'" + register: newkernel + +- name: update kernel-firmware + get_url: dest=/home/{{ansible_ssh_user}}/kernel-firmware.rpm url=ftp://fr2.rpmfind.net/linux/centos/6.7/centosplus/x86_64/Packages/kernel-firmware-2.6.32-573.18.1.el6.centos.plus.noarch.rpm mode=0644 + sudo: false + when: newkernel.changed + +- shell: rpm -if /home/{{ansible_ssh_user}}/kernel-firmware.rpm + sudo: true + when: newkernel.changed + +- name: Update kernel + yum: name=kernel-debug state=latest + sudo: true + when: newkernel.changed + +- shell: grubby --set-default=/boot/vmlinuz-2.6.32-573.18.1.el6.x86_64.debug + sudo: true + when: newkernel.changed + +- shell: sleep 2 && reboot + when: newkernel.changed + async: 1 + poll: 0 + sudo: true + ignore_errors: true + +- name: waiting for server to come back + local_action: wait_for host={{ inventory_hostname }} state=started delay=15 timeout=120 port=22 + sudo: false + when: newkernel.changed diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml index b4c500e..5518529 100644 --- a/roles/common/tasks/main.yml +++ b/roles/common/tasks/main.yml @@ -12,9 +12,22 @@ include: Debian.yml when: ansible_os_family == "Debian" +- name: Conditionally install RedHat packages + include: RedHat.yml + when: ansible_os_family == "RedHat" + - name: Update /etc/hosts to list all cluster nodes template: src=etc-hosts.j2 dest=/etc/hosts mode=0644 +- name: disable ipv6 bridging + lineinfile: dest=/etc/sysctl.conf regexp="^net.bridge.bridge-nf-call-ip6tables" line="#net.bridge.bridge-nf-call-ip6tables = 0" state=present + +- name: disable ipv6 bridging + lineinfile: dest=/etc/sysctl.conf regexp="^net.bridge.bridge-nf-call-iptables" line="#net.bridge.bridge-nf-call-iptables = 0" state=present + +- name: disable ipv6 bridging + lineinfile: dest=/etc/sysctl.conf regexp="^net.bridge.bridge-nf-call-arptables" line="#net.bridge.bridge-nf-call-arptables = 0" state=present + - name: disable ipv6 lineinfile: dest=/etc/sysctl.conf regexp="^net.ipv6.conf.all.disable_ipv6" line="net.ipv6.conf.all.disable_ipv6 = 1" state=present notify: sysctl update diff --git a/roles/dcos-cli/tasks/main.yml b/roles/dcos-cli/tasks/main.yml index 28994d5..e608c0d 100644 --- a/roles/dcos-cli/tasks/main.yml +++ b/roles/dcos-cli/tasks/main.yml @@ -5,10 +5,14 @@ # and Marathon endpoints. --- - name: Install PIP - apt: name=python-pip state=installed + apt: name=python-pip state=latest - name: Install DCOS CLI - pip: name=dcoscli state=present + pip: name={{item}} state=latest + with_items: + - dcoscli + - six + - requests - name: Create DCOS CLI config directory file: path=~/.dcos state=directory mode=0700 diff --git a/roles/mesos-agent/handlers/main.yml b/roles/mesos-agent/handlers/main.yml index 81b449e..b7f874e 100644 --- a/roles/mesos-agent/handlers/main.yml +++ b/roles/mesos-agent/handlers/main.yml @@ -1,3 +1,11 @@ --- - name: Restart agent service - service: name=mesos-slave state=restarted + service: name=mesos-slave state=stopped + notify: remove-metadata + +- name: remove-metadata + file: path={{work_dir}}/meta state=absent + notify: start-agent + +- name: start-agent + service: name=mesos-slave state=started diff --git a/roles/mesos-agent/tasks/main.yml b/roles/mesos-agent/tasks/main.yml index a0c37de..98f9f9b 100644 --- a/roles/mesos-agent/tasks/main.yml +++ b/roles/mesos-agent/tasks/main.yml @@ -8,6 +8,9 @@ # # Depends on the [mesos](mesos.md) role. --- +- name: Set agent facts + set_fact: work_dir=/log/mesos + - name: Configure agent copy: content={{item.content}} dest={{item.file}} with_items: @@ -15,13 +18,13 @@ - { file: '/etc/mesos-slave/hostname', content: "{{mesos_hostname}}" } - { file: '/etc/mesos-slave/containerizers', content: 'docker,mesos' } - { file: '/etc/mesos-slave/isolation', content: 'cgroups/cpu,cgroups/mem' } - - { file: '/etc/mesos-slave/executor_registration_timeout', content: '5mins' } + - { file: '/etc/mesos-slave/executor_registration_timeout', content: '2mins' } - { file: '/etc/mesos-slave/attributes', content: "{{agent_attributes}}" } - { file: '/etc/mesos-slave/resources', content: "{{agent_resources}}" } - { file: '/etc/mesos-slave/credential', content: '/etc/mesos-slave/.credentials' } - { file: '/etc/mesos-slave/fetcher_cache_size', content: "2GB" } - { file: '/etc/mesos-slave/fetcher_cache_dir', content: "/tmp/mesos" } - - { file: '/etc/mesos-slave/work_dir', content: "/log/mesos" } + - { file: '/etc/mesos-slave/work_dir', content: "{{work_dir}}" } notify: Restart agent service - name: Configure default limits and logs diff --git a/roles/mesos-master/tasks/main.yml b/roles/mesos-master/tasks/main.yml index 1b47564..0bc9098 100644 --- a/roles/mesos-master/tasks/main.yml +++ b/roles/mesos-master/tasks/main.yml @@ -5,7 +5,7 @@ # Depends on the [mesos](mesos.md) role. --- - name: Install Mesos master packages - apt: name={{item}} state=installed + apt: name={{item}} state=installed force=yes with_items: - marathon={{marathon_version}}* - chronos={{chronos_version}}* diff --git a/roles/mesos/tasks/Debian.yml b/roles/mesos/tasks/Debian.yml index 440ebbb..89300a2 100644 --- a/roles/mesos/tasks/Debian.yml +++ b/roles/mesos/tasks/Debian.yml @@ -6,7 +6,7 @@ apt_repository: repo="deb http://repos.mesosphere.io/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} main" state=present - name: Install Mesos package - apt: name={{item}} state=installed + apt: name={{item}} state=installed force=yes with_items: - mesos={{mesos_version}}*