--- - vars: # --- Please change the VNC password --- scipion_user: scipionuser # vnc_pass: abc slurm_version: 20.02.6 docker_runtime: | { "mtu": 1442, "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }, "default-runtime": "nvidia" } tasks: # It causes the nvidia driver does not work after reboot # - name: Update and upgrade all packages # apt: # update_cache: yes # upgrade: full # Old ansible on IM? # - name: Reboot the host to load a new kernel # reboot: # reboot_timeout: 300 - name: Create {{ scipion_user }} user user: name: "{{ scipion_user }}" uid: 1042 - name: Create ScipionUserData dir file: path: "/home/{{ scipion_user }}/ScipionUserData" owner: "{{ scipion_user }}" group: "{{ scipion_user }}" state: directory - name: Install required packages apt: name: ['xdm', 'curl', 'wget', 'git', 'htop', 'python-pip', 'apt-transport-https', 'ca-certificates', 'gnupg-agent', 'software-properties-common', 'xserver-xorg', 'pkg-config'] state: present update_cache: yes - name: Add NVIDIA PPA apt_repository: repo: ppa:graphics-drivers/ppa update_cache: yes - name: Install nvidia-driver package apt: name: ['nvidia-driver-440', 'nvidia-cuda-dev'] # - name: Reboot server # reboot: # - name: Remove nouveau kernel module # command: /sbin/rmmod nouveau - name: Load nvidia kernel module modprobe: name: nvidia state: present - name: Load nvidia-uvm kernel module modprobe: name: nvidia-uvm state: present - name: Add docker GPG key apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Get release name shell: lsb_release -cs register: release_name - name: Get os name shell: . /etc/os-release; echo $ID register: os_name - name: Add docker registry apt_repository: repo='deb [arch=amd64] https://download.docker.com/linux/{{ os_name.stdout }} {{ release_name.stdout }} stable' state=present # It causes the nvidia driver does not work after reboot # - name: Update and upgrade all packages # apt: # update_cache: yes # upgrade: full - name: Install docker package: name: ['docker-ce', 'docker-ce-cli', 'containerd.io'] state: present - name: Install pip docker pip: name: docker - name: Set mtu value to docker network copy: content: "{{ docker_runtime }}" dest: /etc/docker/daemon.json - name: Add user to docker group and change shell shell: usermod --shell /bin/bash -aG docker cloudadm - name: Start docker service service: name: docker state: restarted - name: Get release name shell: . /etc/os-release;echo $ID$VERSION_ID register: distribution - name: Add nvidia docker runtime source shell: 'curl -s -L https://nvidia.github.io/nvidia-docker/{{ distribution.stdout }}/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list' - name: Add nvidia docker runtime GPG 1/2 apt_key: url: https://nvidia.github.io/nvidia-docker/gpgkey state: present - name: Add nvidia docker runtime GPG 2/2 apt_key: url: https://nvidia.github.io/nvidia-container-runtime/gpgkey state: present - name: Install nvidia-container-toolkit and nvidia-container-runtime apt: name: ['nvidia-container-toolkit', 'nvidia-container-runtime'] update_cache: yes - name: Set nvidia as default docker runtime copy: content: "{{ docker_runtime }}" dest: /etc/docker/daemon.json - name: Restart docker service: name: docker state: restarted - name: Run master node docker_container: name: scipion-mn image: ldelcano/scipion-single:video_laura privileged: yes ports: - "5904:5904" volumes: - /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 - /data:/home/scipionuser/ScipionUserData env: USE_DISPLAY: "4" MYVNCPASSWORD: "{{ vnc_pass }}" ROOT_PASS: "{{ vnc_pass }}" USER_PASS: "{{ vnc_pass }}"