#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

- name: "set swappiness to zero"
  sysctl: name=vm.swappiness value=0

# The kernel memory settings below have been added based on performance testing done
# with Microsoft Azure based clusters. For more details please refer to
# https://access.redhat.com/solutions/90883 and https://bugzilla.kernel.org/show_bug.cgi?id=107111
- name: "set vm.min_free_kbytes to 1G"
  sysctl: name=vm.min_free_kbytes value=1000000
  when: cluster_type == 'azure' or cluster_type == 'ec2'
- name: "set vm.zone_reclaim_mode to 1"
  sysctl: name=vm.zone_reclaim_mode value=1
  when: cluster_type == 'azure' or cluster_type == 'ec2'

# The TCP/IP setting below has been added based on performance testing done 
# with Microsoft Azure based clusters. For more details refer to
# https://access.redhat.com/solutions/30453
- name: "set net.core.somaxconn=2048"
  sysctl: name=net.core.somaxconn value=2048
  when: cluster_type == 'azure' or cluster_type == 'ec2'

- name: "remove old limits file"
  file: path=/etc/security/limits.d/20-nproc.conf state=absent
- name: "copy new limits.conf"
  copy: src=roles/common/files/limits.conf dest=/etc/security/limits.conf
- name: "configure user shell"
  template: src=roles/common/templates/{{ item }} dest=/home/{{ cluster_user }}/.{{ item }} owner={{ cluster_user }} group={{ cluster_group }} mode=0644
  with_items:
    - bashrc
    - bash_profile
    - vimrc
- name: "configure root shell"
  template: src=roles/common/templates/root_bashrc dest=/root/.bashrc mode=0644
