113 lines
2.8 KiB
YAML
113 lines
2.8 KiB
YAML
---
|
|
- name: Allow user ansible to switch to 'docker' user without password
|
|
ansible.builtin.copy:
|
|
dest: "/etc/sudoers.d/ansible-su-docker"
|
|
content: "ansible ALL=(ALL) NOPASSWD: /bin/su - docker"
|
|
owner: root
|
|
group: root
|
|
mode: '0440'
|
|
|
|
- name: Install required system packages
|
|
apt: name={{ item }} state=latest update_cache=yes
|
|
loop: [ 'apt-transport-https', 'ca-certificates', 'curl', 'software-properties-common', 'python3-pip', 'virtualenv', 'python3-setuptools', 'python3-pkg-resources']
|
|
|
|
- name: Add Docker GPG apt Key
|
|
apt_key:
|
|
url: https://download.docker.com/linux/ubuntu/gpg
|
|
state: present
|
|
|
|
- name: Add Docker Repository
|
|
apt_repository:
|
|
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable
|
|
state: present
|
|
|
|
- name: Update apt and install docker-ce
|
|
apt:
|
|
name: "{{item}}"
|
|
state: present
|
|
update_cache: yes
|
|
with_items:
|
|
- docker-ce
|
|
- docker-ce-cli
|
|
- containerd.io
|
|
- docker-buildx-plugin
|
|
- docker-compose-plugin
|
|
|
|
- name: Create docker group
|
|
group:
|
|
name: "docker"
|
|
state: present
|
|
|
|
- name: Add docker user with specific attributes
|
|
user:
|
|
name: docker
|
|
system: yes
|
|
createhome: yes
|
|
home: /home/docker
|
|
shell: /usr/sbin/nologin
|
|
|
|
- name: Adding user docker to docker group
|
|
user:
|
|
name: docker
|
|
groups: "docker"
|
|
append: "yes"
|
|
|
|
- name: Adding user ansible to docker group
|
|
user:
|
|
name: ansible
|
|
groups: "docker"
|
|
append: "yes"
|
|
|
|
- name: Get Python 3.X version
|
|
ansible.builtin.command: python3 --version
|
|
register: pyver
|
|
changed_when: false
|
|
failed_when: pyver.rc != 0
|
|
|
|
- name: Remove Python 3.X EXTERNALLY-MANAGED file
|
|
ansible.builtin.file:
|
|
state: absent
|
|
path: "/usr/lib/python{{ pyver.stdout.split()[1] | regex_search('([0-9]+\\.[0-9]+)') }}/EXTERNALLY-MANAGED"
|
|
when: pyver.stdout | regex_search('3\.[0-9]+')
|
|
|
|
### Keeping it for future ansible control of docker. now it's not needed.
|
|
# - name: Install and upgrade pip
|
|
# pip:
|
|
# name: pip
|
|
# extra_args: --upgrade
|
|
# executable: pip3
|
|
|
|
# - name: Install setuptools Module for Python
|
|
# pip:
|
|
# name: setuptools
|
|
|
|
# - name: Install Docker Module for Python
|
|
# pip:
|
|
# name: docker
|
|
|
|
# - name: Install requests for Python
|
|
# pip:
|
|
# name: requests
|
|
# version: latest
|
|
|
|
- name: Ensure Docker is started and enabled
|
|
ansible.builtin.service:
|
|
name: docker
|
|
state: started
|
|
enabled: true
|
|
|
|
- name: Create /opt/containers directory
|
|
file:
|
|
path: /opt/containers
|
|
state: directory
|
|
owner: docker
|
|
group: docker
|
|
mode: '0770'
|
|
|
|
|
|
|
|
# - name: Install Docker compose for Python
|
|
# pip:
|
|
# name: docker-compose
|
|
|