--- - name: check if atomic host or fedora coreos stat: path: /run/ostree-booted register: ostree - name: set is_ostree set_fact: is_ostree: "{{ ostree.stat.exists }}" - name: gather os specific variables include_vars: "{{ item }}" with_first_found: - files: - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version|lower|replace('/', '_') }}.yml" - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}.yml" - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml" - "{{ ansible_distribution|lower }}.yml" - "{{ ansible_os_family|lower }}-{{ ansible_architecture }}.yml" - "{{ ansible_os_family|lower }}.yml" - defaults.yml paths: - ../vars skip: true tags: - facts - name: Add OpenShift Origin repository yum_repository: name: origin description: OpenShift Origin Repo baseurl: "{{ crio_rhel_repo_base_url }}" gpgcheck: no when: ansible_distribution in ["CentOS","RedHat","OracleLinux"] and not is_ostree - name: Add CRI-O PPA apt_repository: repo: ppa:projectatomic/ppa state: present when: ansible_distribution in ["Ubuntu"] - include_tasks: "crictl.yml" - name: Install crictl unarchive: src: "{{ local_release_dir }}/crictl-{{ crictl_version }}-linux-{{ image_arch }}.tar.gz" dest: "/usr/local/bin" mode: 0755 remote_src: yes - name: Make sure needed folders exist in the system with_items: - /etc/crio - /etc/containers file: path: "{{ item }}" state: directory - name: Install cri-o packages package: name: "{{ item }}" state: present when: not is_ostree with_items: "{{ crio_packages }}" - name: Check if already installed stat: path: "/bin/crio" register: need_bootstrap_crio when: is_ostree - name: Install cri-o packages with osttree raw: "export http_proxy={{ http_proxy | default('') }} && rpm-ostree install {{ crio_packages|join(' ') }}" when: is_ostree and not need_bootstrap_crio.stat.exists become: true - name: Reboot immediately for updated ostree reboot: become: true when: is_ostree and not need_bootstrap_crio.stat.exists - name: Install cri-o config template: src: crio.conf.j2 dest: /etc/crio/crio.conf - name: Copy mounts.conf copy: src: mounts.conf dest: /etc/containers/mounts.conf when: - ansible_os_family == 'RedHat' - name: Create directory for oci hooks file: path: /etc/containers/oci/hooks.d state: directory owner: root mode: 0755 - name: Reload systemd daemon systemd: daemon_reload: yes - name: Install cri-o service service: name: "{{ crio_service }}" enabled: yes state: restarted