first commit
This commit is contained in:
112
serv-05-dockerubuntu24/tasks/main.yml
Normal file
112
serv-05-dockerubuntu24/tasks/main.yml
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user