ansible-roles/evolinux-base/tasks/hardware.yml

83 lines
2.1 KiB
YAML

---
- name: Install pciutils
apt:
name: pciutils
state: present
## Broadcom NetXtreme II
- name: Check if Broadcom NetXtreme II device is present
shell: "lspci | grep -q 'NetXtreme II'"
check_mode: no
register: broadcom
failed_when: False
changed_when: False
# TODO: add the "non-free" part to the existing sources
# instead of adding a new source
- name: Add non-free repo for Broadcom NetXtreme II
apt_repository:
repo: 'deb http://mirror.evolix.org/debian/ {{ ansible_distribution_release }} non-free'
state: present
when: broadcom|success
## RAID
- name: Detect if RAID is installed
shell: lspci | grep "RAID bus controller" | grep -v Intel
check_mode: no
register: raidmodel
changed_when: "'FAILED' in raidmodel.stdout"
failed_when: "'FAILED' in raidmodel.stdout"
- block:
- name: Install packages for HP hardware
apt:
name: cciss-vol-status
state: present
- name: Configure packages for HP hardware
template:
src: hardware/cciss-vol-statusd.j2
dest: /etc/init.d/cciss-vol-statusd
mode: "0755"
- name: Enable HP hardware in systemd
service:
name: cciss-vol-statusd
enabled: true
state: started
when: "'Hewlett-Packard Company Smart Array' in raidmodel.stdout"
- block:
- name: Install packages for DELL/LSI hardware
## With Ansible 2.0, the apt module can't install unauthenticated packages
# apt:
# name: "{{ item }}"
# state: present
# with_items:
# - megacli
# - megaclisas-status
command: "apt-get install -yq --allow-unauthenticated megacli megaclisas-status"
register: install_megacli
changed_when: not (install_megacli.stdout | search("0 upgraded") and install_megacli.stdout | search("0 newly installed"))
- name: Configure packages for DELL/LSI hardware
template:
src: hardware/megaclisas-statusd.j2
dest: /etc/default/megaclisas-statusd
mode: "0755"
- name: Enable DELL/LSI hardware in systemd
service:
name: megaclisas-statusd
enabled: true
state: started
when: "'MegaRAID SAS' in raidmodel.stdout"
- meta: flush_handlers