Files
vagrant-docker-swarm/setup-playbook.yml
2025-10-10 19:36:51 +01:00

125 lines
2.8 KiB
YAML

---
# Setup Playbook for Docker Swarm Cluster
# This playbook installs essential dependencies including Python, Docker, and creates swap
- name: Setup Docker Swarm nodes
hosts: swarm_nodes
become: yes
gather_facts: no
vars:
swap_file_size_mb: 1024
swap_file_state: present
swap_file_existing_size_mb: 0
roles:
- role: geerlingguy.swap
swap_file_size_mb: 1024
swap_file_state: present
tasks:
- name: Update apt package index
apt:
update_cache: yes
cache_valid_time: 3600
- name: Install essential packages
apt:
name:
- python3
- python3-pip
- ansible
- curl
- wget
- sudo
- util-linux
- apt-transport-https
- ca-certificates
- gnupg
- lsb-release
state: present
- name: Create sudoers entry for vagrant user
lineinfile:
path: /etc/sudoers.d/vagrant
line: "vagrant ALL=(ALL) NOPASSWD:ALL"
create: yes
mode: '0440'
- name: Add Docker GPG key
apt_key:
url: https://download.docker.com/linux/debian/gpg
state: present
- name: Add Docker repository
apt_repository:
repo: "deb [arch=amd64] https://download.docker.com/linux/debian bookworm stable"
state: present
update_cache: yes
- name: Install Docker CE
apt:
name:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-compose-plugin
state: present
- name: Add vagrant user to docker group
user:
name: vagrant
groups: docker
append: yes
- name: Start and enable Docker service
systemd:
name: docker
state: started
enabled: yes
- name: Verify Python installation
command: python3 --version
register: python_version
changed_when: false
- name: Show Python version
debug:
msg: "{{ python_version.stdout }}"
- name: Verify pip installation
command: pip3 --version
register: pip_version
changed_when: false
- name: Show pip version
debug:
msg: "{{ pip_version.stdout }}"
- name: Create test directory
file:
path: /home/vagrant/test
state: directory
owner: vagrant
group: vagrant
mode: '0755'
- name: Display system information
command: uname -a
register: system_info
changed_when: false
- name: Show system information
debug:
msg: "{{ system_info.stdout }}"
- name: Check memory and swap usage
command: free -m
register: memory_info
changed_when: false
- name: Show memory and swap usage
debug:
msg: "{{ memory_info.stdout_lines }}"