- name: Set flag for fedora 18 set_fact: is_F18: True when: ansible_distribution_release == "based on Fedora 18" or ansible_distribution_version == "18" - name: abort if the OS is not supported debug: msg="{{ ansible_local.local_facts.os }} Operating System is not supported" failed_when: ansible_local.local_facts.os_ver == "OS_not_supported" - name: get the uuidgen program package: name=uuid-runtime state=present when: is_debuntu - name: Test for UUID file stat: path=/etc/iiab/uuid register: uuid_file - name: Create folder to hold uuid file: path=/etc/iiab state=directory when: not uuid_file.stat.exists - name: If no uuid exists, create one shell: uuidgen register: uuid_response when: not uuid_file.stat.exists - name: Put the uuid in place shell: echo {{ uuid_response.stdout_lines[0] }} > /etc/iiab/uuid when: not uuid_file.stat.exists - name: get the uuid command: cat /etc/iiab/uuid register: stored_uuid - name: get the value into a variable set_fact: uuid={{ stored_uuid.stdout_lines[0] }} # for rpi, without rtc, we need time as soon as possible - name: Install chrony package package: name={{ item }} state=present with_items: - chrony tags: - download #TODO: Use regexp filter instead of hard-code ip - name: Update chrony config file template: backup=no dest=/etc/chrony.conf src=chrony.conf.j2 - name: Disable apparmor -- on by default in ubuntu service: name=apparmor enabled=False state=stopped when: is_ubuntu - name: Disable selinux on next boot selinux: state=disabled register: selinux_disabled when: ansible_selinux is defined and ansible_version >= '2' and ansible_selinux or ansible_selinux['status'] is defined and ansible_version < '2' and ansible_selinux['status'] != 'disabled' - name: Disable selinux for this session (if needed) command: setenforce Permissive when: selinux_disabled is defined and selinux_disabled.changed ## DISCOVER PLATFORMS ###### - name: Discover if this is a rpi -- assume if so it is running raspbian set_fact: rpi_model: "rpi" is_rpi: "True" when: ansible_local.local_facts.os == "raspbian" ignore_errors: true - include: prep.yml # we need to inialize the ini file - include: iiab_ini.yml - include: computed_vars.yml - include: detected_network.yml when: not installing # Patch Fedora 21+ so usbmount works # Set flag to True that was initialized to False in role defaults # We can't undo this - name: Does udev need patching set_fact: udev_needs_patch: True when: ansible_distribution == "Fedora" and ansible_distribution_version >= "21" # Same patch for CentOS 7.2 - name: Does udev need patching for Centos set_fact: udev_needs_patch: True when: ansible_distribution == "CentOS" and ansible_distribution_version >= "7.2.1511" - name: Copy udevd service to /etc/systemd/system to modify copy: src=/usr/lib/systemd/system/systemd-udevd.service dest=/etc/systemd/system/systemd-udevd.service owner=root group=root mode=0644 when: udev_needs_patch - name: Change MountFlags from slave to shared lineinfile: backup=no dest=/etc/systemd/system/systemd-udevd.service regexp='^MountFlags' line='MountFlags=shared' state=present when: udev_needs_patch - name: Restart systemd-udevd.service service: name=systemd-udevd state=restarted when: udev_needs_patch and not installing # Put conditional actions for hardware platforms here - include: raspberry_pi_2.yml when: rpi_model != "none" - name: Check if the identifier for intel's NUC6 builtin wifi is present shell: "lsusb | grep 8087:0a2b | wc |gawk '{print $1}'" register: usb_NUC6 ignore_errors: true - name: download the firmware for built in wifi on NUC6 get_url: dest=/lib/firmware url={{ iiab_download_url }}/iwlwifi-8000C-13.ucode when: usb_NUC6.stdout|int > 0