--- - name: Install docker dependencies ansible.builtin.apt: pkg: - apt-transport-https - ca-certificates - curl - gnupg-agent - software-properties-common - python3-docker update_cache: true - name: Prepare keyrings directory ansible.builtin.file: path: /etc/apt/keyrings state: directory mode: '0755' - name: Add Docker and Nvidia GPG apt Key block: - name: Get keys via download ansible.builtin.get_url: url: "{{ item.url }}" dest: /etc/apt/keyrings/{{ item.keyfile }} mode: "a+r" with_items: - { url: https://download.docker.com/linux/ubuntu/gpg, keyfile: "docker.asc"} - name: Add keys to apt key ansible.builtin.apt_key: url: "{{ item }}" state: present keyring: with_items: - https://download.docker.com/linux/ubuntu/gpg - https://nvidia.github.io/libnvidia-container/gpgkey - name: Add repos ansible.builtin.apt_repository: repo: "deb {{ item.repo }}" state: present with_items: - repo: "[arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_facts['distribution_release'] }} stable" - repo: "https://nvidia.github.io/libnvidia-container/stable/deb/amd64 /" - name: Install docker ansible.builtin.apt: name: "{{ item }}" state: present update_cache: true with_items: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - nvidia-container-toolkit - name: Configure nvidia-container-toolkit ansible.builtin.command: cmd: nvidia-ctk runtime configure --runtime=docker register: nvidia_container_toolkit_configure - name: Start and enable docker-rootful service ansible.builtin.systemd: name: "{{ item }}" state: restarted enabled: true with_items: - docker.service - docker.socket - name: Deploy daemon.json ansible.builtin.copy: src: daemon.json dest: /etc/docker/daemon.json mode: '0644' - name: Check nvidia-container-toolkit deployment block: - name: Deploy nvidia test containe ansible.builtin.shell: cmd: "sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi" register: nvidia_container_toolkit_configure - name: Print result of nvidia-ctk runtime configure --runtime=docker ansible.builtin.debug: msg: "{{ nvidia_container_toolkit_configure }}" - name: Prepare docker group ansible.builtin.user: name: "{{ item }}" group: docker append: true state: present with_items: - blurringtool - name: Start and enable docker-rootful service ansible.builtin.systemd: name: "{{ item }}" state: started enabled: true with_items: - docker.service - docker.socket