---
# tasklist for setting up copr
# This is the base set of files needed for copr


# again to late to do it here
# - import_tasks: "{{ tasks_path }}/cloud_setup_basic.yml"
# already included into the `base` role
#- import_tasks: "{{ tasks_path }}/postfix_basic.yml"

# To late to do it here (
#- name: setup correct hostname for copr machine
#  hostname: name="{{ copr_hostbase }}.cloud.fedoraproject.org"
#  #  hostname: name="{{ hostbase|regex_replace('.*-$', '')}}.cloud.fedoraproject.org"
#  tags:
#  - config

- name: enable epel for non-fedora hosts
  package: state=present pkg="epel-release"
  when: ansible_distribution != 'Fedora'

- name: copy .forward file
  copy: src="{{ _forward_src }}" dest="/root/.forward" owner=root group=root
  tags:
  - config

- name: deploy /etc/hosts file
  copy: src="hosts" dest=/etc/ owner=root group=root mode=644
  tags:
  - config

# https://bugzilla.redhat.com/show_bug.cgi?id=1941170
- name: mask the systemd-oomd service
  systemd:
    name: systemd-oomd
    state: stopped
    enabled: no
    masked: yes

- name: configure crond
  copy: src=sysconfig.crond dest=/etc/sysconfig/crond
  notify: restart crond

- name: install base copr packages
  package:
    name:
      - acl  # useful for ansible acl module
      - bash-completion
      - cronie-anacron
      - ethtool
      - golang-github-prometheus-node-exporter
      - rsyslog-logrotate
      - screen
      - tmux
    state: present
  tags:
    packages

- name: configure anacrond to not send mails to root user
  lineinfile: dest=/etc/anacrontab
              backup=yes
              state=present
              line='MAILTO=copr-team@redhat.com'
              regexp="^MAILTO"
  notify: restart crond

- name: override the default rsyslog logrotate file
  copy: src=syslog-logrotate dest=/etc/logrotate.d/rsyslog
  tags:
  - logrotate

- name: install copr-selinux
  package:
    state: latest
    name: copr-selinux
  tags:
  - packages

- name: restart node exporter
  service: state=started enabled=yes name=node_exporter

- name: check offloading
  shell: "ethtool -k eth0 | egrep -q 'tcp-segmentation-offload: on|generic-receive-offload: on|generic-segmentation-offload: on'"
  register: offloading
  failed_when: offloading.rc == 2
  changed_when: "1 != 1"
  check_mode: no

- name: disable offloading
  command: ethtool -K eth0 tso off gro off gso off
  when: offloading.rc == 0

- name: disable offloading (persitently)
  shell: "nmcli con modify 'cloud-init eth0' ethtool.feature-tso off ethtool.feature-gro off ethtool.feature-gso off"
  when: offloading.rc == 0
  tags:
  - config

- name: check we have the needed ipv6
  shell: "nmcli con show 'cloud-init eth0' | grep ipv6.addresses | grep {{ aws_ipv6_addr }}"
  register: ipv6_config_check
  failed_when: false
  changed_when: ipv6_config_check.rc == 1
  when: aws_ipv6_addr is defined
  tags: ipv6_config

- name: setup ipv6 networking
  shell: |
    nmcli con modify 'cloud-init eth0' ipv6.method auto ipv6.may-fail yes ipv6.never-default no ipv6.addresses '{{ aws_ipv6_addr }}'
    nmcli con up 'cloud-init eth0'
  when:
    - aws_ipv6_addr is defined
    - ipv6_config_check.changed
  tags: ipv6_config

- name: install nrpe checks
  template: src=copr_nrpe.cfg
            dest=/etc/nrpe.d/copr_nrpe.cfg
  notify:
  - restart nrpe
  tags:
  - nagios_client
  - copr_cdn
  - copr_ping

# - name: enable and run logrotate service
#   service: name="logrotate" state=started
