---

- name: setting absent kernel params
  sysctl:
    name: "{{ item.name }}"
    value: "{{ item.value }}"
    sysctl_set: yes
    ignoreerrors: yes
    state: absent
  with_items:
    - { name: 'net.ipv4.tcp_tw_recycle', value: 0 }
  when: tuning_kernel_parameters

- name: setting present kernel params
  sysctl: name="{{ item.name }}" value="{{ item.value }}" ignoreerrors=yes state=present
  with_items:
    - { name: 'net.core.somaxconn', value: 32768 }
    - { name: 'vm.swappiness', value: 0 }
    - { name: 'net.ipv4.tcp_syncookies', value: 0 }
    - { name: 'fs.file-max', value: 1000000 }
  when: tuning_kernel_parameters

- name: update /etc/security/limits.conf
  blockinfile:
    dest: /etc/security/limits.conf
    insertafter: EOF
    block: |
      {{ deploy_user }}        soft        nofile        1000000
      {{ deploy_user }}        hard        nofile        1000000
      {{ deploy_user }}        soft        stack         10240
  when: tuning_kernel_parameters

- name: disable swap
  command: swapoff -a
  when: ansible_swaptotal_mb > 0

- name: set hostname if hostname is not distinguishable
  hostname: name=ip-{{ ansible_default_ipv4.address | replace(".","-") }}
  register: hostname_set
  when:
    - set_hostname
    - "ansible_default_ipv4.address | replace('.','-') not in ansible_hostname"

- name: set hostname in hosts file
  lineinfile: dest=/etc/hosts line='127.0.0.1     ip-{{ ansible_default_ipv4.address | replace(\".\",\"-\") }}'
  when: set_hostname

- name: determine if firewalld is running
  command: bash -c 'firewall-cmd --state || exit 0'
  register: firewalld_running
  ignore_errors: true
  changed_when: false

- name: disable firewalld
  service: name=firewalld enabled=no state=stopped
  when: |
    not (enable_firewalld is defined and enable_firewalld) and
    firewalld_running.stdout.strip() == "running"

- name: or to enable firewalld
  service: name=firewalld enabled=yes state=started
  when: |
    enable_firewalld is defined and enable_firewalld and
    firewalld_running.stdout.strip() != "running"

# modify irqbalance configuration file
- name: check centos configuration file exists
  stat: path=/etc/sysconfig/irqbalance
  register: centos_irq_config_file

- name: check debian configuration file exists
  stat: path=/etc/default/irqbalance
  register: debian_irq_config_file

- name: modify centos irqbalance configuration file
  lineinfile:
    dest=/etc/sysconfig/irqbalance
    regexp='(?<!_)ONESHOT='
    line='ONESHOT=yes'
  when:
    - tuning_irqbalance_value
    - centos_irq_config_file.stat.exists

- name: modify debian irqbalance configuration file
  lineinfile:
    dest=/etc/default/irqbalance
    regexp='ONESHOT='
    line='ONESHOT="1"'
  when:
    - tuning_irqbalance_value
    - debian_irq_config_file.stat.exists

# start irqbalance value
- name: start irqbalance service
  service: name=irqbalance state=started
  ignore_errors: true
  when: tuning_irqbalance_value
