102 lines
2.8 KiB
YAML
Executable file
102 lines
2.8 KiB
YAML
Executable file
---
|
|
- 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
|