diff options
Diffstat (limited to 'roles/docker/tasks')
| -rw-r--r-- | roles/docker/tasks/configure_apt.yml | 15 | ||||
| -rw-r--r-- | roles/docker/tasks/configure_dnf.yml | 18 | ||||
| -rw-r--r-- | roles/docker/tasks/configure_yum.yml | 38 | ||||
| -rw-r--r-- | roles/docker/tasks/install_docker.yml | 14 | ||||
| -rw-r--r-- | roles/docker/tasks/install_podman.yml | 12 | ||||
| -rw-r--r-- | roles/docker/tasks/main.yml | 24 | 
6 files changed, 121 insertions, 0 deletions
diff --git a/roles/docker/tasks/configure_apt.yml b/roles/docker/tasks/configure_apt.yml new file mode 100644 index 0000000..3fd961a --- /dev/null +++ b/roles/docker/tasks/configure_apt.yml @@ -0,0 +1,15 @@ +--- +# tasks file for ansible-role-cuda +- name: Trust packaging key for Nvidia repositories (apt) +  apt_key: +    data: "{{ lookup('file', 'files/nvidia_docker_packaging_key.asc') }}" +    id: "{{ nvidia_docker_packaging_key_id }}" +    state: present + +- name: Configure Nvidia repository (apt) +  apt_repository: +    repo: "deb {{ nvidia_docker_repo_url }}/{{ nvidia_docker_repo_subfolder }} /" +    filename: nvidia_docker +    state: present + +# vim:ft=ansible: diff --git a/roles/docker/tasks/configure_dnf.yml b/roles/docker/tasks/configure_dnf.yml new file mode 100644 index 0000000..73ecb30 --- /dev/null +++ b/roles/docker/tasks/configure_dnf.yml @@ -0,0 +1,18 @@ +--- +- name: Import NVIDIA Docker repository gpg keys +  rpm_key: +    key: "{{ nvidia_docker_repo_url }}/{{ item }}/gpgkey" +    state: present +  with_items: "{{ nvidia_repos }}" +  when: "'cuda' in group_names" + +- name: Configure Nvidia repositories (yum) +  yum_repository: +    name: "{{ item }}" +    description: Official {{ item }} repository +    baseurl: "{{ nvidia_docker_repo_url }}/{{ item }}/{{ nvidia_docker_repo_subfolder }}/x86_64/" +    gpgkey: "{{ nvidia_docker_repo_url }}/{{ item }}/gpgkey" +    gpgcheck: no +    enabled: yes +  with_items: "{{ nvidia_repos }}" +  when: "'cuda' in group_names" diff --git a/roles/docker/tasks/configure_yum.yml b/roles/docker/tasks/configure_yum.yml new file mode 100644 index 0000000..99a2743 --- /dev/null +++ b/roles/docker/tasks/configure_yum.yml @@ -0,0 +1,38 @@ +--- +- name: Upload packaging key for docker repositories +  copy: +    src: docker_packaging_key.asc +    dest: "{{ docker_rpm_key_path }}" +    mode: 0644 + +- name: Import Docker CE repository gpg key +  rpm_key: +    key: https://download.docker.com/linux/centos/gpg +    state: present + +- name: Import NVIDIA Docker repository gpg keys +  rpm_key: +    key: "{{ nvidia_docker_repo_url }}/{{ item }}/gpgkey" +    state: present +  with_items: "{{ nvidia_repos }}" + +- name: Configure docker repositories (yum) +  yum_repository: +    name: "docker-ce-{{ item }}" +    description: Official docker-ce repository +    baseurl: "{{ docker_repo_url }}/{{ docker_repo_subfolder }}/x86_64/{{ item }}" +    gpgkey: https://download.docker.com/linux/centos/gpg +    gpgcheck: yes +    enabled: yes +  with_items: +    - stable + +- name: Configure Nvidia repositories (yum) +  yum_repository: +    name: "{{ item }}" +    description: Official {{ item }} repository +    baseurl: "{{ nvidia_docker_repo_url }}/{{ item }}/{{ nvidia_docker_repo_subfolder }}/x86_64/" +    gpgkey: "{{ nvidia_docker_repo_url }}/{{ item }}/gpgkey" +    gpgcheck: no +    enabled: yes +  with_items: "{{ nvidia_repos }}" diff --git a/roles/docker/tasks/install_docker.yml b/roles/docker/tasks/install_docker.yml new file mode 100644 index 0000000..9ae0cb9 --- /dev/null +++ b/roles/docker/tasks/install_docker.yml @@ -0,0 +1,14 @@ +- name: Install requirements +  package: name="{{ item }}" state=present +  with_items: +    - lvm2 + +- name: Install nvidia docker +  package: name="nvidia-docker2" state=present +  notify: +    - restart docker + +- name: Install additional packages +  package: name="{{ item }}" state=present +  with_items: +    - docker-compose diff --git a/roles/docker/tasks/install_podman.yml b/roles/docker/tasks/install_podman.yml new file mode 100644 index 0000000..3498aa7 --- /dev/null +++ b/roles/docker/tasks/install_podman.yml @@ -0,0 +1,12 @@ +- name: Install docker packages +  package: name="{{ item }}" state=present +  with_items: +    - podman +    - buildah +    - skopeo + +- name: Install NVIDIA packages +  package: name="{{ item }}" state=present +  with_items: +    - nvidia-container-runtime +  when: "'cuda' in group_names" diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml new file mode 100644 index 0000000..f13f99f --- /dev/null +++ b/roles/docker/tasks/main.yml @@ -0,0 +1,24 @@ +--- +- name: "Gather OS specific variables" +  include_vars: "{{ item }}" +  with_first_found: +    - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version }}.yml" +    - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version }}.yml" +    - "{{ ansible_distribution|lower }}.yml" +    - "{{ ansible_os_family|lower }}.yml" + +- include_tasks: configure_yum.yml +  when: ansible_pkg_mgr == 'yum' + +- include_tasks: configure_dnf.yml +  when: ansible_pkg_mgr == 'dnf' + +- include_tasks: configure_apt.yml +  when: ansible_pkg_mgr == 'apt' + +- include_tasks: install_docker.yml +  when: ansible_pkg_mgr == 'yum' or  ansible_pkg_mgr == 'apt' + +- include_tasks: install_podman.yml +  when: ansible_pkg_mgr == 'dnf' +  | 
