anthos-bm-edge-deployment/roles/ready-ubuntu/tasks/setup-docker-apt.yaml (73 lines of code) (raw):

# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Stop docker, if started ansible.builtin.service: name: docker state: stopped ignore_errors: yes #### Setup Docker - name: Remove all docker-based existing packages apt: pkg: - docker - docker-engine - docker.io - containerd - runc state: absent - name: Add GPG key to apt for Docker Community shell: | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" touch /root/has-gpg-key args: creates: /root/has-gpg-key - name: Install Docker 19+ packages apt: pkg: - apt-transport-https - ca-certificates - curl - gnupg-agent - software-properties-common # Docker Community edition - docker-ce - docker-ce-cli - containerd.io # Docker standard/20.x+ # - docker.io state: present update_cache: yes - name: Start docker, if not started ansible.builtin.service: name: docker state: started register: task_result until: task_result is succeeded retries: 10 delay: 1 - name: Get Docker version command: docker version register: docker - name: Show output with docker version debug: msg: "{{ docker.stdout }}" - name: Add the docker group (NOTE, users will need to be manually added with `usermod` if needed) group: name: docker state: present # sudo usermod -aG docker root [WARNING]: 'append' is set, but no 'groups' are specified. Use 'groups' for appending new groups.This will change to an error in Ansible 2.14. - name: Add ansible_user user to "docker" group user: name: "{{ ansible_user }}" groups: "docker" append: yes # TODO: Refactor timeout - name: Reboot machine to get new session with updated docker group reboot: reboot_timeout: 300 - name: Verify docker can be run command: cmd: docker ps register: docker_output ignore_errors: yes - name: Output of Docker PS run debug: msg: "{{ docker_output.stdout }}" - name: Set GCloud to authenticate docker command: cmd: gcloud auth configure-docker -q environment: PATH: "{{ tools_base_path }}/google-cloud-sdk/bin:{{ ansible_env.PATH }}"