Files
ansible-servers/serv-05-dockerubuntu24/tasks/main.yml
ansible user f7e76e9748 first commit
2025-07-21 10:47:59 +02:00

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